1.2020569031595942853997381615114499907649862923404988817922715553418382057863130901864558736093352581461991577952607194184919959986732832137763968372079001614539417829493600667191915755222424942439615639096641032911590957809655146512799184051057152559880154371097811020398275325667876035223369849416618110570147157786394997375237852779370309560257018531827900030765471075630488433208697115737423807934450316076253177145354444118311781822497185263570918244899879620350833575617202260339378587032813126780799005417734869115253706562370574409662217129026273207323614922429130405285553723410330775777980642420243048828152100091460265382206962715520208227433500101529480119869011762595167636699817183557523488070371955574234729408359520886166620257285375581307928258648728217370556619689895266201877681062920081779233813587682842641243243148028217367450672069350762689530434593937503296636377575062473323992348288310773390527680200757984356793711505090050273660471140085335034364672248565315181177661810922279191022488396800266606568705190627597387735357444478775379164142738132256957319602018748847471046993365661400806930325618537188600727185359482884788624504185554640857155630071250902713863468937416826654665772926111718246036305660465300475221703265136391058698857884245041340007617472791371842774108750867905018896539635695864308196137299023274934970241622645433923929267278367865571555817773966377191281418224664126866345281105514013167325366841827929537266050341518527048802890268315833479592038755984988617867005963731015727172000114334767351541882552524663262972025386614259375933490112495445188844587988365323760500686216425928461880113716666635035656010025131275200124346538178852251664505673955057386315263765954302814622423017747501167684457149670488034402130730241278731540290425115091994087834862014280140407162144654788748177582604206667340250532107702583018381329938669733199458406232903960570319092726406838808560840747389568335052094151491733048363304771434582553921221820451656004277872284312593157496270267304159187882844808613877768225616229637413137570424559948913295258584021479358378231977711727847817204824366665712233037329594100572611980138230258805920629613317793764510957120026578048806093055343632850973613180076093526414330221782797856481792788603312337356928896592742526047886788415664262199137166941109468248113231383018176762836385435090555860122593212536293095784104529009458893596918985301197730725042459471429010571182651185684483171262930537094250359470178961704677361236854736935502847458619835295713597321630746583008740347017107460006100439012858363763160751662717695571706509879187894838668780959217203483131914040549191376306285239996361170125553271770779153656145814857053682260433185195901714535346972264639307321412037516079871346483108139881311788903459138832073160960610026741465441141544678199046462871182657177549836773678551049586037861558275339882493735245692433875918043566496264742386629024451305246025863179480168019326347584217645714646906364128639612816315698647574003169670514700712425041721468910016162338980106201679112210015737046542560759957025969830610067925707538397665577058220101748180714779401466752322431614572684197067817338675361752984217201931314477235681966403938164900201528293091972769899039911891518355722405787334437857499022403139300779492496042621805745602278124602157450225405723396266294459302450152198339305005536135307137154779307328834045706449961358507221438630930727396441463746364890568996657709964552685348551534347970752239101404337653818064860947973869958914336860549003740396493697286267999888932262754489642625893401613327534523446818624640873695071940103268916939623216605195480366172270059432480808228029002882550680281231515143831480620150431882417182672063962265276576168533242061975370296534957924757105522684230474387983453231920441976821781724076791729146256786601324599404822567058719364794201310291864363078009131237289712552632198250697838333677954387190138395315514651417845195385723793165112682575508412481658394741889055166987387906101718783016520416941824128550417182225504054299104819263280414863334802699627759877373029311023887323849837854697145693411928312494773729679541243164191461393315808692683575233391614259776653520425957200603286673514673267379776789843556850849245246369790745339591587071180107159160899423974312948074966756454749515234412774380539164936674995813834057753760835692187165300125405002346411649918381761695400141636182787573722582235597549439662309511092124869370733207281624159520660984814444579288900455710931505233956350188672127973279095609030941788277269338999127363897916881100136267716086394611000591972764043416337673817827384985149999813823199561879111770543480452533156329659260524837121410745134131922487232264611962350028814882469685753932945080233030911251410281702699619622565411635242651321034169720343085178487621528781191177912966824290184331811248537436470741975212781681145764781295522335246860151514195150137051891288462333516109424488268630970948578601576345443466939876341751075809184078247837583763877342774777543515086631166782213996775802412988787330699036852227358144340532913767827386068408563408049677091869230625018030526372715487630416614863468147560189799723972996710815761866163327287497453360249275650150154093435226296928754492997981840435724912098429580091292459468942677326456178078867183956615729215050883038891104104856296135235847472029960563310231570834530790476873450580685285643236239733904059106449673746383069975500315296406484568791879477799768148805561528918092959238036406019845236246427536896328866823888035635356964461265747097017807510956123992589550182897497568635283952863729667116655365847455798567334999925269859462105101033471957012151014353422517481657384737190649686321535935441849671396416421458065477537968378088865543025981029078135745751894303004748727688672469270394250281787859613623914815205864165947780150392712955326782395074471110122547982687295875593379900492674240709740739848216695084191404130223176898360277108478140562224423660775963727964569611687281388000645444162086285309338317877944835720792404366961380170161246306791696534826753823851083345439520514218409463343577761965801465207416260489270060579718730680781253469022833318714013024195179046076611489436658523810254506463868243668112750721342106815030595828568937647721408675191867200233128554097780643591709472412914542136485277973568288117076845816830651549095199058233623987615692774435254242193792159036852608265680134021973082363740127364403968496179803126623879929668114336518333702126718458718148295508218874624371071072622923806575430201109890871643838123972573267390967627442695462277049880608777284401554052021883291373114482008725915059699871152835947478828443973952226448233893510676997284078328038437123695597093692963924577094157984810270067694542518337504706673618737182937095913073104459083109604069724472340835961016703865496597040499435802867304015896352789977928640323959554704218328348188539956127974197079219228850066352456903153119283796883111977067898420262769284544623072677497533237060403833054226814572417360189654937587920566977137352945837845824764169446476798987468055028839925093742654879212233297179919685036007341216196927488043912843058085069673674416564318700003330475976018406523672087511519181434845609285642865406771814544139670339072301592615868763105635427832726468991300383498424155394140210983287067802952968635010478740915993572897722363997371832034715265780455096130111146310117985236275628496795462690804609479518855793159125048273820775287222755141429572008683606423124282848081289067471998183681419329738763359603725959771406347299966492475079294714560147019540733434740490959922746529089625246232054077548433725404063935301219144533546377987471151724241434882482226599525114791191346927972612789372056406394508913005218507028713321130369711073903858496150425123657725229486899837581826427227388347325673534161086949809041948517078119981443825591807147594722446301108050571629137304099197584598014499479731534630347305105825605245268370026689658676629785519645759670955758545982819507209601175366483188439291330111607597176977619480752403906601171988225967302084543302230175933928024987436310205816657853453490882982294200805486183049048389104640476695695631056685020721815576624972019252048562001952539095467127317606889001350073768764673887900831235837829077786738455213859356845824384330664208454602229070278989367333997334226057901019111269663167438609743522041865674052857980558668202601387189558675025481536906814993616909123950813641769999766620100404611599961591305369423430027292362929601157148694790499474359083770233171044915608359023935944487114573733164088578985089806185929245088672118007691371577762470747076826390699308125837273311309312129840029161543692028488866736554088635628553678368488161344477147711141772779538859117826873871603552027987354878209670955926339572311882270242121601043531077702614067248853447317073760527361731472728192511277238916050584917728981898526961834594247014960216724147785589555461927795867842297580150506102190556604704266636382960023599588321095188752830842115946032948801253578737828385215962774510361538755566110040369490672024629362477042682035564056693193775598640669629966117409286685530806587647091520945826999871718656920302688534657789143207947010564001951371535146032597486628462412178501003793713599757245355441739718284799584548439589474514197209305119808758783516262383015187058443044936586753748027024660823215050204456634649144904000024429946842377762428304723879154250639059157635935215670400725561403623860535453153963266319375620261645999765047904652608555791373122436419508539793276764788735649759790770819424984115325655809663489931243598035008611554810097335587984119677779787560609311872657139206552939794612569581017270531215094673921087342635228542048145259502431222731902698102799966475345034816220013229202482221387201537608783977208859220951262594561279091136798842338154939021292677196352930251480235627292231895042350650839169740614355584385763810559403988929283214276643928623063057414558836227365177639225280269169322765200061670688044923365194502875911745214839915101470849401158981578727467187806170420735856947603119046816048986990000036974996691505487790550036436117164680658553386155310376586678530625786795219456990632932352378078989626959354963108436168541537325081619730084557850247695675494499285422414029562671587098898369297085092303998055749618227833860738315227951497560037532066095794843105386716854177227129033381600586460708361854985565627567933273879888323130840559531416044887427106507775375535628509962462707836989093137176467842064606785699561109461728917510695654489462445499979147675438588074569610187605248674961818333475531798600370515824172043786369323672892880950786825291345364081340599319973318459329979381355878987940081402677815388744998320766632894746640433502875210741455462664865099937165360554202096220653677372784113401425675425767486640166980929945715900925218751525243494479088042517418678651988012574712960470778638861053173951579128990671082981013544448164639022170448528006112300567221808097986153147815556830307499534049770885325653659871343230939990342638098500972536956594358613656419016660116070441531517633134180812248926265282076599622931583713473962249021772449008743780907270735876539815275020210929121198429334555634199115791310892287214323874941400873594147222527246255350426878068728249442478386540489126230707724131199894058838134211185732597755234506208276646680482208065067144024288476234374958531981024521892124583712629352533480825545422667175681022367044608661119731226843722968476828934869062991536502227714842847621998639714330342895904729207300396134036047912754480041595800173985891047014144464620239413976929761554447237842260264010570703000706094293475905755617556138632772310548708029930086555396201253616168335839952334727194178264146850616326444059071687455779502784519532807510635766951704210566533997655497102360989101304025511268466378259038557321513926873504798855363172010444548024159421773652983095752190780831326003251245789807877998118865159094998071661984869126505273627127149411504778552602362340558795342488471862442699929683728878668068197904279892198378195024347507952879118183618480532791505550633888370888397437158899434262439142750165135868039056483924138853303145776075206205888357758963090355583073152006135037855362272061789583025401620393925536605918619422003003103354854429622727927894474566294204797360332015546838764455421009657345387307828938989177868152936408181607543408238462409171516861308342517533649228072644586223331169387767254267387186148454493771075676546110437594503945367588161608969581399229234702710223542629492845150043765143963038059493307092283797084389007608729273270981632895819694485697528955440551957776661846966195270819464402770552772897727293487031037998253892574501876886729692014824524453062567081841691250676940636962219804082098108363810475109338833570750243805492836423777208346748120052999056421986904783805804012880238741301207186988959913144094760876909878024296011233274155002642460220538586588345796507997640459832420944077868981551823081681271840720397874799565333337974229104408141614208672673452722589461585309962791885951334643645000065032275953821305543320676625164796481538590697981600536082815482876190433799014241026687319540460810557795876697316148809919018196537245331193873543480836368165009039761170910431779758765596247767672728213186397807895178175957779016151093344432612383293195619775195075564040413851022251839652563182013921629110501972042052716967903974344504290520406007793127761768946965446959088914422926583279813301801768859922526698086207402144264240129386626973595614199941010446746679675379604760235839305815595643469150473023905377218669831262145651902257581257318241472865268183470271269603258593842173424898026741284539794939606736330080761980688628717113622752731061494157091728502297638013093756210877178181529729859911850721879438819557291379423473651513036785691277707129771126429314007228008222525832576717733586122020658373511404081732745270501406803653890965452295083935462750259672041851199964170779502188649889123099388576417475159680784970853749167053817711287830396882099732585844149114752202288510740765169837647025234042499611809224116619672393747158272719616155885503978590022844240168720345832611484856278631595501612568118459100760868569737837611609532527887401617537089189654903785631913742346847666949117225978425207253996837391997836134695766397702206366377094259379654249623484951844664734820573248144376254321417230507899919055568646764823809010791815646365853518883479612105680098821189432571808175827626223703340849603271173275485668659282240724363751247453884721399862559838579803058425452530490934002949111513121634482276923259832129429332128017860639530025311549945190187089168920208443836708995663779104251527781310661078367619465088757985625445422235909480393079910482187927870201382756290159779841586518567105233889870420808454064156574883203140773294915423714974233844125823119762858952953692454501598918890991872782194213864484238679240932229083134060006951489861905736951403178852067117550837242800948196540108823245610098801458684648229103926191531113074018877205158802765675353221282806485193774155797666871853771946339374285521463252307858283336618778752326411964319851545236923215260357297719701767994175068822033648480847577748057555539787073633311829210510659043002156409260115577979384799980119022808516991077579859444820842362556208772166779158907874881631228753573922797499826544798554546754577789203361001614908054545817726754629520474820374498297620510964707108164064082925961359357689719124687324428333710676775559971723349663362382063057320728111849504069011487426300071930820190694079016851646335566692187355809739330360327245247857899234414802377001322342426793973664058255210280932611587014970932771569278575134953441458265478163313221045220629613679009604108555753026110616443037364859372300114743251716341680542215472808837031572269070430810821208819578466564981063726472052924969325098442414256279330174742637357249386001850079890429688476224112830044635845941066640962521954189373232634707216331480821229508020639217228809376152667787485915904297997244528783030226948619705415555390360767527841328457248496195399444651775990274585862331862989127738396989448804620420596841665326682702920790616835628976161004742685073296022992248657237362335755839872489796697971064300562629760084024142621326033142848684229409652614561406059106901074169104022485019335519093560519579267190646660622532440924560684166775639586353066565282534797368748882498251162844201764047353334313403290444183816937555641390148550410854177329638797738990982047175631104061558556276542318608204791742196754539733204178819749737390189753717169147585628950674813384495444493657099236040397885220870120598111109671866377483740604394359654361748623055538108377744516940540937666654282784043547204458920907515639263249128642180323440859573174510595239125945606121753885837776234971777105760673207377146129166545062928524277550493800053990565865252332205291855863810593455798246721940909761317711791227385828773866635287925184108450289041807903806320467042802391635505588135444841492648238039696343728501055930551777197533190285419536046764820989078255906556494269800599453724702179436999018466846449525834111641282758928337980159522694821257661843980156043859793333918585456774223930147095529606367170334403961893047724518349779787628392837023900538979054354451681653676544535200897100660451537584917291825403959012732786693576700138661543162924301183408606252160977693453238048040987704407030369476874963871251978771155614461997022838204596478110074608564352295845580465212019345985587761950649004900078235862150661650578541644886859220801513786358269797939945771086445434835056729012084391884558061673198269270465491819608035769894360062583420251360356912598327526627379541471416112219840079854129270545565212580310695872224888819614970181973864389628491327469998322696821125835387126231731607244498434911167423891119876957249859235671826705961049968910536111862188845884809227981338381717234599166074632263346116537273464823902608266862288046565349334274431457658968817269570020810727081644409019216537590605770300077040173546984154965521950069269586912571607388729268086735576178660962789685440742051768524727911861549077660630408050540158326849218302506840551772644233103499443257517338736093328163071788315466565320734922946550058088067932752521345787295827853454079994737403763525934264583174448236181714161479791217279141154744185724980828470962263005578720975325969929775109312359110615917939996102180773763314699579970924654407435571728531718435465261430171218102083081944306471916806683281785404354881217062931915933251992784780922252651052865242326761354619493500450354114385486626356483644049624110119558775748165914442877587131036614661069489505935491054730941327027636533644837420591766715260752158564114677586543036148435408288746417248120408585506861429507526725771388499357464261932664825896548627750153021221261451969660817471507156698234145004818054097636761949088311527773326668467810495588734174335108440793016511445610376989887400107761068019086014207103726788529614621116236429784188165230369299549389638613978222017717601521117618908345312935388479032593015706166387517813621536319720101077055320634103164100698996887065083072835376366159463681637845317735575873994520780334256401909983429695370168401289867811006309975072847593046883837514532443336537995480685252025376477430539652466354740237792990437135071159575622554016025047346725837523007295381986994877841602037872144983714144496376480811989423737121866106287427801998660055350996094429278793843730443687776590320875983631352038328983888867751906327380111334140695108997632330273175671307655531752538498232658848404596050490110861787078004316681946640165445277779764826957179227973256074933827197875674328563030317898408705286825141217192266761637166504627943237231941841442152729469919465305151290675669113590267961769935975188347643781529785556027728385514600680474483443878908732063421186425499468206417170047678402656165481980177735640155963896931824547596922815258094735658282957334017199421890216684980642432389514647915988056798058952580619367162320678281841079900798658197746121984850575490848702295032775295456331344011863624757751771187038628410990262384051921870068618377065480911927872968818383351062516979912618583907273827700218383125993424199912367163919170121962055973834917407135613475607933595503342610716958787998939271238596920465342326333814077109114310718380622609788016692731958088136827613315790297267262178758132691920686365286420303787577108962329933072723883358337382816844459530170885033889935637596509145207101675121193359713584121655687092071476531063943560413636422602977704188716702185201999269059421961748354534443776731636105911223893088071726607887564837446650485385873656831150207445628331238744181424025956145643231236495215322026747595929132505455862457163391206403905528410781980156149915890527151547746364327728244773083268101334656195372294314227327516423016516056025046558658831702704845301209423683003189044316353652331894480505993272394392376863134172891654454244506445212795868232599309591662351316840858434224394535727742206609111110739321850845928474470184100410058258119838192859498149659993500258730105804650762808442581674014891553279072828325967227886556617447678076311670446304836907077095206850376112298385889923891029100469994060370515595206318650375418398088966405811572948189818176374267625894567254509387763841772959339369857612753145093446637806246765478560322562726979886944308364916914608500608726356117256117294147522531365682104017965978291553355085048097264608073170873534889045272816524842904844677352672383738877461379922190961751081449507262760248260057450022741636675870093289804562470363449260249857054994471273104171860680691668471479357935541840994074410783338401905972853088839343292753858797841978875267301212218920480697041587749257581713233971379525033267322947621529241083810049706765018335183625836083914532877405008217368935259035229789367499040651436746157513886894799689531490291272190424199141209033530884565831819149115552320988798894097814951103949856769533653906850910490594613924454797967882078227510834715789246022114552755909787639786903738007266756187693310093012239574926392897507536097786872347636990801783471837755260458674587408741870583281616464536586823895125150667270736219261137095379503389137564139330678008748479849142002509103522011333767265004332495569654802194656602778865029995394060241502264420841737675493372125377666121548168974285972855027184103025614351066713140124466162034797296117580961858091752453168278334410980388660836556484732864285729876392201694086117244002127589102477383120870374915188961218615805561155815804638882240476491664432019412319504924536351079535845751554512080855250893103742719480677864326732770367714674143437291444345288728330710231053144109421254126667838154931737142699680197220257055060631432998731067397502014672787232473319322123905925215649042490699456814802290780405834280731350465316912435468518831462437036843195296940793793552320291105235816541061311945062269011763347614557395472461620620114175546794900033794323204783717732307964501350433062953906940198900968088715350234908732312419939299107559125518237215070390313655208311649914171041770994881111594618231755484055422813694661761789989174078041183637432142195610221937844554300384739741397618493023040815139006447190785285573283409752841767817722202836110537227907904402772966568533985155451140320710744304808532637179388021409496339465639366171735762069513571965998054585367566086090592188575297349949903494397829783215077658369115692162901249971915112140835428554718211093537041579102179451406582657301248087301211431001398739437341566141685464653124081353320145506529212266665863523537998865986919380348927099542136333682104013521961895171605803970227353999879739010823597239204970654681028605194321538099489407811171383011588689969356783524106217989436176928290333185746532986948768407572639427991320062834713127522967409046629643749877720114105949041482586222221164645156820762804568169060003481659731995916878717377038507258451753631559961959725082762797067722476745481138487451164617976678965870260823702854099528849853122118075028308450248757295024568224422598847006124715511210684249942776566925341668961438385769020641547066665466449006235021127275287614198008348277081132593217056091029141387015087011531176509625057517693731101358325538737078489479128544450810867848709421233951223230118519083603950467455049530471768221569280386915393839249376414608390791732427589828638655700447798186140149652797949302956633374528390470788009865528898734666533553588969683070086647945306111807733496655845174038578957968724277472485886923051261128114259811392403931514156299619154287512857588744223626527675164025744177558629119970639543829392728449964423307735015032992003321707841701800485683387049801637926020206445395074794800637624377590720171305547594477621377055142003954418188175686789473028150263031547875811685496423650064131376014566657252703137358293327932444992893087252418274786101140703277035874356039060145936644714078858035414166382216807001295265335318174067895610166579821993517981093771224586764175615466216628201328700318586599600508890712465176830252616392941687013876434700442124952814074368757218667894710227558809790750040300180489169852121574507913825659476264586432944894119327830259208233310110304821345363344847588805948774630919604546159343382738203993781000650011445984223570726901702150453925938461080929581641208274320171714620600192803671768477933568151780165352969836778654929486512230275883226374060912936990038088175067052602262363450721175296483891112296670007498027793092874996400805229770694221237424603526947604014723004083040483954218005761943817025526821447481631770221469750181571218044899854522768155091459223313184660047703766457887872740412651330022242985351667270270926989418318912796632093635883973816608974575922373206999835422726720950588696466130825041639289899794030363137421513653598372378867330595030880654269506236554475795607831214934991097235463442647564237752322156831470839338579893704363318428508322265389143508714548148629249982120120103305645714314558044793240773251818665618981371121525471552531129803441408079587418268259557934979926698761821528422789805398782483471190783751915379411562028139352094599380651884880420707310008065445958591030102110191443182862034686797800909906043512948919991490901831524879455962297033322040303164501312925178651668686379717789456272768545891305022577289327424567629205059797917158009778413637824337559679359756793908814635012207950223826056834589815950525219798807818706042119819355075570707523921155747168160410628073388958334075028391663665640534680016675737158940621399541546578699805602485213314708985121802460361550595643374028752597074729011651382594837457665022025079359151620728138308062215514234558408444705899269082958428754246559507906348540061874797325389340757441327915324201490813682430852195637085920193534253854675858612581057965991407952131704769825709352959551435455770072108614760581553324846539861264988885493589877650903077325489210690316813646863425488121995472652463900709004983374491826400371158759401493896137120669924861066426643217862993563835354250802513536380305739647779921771436970698095399001885321789046386400454010576454914019272989529329091674713281254395559470687881339588662489014325537650745147924568409631335006400866675230522271206247296897183367388913698608117501311725643129403133282595762190208972932479877719974655039584571976731216547615741152831986236111390150633299338500307235022765114182369473120552042744316543115978811933050447905256948318606050395423818150396188478021405138425361156086009625219259173862552903401481896305268075210750777597763004966616823241854366248382590739048877841667665284879693823731798595406508933268759825027536919539755936037510632082430622283940656662888481508690378061599468744299248639338062329488461604287366271397457538945645297096499530272858181742391352621071937903024886483884088694601756417171172363303596252296069682589244935563544187939234745539802340745477441815959932250204662842451422006042816061595036889563409529063916465378885995384213262422932188624944343167239170318097619759008389058118696749449357763601942821246424971362750825954916196982516435606159241332716403094568262283904045660914694037447717943047772027842569560353966754456708822555341699925037832897755305740671232581849931441741761105021114247778890822831689459581324942989356485140294014307577347027702674279528835625309905823948286245462038196158027671030933584989785270780908079359989794664761755369745663390527259530469442192274451441359158430794513037232457098988968491558651511661168519996609775051395412373449804548129319792472901829131015550780310439239517065005696930102844458362587116624192758757232707580930718186627878639818953836905330475283275940311279950797129416147210899829401552714945943529948990797137233024578731126326321916823714456187368448680586477567505380405791440614298177067415556566543846722561805234797041917516292371611879618953590777291620070270810156021076259945918361264919485446313655327261212305891573273023788246114838579454590634068285047573587577314403526923798682690046497952616104168442510351209845722887477336228308812439119368876847140221337253592128898577621750812958653543197090412341032922661429947085702182886948445569085788446005283307876962551393255060693455892289330484899478565446018425384583515301806988086708838909488187719987557286880510950974789636096919014813995681320822182633125328320087441418774867768706913466120581272307860350253256790957265601119150644607662071442717720083000097741610907177850835352263180482925920342222629917653113255958433057836400973224709434546993299059908522349715808625053945609138727303074470080374615283367554967789808648097136217384682105568536503405015938485192721170097988765401761760849243854447229458817350926930460029628984193829834106341526878099366993645481250457144736452645414483334132618153528063959804344926426968652120151016510342618397561606217387236927123926598754303809186737382858768003763034512880152449414450092793931737083549845567216914599866962717245110930154393494655912243173104287354111801912017780963551149934849024200264233388204079440613194957899607880821624379633619211014371078055143454737736324589795523402688487968047609298353276006079758537628410578130342667297078449990309358263201083866317735247091621248129337598122865642225661273143244417947584536214108726834759327155519622200370262878591253156189670109726932674366638282629872527187222922071972148943198311586857280081920099774571767213270480795801599931926502320108082961534895513175304678747776287697362605314901063324429321888561961841251291951719978459863960491876250027386480848296030770022346424124551956781515124505849869897310112865739300178356632660630598609872662474697185647183463361716878880972327331399993015545733233744997995803334380842276840633107718099854246153381455658399154286793180146056198683564512080598358746175519341807187630678092152354510582995073797423589703354640499377448899126341839259318959148170870357327062333882106628342804970852421601622490351067301044290312879872919456805345186372919587925634789847273229048778649656110412627365231700410089014622931879941969447500429727055814911660362306774362502406861787913567107912793744063938017126580713932670024005484296735084432070229024426197469654102386162950324198461010306615212874758993478921115257965440390373103314529785523847340330250031493783728860343453739231468283840120164276049036305624278831561735339474256928459263519045522021062751472131383783264629710685861029603189827330933147331850294993683051336985693372654994726523268758048384234894975012525400057433614144760706861197896082514061770544484415203403935376985447368099233549136787533823648276934765539237021087684670895952368106460574079187563498655288311296565818356308026697113956097185885573192128270030768526946266875690396867041779147671463835413590627599672118471598690351413991603689018052261511279609709403750958622331290299544484954035859360830544771780766844122072251373171439744755193685226292996022447977454659701610223644506794392904561941576478369926727796150648153212567439942655362749098145677108943142399274175170118011887294072154267714730590806965541669157317368136807426952649732559952643473017273421334572878838273558767565702857721206360810115162494067565398181152746726488142292982862014211517008735846189324219985220242224060541355717821647162702864974779028038615116977041392181327409814144578319349671672063712131717266819199332336099756618674826425845851045488387600166167893888257196561879890867631089931575768389647345276886484668180241538868802645430005686868717728981634290431549462425910373813390961029869285358406053341042776624088578231897475952876588393058942463108215668558417731564220457623729832094643659193389668876487054843556235211405161451169588789626774041888181981782314163043060722637332895527024592212345355442671307973577776970263894653621511397366334399559624791449721666926302560397244804233930930400450484732276291057098596240813302522815576719873581974395108905381688968564543324124856322093197819033173386344197311105483348355488323605115532594540563847953817826653941420567946412731506453437252004291807729836802080258385873671387832447116512496119899086049414365414866423875963730625286358242140371088454302690220576607774336012597363678223774467302893312983019757171473109025455406323851382892624235248975958686891615461930774230262658345600857510865402308785979425285073377564630311063434960641758864111461914186738945355839609025382247747088041935833292895831970576416611054257336478395541404114840986250005762705678666766692652816201536138715234401847556709462034437480185009913151500722990202093481711159466534393082208341515911729076100700335937875076141673807146121944949260627292951286974903033176242939734995240926470867022735144484065389312900183477738648050607113541949779892142424068426575943656303150097447560337132305161864298662192426866711222334327699364863820964542160392631888914102375272094108454096359040763562650923299507283216535511678161300231426665483211550982267287769317219454127289956946423918843100812150735351312279079803778367529325149893514316527276350406497722629377761695306608863918463629258081783087029430634066112478042421376145564142747186418906336948114101583300818107753470987337471887644545964782174479784005062874123602427003399614154056281533274628973287665711932618766477559129982824768014799498275663317440434818270453805775314559180238918506955690588766896293532540770498319487648164078109050121540065897823009282866216650049980161406986944432667911608053552721196069063762921429696481211835039246721117409831997571747498641748369023914233109565884991402547938624414044983736930416015783709261651255932851418956989348609202764085041205743848636682387740412657837371993512235335574928121270655958829527448316925895958878058044050576429946303303806865270741616539886487281307230594260556951437478364930958035170737698954747686523969482153001248400099332089287481277153509961860064125495906354843396935152185542266548062135796146017618343541364662870120677508652223717735730291163066890257214370386038786415423327458729393119861438906740316715338249381580129908212573205525265446014038685648533085702228418577468193611767565115453585507782579160436836566038416814868449042799234825384085899260978581314490764332170799499093272320943139026411519109665599660802187874477071477679489958513682775174044773115190266701267511097783049633348379757768782045998988502263001523719404974098634130016533863281675869862071245417577957701228921129486607329803927075513027057843614603709796507248323427341189984097523562838203713446479054920768961608360756439891115182057644228584795377550593998488588898140907878846613135987748379257374729902728198214631041936184971598208802737702851262328721765503537354893195980347960741183281634045245644286621439196618087481875180178105173082185213487469982692666702881030592246091488791745789379235068779335121574059638430272902385455510226166331532486169572366666458800241491487679079122886331941026680899552976634801501025104875062201394680519513461917416215515850819293948062632696309478142784732750409317315726582707930610332298814161478392833850459487200934333715707522539522155820857044159240453436902827276137331923486350006310597041102386932585265821027728110362511902949729482884273900922524764689069667873790662536841499152709070343797272952993068142221146138644101086516085692720269769774126562536184260083796912486561104881929678206257574934090931762584451475395772493101696515722242530012474516297455317895041987904548176007311907971762041907810729080201874671536679291081074906003020656129501326861881291303037924121666834483587934899677067562826718824886331591825642653715456422688210110562619184220544555857373477213481818647581806359680974223192430827216301234267888822429455779646853035440455894799684485593512811829535201147684104699351298035879530938172197442751047001693083114381994791755056378159951955127224211090327916467774789142719703333005778992101628290825036642591004229866201567106285937179594592202941545707414191178764923990327411825871668057258972440999760956415947789091364921881621390780575277537606485225369613398306123905373077584915096029307699987748947383128516562532502676447770984078966573097754673312869582803408791678300402517556664509693647074892142187918174724568766096511480210417892259170824235601552574358602652745632700533339473492170987550510743485913189509243196654230138551320135667044931673428013128107907593427288478242240100339779152675538594720544027990404663448981780838948515769529045613970439517775111989109872496544636014892640777298621673495205065228770479082387448953908631403282260910774558157280637874870043582549268984279877726094121647975755078086002335872275378472117663152447950584626517242021828421015833418787642597941809393871064123639212558847631256947019541823623594762755752278978707815194281320261865699739610492077735460271861000157837940874330299047575952909783370762980940878707851643571647256998995654332962238643012207407465149724236317814265433387267278366752276121296223763708621075959263968587255436810177089065484360906181415103954201433147511127346248587233765571964242792196164211373067050833603932047015713136738378783158857327929573440128912534507003486393406191733236618891189516628762131119503965917202545438524884886721959730160809833571535105331551080738788363036669628061162366232849116070534064888743792079896269502605631887265809539419301518419023950544752313441848877696662518935806393268071010648149950250378865861971804920619302038064167610417431332671059538294667222369585142793848141600184165283417977603140668193064791123858330831078384478227186619046164330536425446174620473023261066845148369380404331399279696651147380686761026300621455881391137386400004617021132027727364514816511245785025212420423259101021878305609670124345180050400509154072825347673887266079226671206083131888097372051238389780118474305577947374854987157540512887204475223160400502738334445159827694099123792910613685972505751007400939221857710947579776192147106686830472125467984857425530672636752279794346416671621583036756126116993465781080064081363686953300346538866143908855429655073754213632412407963071186444515122300492940854787039501513634632139624934474716593345603995710072137037759557863778156904433119226962373772727603591270514340720561661673947327230092475926046394040999249243520356182814690592916373907484022026666463259317849003285048571807753467259313720870608184856777194256670441717287284909180856630317534864217521541219277356461115068763628972654352444558173508545395812211965361602544047958205653420992436003112263844338583314878358003019824078292755560655973603659691665025936193243830119668343681288849059432896125359426252200465051352350018680800666731066064432067094254073305842562000108990965974580245651999743857120252089971898362743767512043431086387875764747829624573680958815060809716906813323444979983933140919254879105283279866232554149907322302458564457212700492050062497081653571468633598051715138912882208719102189805876789930931051397441973908653128192824516943038015371065781246459565015058358437399851110920747596054739499257231858100896241668248034201726348305038736071227306650859951095836952837437210734320206051725190759294061783318086750153893842552674440408314853418863409754842277033771763022055355089039953359456569418817461775013716614679422292126608329528669202083479560600902561128860731070846461379784602647276501536196324536707802748031364880874506384612576017817006499363064951365722737144734217823024367693377330771513545218822804420992299475329641084823542611364922830172145708595266319900840373985866210398295933761774811324302664403707365879151540212701891467856211029136072713162353137681278392773003352006341631821631012909071867130044076322569565431046062102901956592148679303804306007728359201135567000882043469556813622284730872105329241564769331502360001412952304466308142722829853991124142158525747096070342266100509437176305473656459695964206080781876120642513490873549123503695233568270565600723665973557137407665174977064765892206764197944593346087805540900511643676343147727203658901747471020639383566796701069567943627362106485841137610657905028275480575244673101356940261956553227270713076217670805510531209113220483293400296996682501720984904065782984220985009053133635502069595409198598748878269974331650234052428340262830378836614255739452219006509869020265999933624548305869481270147196771487193134427385956955450518768373555555242073307760739959515722404068558627432891012449040956139056535816691658279418064373369515300720260513862875678939182897095186689674432142838702199109819700825043951469116137159916705862878225710605870996585934693507934719413016644044262937055965747031151588848870744719483968292722663204015300644828027013621308785332910000711429762491312819247078619992887617636192117797672174400369951217448615050270238059478403700097577793145783673324733072493328459910902042789430003872993475693515027652740412031767660554314824657283531451080509384764945331733255188295905830859955465345304031409778326157639628852341216518491242813743171310775135041142322529990554576639637679077623988159999722375184374964464996379417783076797053501679515148709688300041442264920429239116032633234075435005766851369265163459168413117831507906266116173269631966966001703763076263147508829547290919028835298370206602779467689701191466887783167421204630127153831327120756808795608508199938115597690154201468135379172650604275056925065696143444417028740000120950453846204911398654757127988795841778417958732642523984872931748234940493160264018492215972372593284842253447405829922447570173491817001727528027679709013962948368768660250364537220768133497443726373203315425328969965435847003187605508480226711577319317838739225931141706829408726628500705180485704856566378235118734183381317360050807417176997579782219172082973927772593410631365704405074925248072995283784737867180370801109588344975314507699280347364778245344917581320179638195385046125099129121345451054473270776398431725888634363155653971861807322636518331139591987710437398149088341393020380472862864005954839869222575752257328911141577875537518469674631715442086570684922516211583406799665263850345417915666000327322643854178856174263505486798572474326636020522318541580119561136800479792724981399226681194324539653358252374032973335224728035796366876183735282180978827484945301997031512384646029272570129776418565837878135278839215587652001770909548594070938850689527035840672438887982726977830711418564254129962352886239408526123849178009660691354504578471765811318573644869529080611820882488850362915724649425765800124422481943754267760085800157206203146295885295572389488211002110740577494360822799394458297915494356977088579139067680363480999040342174641350568487830524357594297134807093430098101175084030867377768822740967154871796746773261512395292039494413797695121605070061277039908583616511815593993362442085452309000241330098159099455210491602434197879466699215719769611058040146389123607240584116851372538263422432541201533856328358293571267697784356895385856920681023642814271290358759719691971682034662452591800972654339643206822777280598330005226779593994947137009528084079605484816221673751655294684046968001907021355858829978652360722500542683156575090274494194764814055874306563744116778767491403269475263722695139994020850468499226017455040348697360254503359097205542326058172037243190643638967291435320243147489163224258362687872842383020837787562219191179116157044262292183340077137054322548869977622345206931013112507913869446194850000865005396286653546619474350155194189626998059560922501875086346880499075896324264402263188508389520897111917842677488274109876129399694406961881581465196931881016412936944757281381008960046516513844740905056738479053723755919403700421847569422709104005442047451681006692159792785023153975670530232162957924342862204886438452318436930131356396293886562294001078758259691089005935313755697278285709656968821613039463673958419862883902866782439961715736022860944438957780297996384425719083050314054413226649870421681848661302753271957244697988674637417543568745581838891278511800230010124196795439260571883126696774113747721563221082236069479287189509342519437877065926133127331706447343735444238504488131456250149303552675459249904714931629388953089822531365246214004026076566727003359518763963380246880889196366817388639208945978106343588619323791197526853984437169983286227340102650583476679338645293823106308880324041085796602613186517744847448042902262367327006502825607816704469110041142267917569041101553386911493631887004538833490972862725193314993465791787767019631559196054904988438907656952085996962642413595166947355583148360913630097196402877436248400990966403143275219884575517456363889860241500797777467378611116948438601114128964377954784491906371244234422028279310990231008681044940936338858774578448249583227727505064197441193868825130558048367250729158330630470869446299308195322390509442488439245874872376478257531316134755185247504898329363547922797767855703978728345764242873828687463371351269080831829362445181747460208425482154071300299821215195283340775566129524180292066966830553431950929971158048661052847810526680959547653093010330103017635574289994937519890938853514375897492214012975189094822109577077951704030698013074427205159589125467835965524926422765758349459107265519202193910457376206224920177587221097234973232973377922702533657716401620770994616868928762198612313357750039135657288838500404369697803724699624503514842059359044796399940598526282913871608945494221767455724568303936786186845392191461746244340431412480898283650444379053783609301086020650921188183977778386222666461892154875155029860104753430301400469113676340446436992313341293387444478386395179713251618564682942737765467066852334707293675836660764777607861230280234862712192171210980154879950569668187257770871256208146638684264230778200975954974122458589438897584015733784765817297351005391788897763709700697654394644385929736689718952621013849156169125139235498216599650716205422833659309053856046837379080348539038657710076381254238601146278085106402044011980380700347570896818178979209007020432555694886329860180082407507389076782461219284890297203050630393572722923575374769264627766307431174069988380253413459456245470511554941909550551297403371911546346201243016879166265312047079901209195824193451989476846361018576574894449758291403404062099346586490564761380110894874908246244887372570798065019504064298697701163407139609289475230803645471776969559122986915239681930092492561886910711815630291846593203817393024627815487597214486427772434120162405068686029821146592304572982565862276074716533984715391539925617848937685647686737706655062631351618864498366340346104276084570388633846329733402985335605266189050942398487581257148094416924682013116642291637937023705203698602611142292972625059217006271659314831208425277096076176483749227109132233756179971442727185367121348269678372485059373274133812957128017095534282220056943492220228853723080963134407360763044164299930876361683933778303026524202274575241200807515746823556198766427489065042993512283682046127376580249155990227155798596239865939208578115170746968252953225323647977940476682123617707959975156335598634050719824056288843341880518138155657079193857207647327840858195519922852421848390811331241059783116897612881665885827359946497435924050990999846870611422975467018426879595181166820391101139525667810240557713998963863767359310704252962840932051947848865901898299159983405358115133208903485172992167297680865488897767127484158274880221670178166927546956436684029985127905069595714559315143243152252362773717097884614009749653645937988038110995950568576392697870595228771130831275266074610900413536507591015640066055430799506253517040809817299950967349387067735201127451484821692130705722809050463025592375503481263115466137209639457705712658981572529192955951589826346842410262491914959626788508514649927380451616265227206851148053711544307006267834129516036466810314672265609175700628523002234914569901272401227224284618201777679744885317340717010416681075108909906938057666365138648518337780639247054887178815241738402107947319883967053970139610618446342784324186276362305414528684864723393022400469952481884108228405402592308037600878799749992067314735235666170693035532644363019982508262015011782465888245838862186518987913970455153059079658838567654631703703062560345448863650026140041854817872496921180935352634377195658189476975473837272489148319224178889377169623278400668385414854846185161641424083309604920036414676350710957934699281822879507041250489039911560157567181314242376073706558940843159984494409795387338621408256773477829398078629030944469306099699645973756585625218423839355763920316632770170927226482046009804995224123974955510034727584583414194964021640127942420645782120347924684394715049904864917968626578450296286855007755800656298220376001000115698534253770087167132219545870217110513199580255909112420558383400741541496122279424700429239567562099441464076811044201032869249853891129405562665823487631273795130499592102019952517596435006961190902980251547364930850746521021741487134279530873862730761933362801844708319744479386482649860174135173193963446307483885135975864523074326028570544686870709710619540999440797312273588735080868596583047723858994560888386705368120266148209952462406081651991825370640265179728522274786751553549391385010325573976277091105057483186917657529120706847425438493695055318057680185865309502934388398429705280010669012292044018438568932649975125593590762873149911387475550614674982849229857527602227372336386481483579492889036421395882352122723597975707670105084285911926413724994005057740507953784726349658511989345446664335528875927344052384104840363702449756104733636470919558347104796209390888940306138892140170369048841017289672768599273960920287418257983992322362727466672832720031852655642761307225181570693768712120420188254107181451611758063457925467539000689121216199324006118400947616935693181130846730874514109100653273094423119046842293307548005337535554826550763258231950222518795862749277732819324861720952298309224905598695901376901924892673734365464494778465153057593008714158025074635913868223229464121459976819468002308377895769548148406343032473689235241778646392911408223915430677117910407932023625256101617384814693935389029176991379637257663086037393048300429328696248543299041899809388265439182351427856714037789137907835466256166403983160849427982177698328351590317983013091774545926930445924260566328455331691158198208695414396211642711262626630205091279112562124196669677537108634924852343833106632282285180230227705238192844200562072773754701891491643899412961035801811371403613142270816022546023213869103174760385952824457745992285672126074228905489191604711478843833535372304530915509597791957890088705969195163766316016235099757967351713866477549619980406987359455982802319500914107495171493765290307440801139955950276453391777802504760436014418733300351913754607836768458659570717789878517612124205212276866755723450959500260191157128928177777632191193716609437532146793535095805323551214088904141559398069033280226995230116230186014652436024383329930658368254375667147525125461950573354416237441853715806236403253621487142734177675025843233188923231336307577017596258798142436449780032280379420608138126564164801599185495304752735280637521047924942509375084927867948422552732174534985489497489214129915304928150433859698540637622973967803061425527331830899066289961538457664323391558121288245501544944110327425432540336357104763213215430296137422089509251949535639905131033943179272355010604403875270487172027022017407065190382927394679716298863534160132244151708257958905789257655929062469135537027470674852117428926679225808385598823426321207849852135163517554970876422568757214338979493267251966682777817045379226653190053049218664418406032843647272939876206406123472173978951999850887561265279718993644505848397329340035700200731048616115109571194473770980249125761439634336717544780610346601777127617634834377612558862473510558574828063516674941693060588677226895762176246569066275500088468895686362567339861775327322968869818952695295970453030816805150235989928957915382259862339003457331119709121638833835363388477599916283548567552223367816947959394356699892935758535064679777787444210757771285850732321533229618276969798130522104278166802411028124411458209933102924529871972652653286686515524257674338050769847200165488667527847816938402596334748433460689734895403553156862575931761734141097633485767807197929046590325511214786465072034798236341782613733691077697149765210223706811368309940944602631280065253368188232918114750876588476561096528958743339990795908281375629512302301184498388097623642350981116264374916293576490058034829338571061145362316359656198822405056844146528407242448902148310616963614734712612728148450077281050316732942746947847473829310705067134957510650926956450119502056023624104145626595592441882547462819849477953592210904955254086411943913856447176263644281896717245692693568187221358303748976018165089669715875263086202458815920994775198847769722736548261903309147856506342389693693627647747671477616241508872508093735985756241451483024027895853401512596944042315018041323526882349509930724223293735787319705284444423664520922375025008633951407290141257861279921142581284595069086471467185686510330286234836667274841994913159653261441473996812991907103191712690436836676778946821708754965999573373366258768087531991145679531317582971934118983721251143832255418813971436777836109870772501948055893074771422281460656026124847675698289864399652887306345870697789457705518903634976440161881741973655659791322479212679106252423207060803475354016306272829577199756341461231941628359633471471664994649881251045922265036254677363973820091381788957636053898539528774515703125933216145308261596074762227447564860011295898438155676131731009628855641485515215142063961033162849849921348295781332096273236967411744327973080332704151224737057540993161690714647078224094828076847459733232752309106054581993532746521705087616339715474971776337671383093780999196749381993493713188698804833223579415292924887668175973600922288474269906799052978211060991855789568231401129488500104307733182487272025636648031122093098331262780399137246950806711716007956937039302888896712347440142897996864668356387377056913644198216173384291314374375855239771567189069016827031184541101149951581920464367184817768293774002232309685899832506384471329867301608278266509192087824581462431287517446632806378825628147886006320114660835056455465844696895309868085559359740056034152736763996744289235466364304875793559520094786069832713115946215115979249356890128606640987109429349819461675417860941992832757427005722375758811324531734664595671323839991397474420711952228293094152169135577469396528167838471364820827273167023968787846275275105586071998217941117361054896381943147977484998486701643825606870024639520623787407821058369817008428937818781364220735487143260930470788347744875805596784548673007510001403385752369343189163387234950276909018430317260375478139377930682238928834254090316915565085088326292159548113339776060611443713997244924515544112131970431110827528645712922390030327199332575998832322075867109285853414639947203527221214393884686209061033456632822440183104146429054692587657941248932978135374017431752458200524173286895362746770383937021522412435093114724566630677889419783215552334506152714587373804271737472944300754811684329573515450068872872018340812079658342237451310633888037375863454819802547083685052679033669359264698585656629745476326881648352933794333781248670225790444902721529825501470300921342077331722399206954573852448524698851743416550760940311631873755211529867139405927221972313371310647174625348915272612081013308322135544752312920692295121375668495766769539255561853218063106736490715499067206988386970835929848586588393196920402321409898123265044299794016285493557354681703458844956304687261568684961396032655180233396879660330457370080469494428260494733232487482669346163927066635632211234143540675779276566100088123426224005980416729972406630289104732730148209604960349776997712179103128178114802331838486915897838114213749627845923658279847976140321018268760741964346453789557594687325615128426199102257760946847269762218118048942703043518479552040444247563014219189399711823655792513058330048140336921311664130592110875528562960698230937547314611008810447299129371359164172586949154519317473204322383809672241552080149761937446387109931707232931032001472907136358571029869093136295845425358429379071573437248815589040489003875063471918673885210521619065731853099630609603811137981076794877916516518375520451842072608767444929743094763048287294914754872846293224907912989867140687651961928556859760992714015301397285457313757154977571953219456353687299620216339503441047416781279306349569419723037757236619947447560844036332365857961349573526879661696389354792058581735241281834237525407272246368173438808319622460864040756671137993553401461236846440838720880327489682647932663699933471592669637799275592608057124312704550008060670692172732982438866264519793284144985108552242391339188016751264076663979985780219677702197127274884260103861637690015390709194782761722816547854105608684708993640956937183517982434857994151111580779540947189323458152001553916270269810198765131457383709411807090926406105521863235188207912493759514464897141716452408901840221212909450968198953945909850615458852381993111262897636251184956950141809644412506225848837189091357485594837954138733514793402054368497377293757966185850116166464373657752488433004118979944203861241449250597552431428378191211236633286533739438379899907344258576589747907308392739006174962857006766842639894970429374296981631198971677083015411896607289922371068497559813090055713479802240985471957308012240183703496447819489650845980019868663084764739536621848508413832442074953668013434360449892611565092958911779736851214039048537340770617460622196482050948526419737370552526053668257511009215739668018494543529615356848048318282038509077783514105943774467840391795132784391162636786588645559453994805374517138666519979594420803914174113878445603382021365947815604138118911381375605465940317569639176724993381342778770283553200612890757038389257940922760192090202414425074909901396277798862536665527298890200927512245246332765231089272783838016722215412094097744502314667314721300190655967235477198526664806016904876523004793173686850115474622424728948637225976678771977728028921968105176068443683526907747116059653413811330569722224181776732779047452420197766635916997027202698888372129724217321370367247676308447391085427937630299116271418436526606115949753669453452068387214580468549648881688741805777069945867213445509694154917692693009997227342916731095270930587761190614287218698243041035202452990987801849726914183729677387810005146534686454549821970803217152393808313045471485615687172907213810444900473452439197018963303921427365387443735607434752170859739751739115064368501979093781162242518121849754664958565429017156876295715921658637625359572448505433465664729106822744505403713249921100647690350716445893501530225325616408373470479497680151084870676809448377599182718450048242617387118824871339455326636492422739081070610962136825544196714169388761777832841028975785975533766636988173256433161779135088476456516907906646273803560528338793109977198377962159624596551847278760915530242411789912982733746361170224191976250563708102672331788018776285997325889744462236903153035671310577345432002533265006050150835759129085241191303290027929334492622274576310416906921286404618141029025391952751287762545145731147951412724922067612843041894977280571738836562484398788551193676452223120897804542772706466934262688590633110290665509058026117340103429150985485269103136832681240054709393285062321413430233005602227497474541684770131535044995635078234368719730141575057894804631519060814902127388599452807152481468507408774245057118833230348672948339661372298747588528232595675548843265464517663870046010426391069234223893949155375536574152908015507029323073622951396088775422606901123284702379654274489973007492371322014303639710424136294312902740296196908700002869034989801770961761232579225147670537391467394432178381367131157381014435827914075450424378429617926660726335310410336025824207068224692311783856932179967233993964908902076673812926459535025287507064568803200406044693552737787665777476743325741914198332627311782892437138603102693985162709267222318183697837342975674852941790428967319519038421008375199316062565604909184561394944761164743515934513569238770331607037619218573232581860867373475023618226839369426897578971233116314967519417581554053517116156490087159417969852594409550766173159021075573682085271894334619862005421350469030754949183757349092226183543539583600778574850008743116487976202211301744538088816089490825704186574609576149615161982408975197029520211507005846848920508728919832652177512144449954484829562440506532067368533332022848051608003519015461764508398258798554982778631621838369867570602639074643854782302762561248991215425534560781707847387090352137880620775784303137305923719228889544154396994705059377434328460913047427537943208179883840535657455600483797298095936279365463976746536580011667713061965298065464878362599186046768555699631985205609388144137789275159046264382470872218783576483494071690700890659335213549536868246473943167030539554367996904847733930432323902901233145333125205890098691126306542707840410019316307226980428028408708976192978106309184899642477154615339348081066407840350325636387656110698391707198140145449672885621486390908326964948652836029266977783511700864445830306128816940602028438500599194811945288997124770136035990861325982463938729112633740382453615839632789189710087248429601235722905866799787864741179877790876612796162857562533894560020288764129739591840633480892183035858851164084257894219632396676511119948913015239293892960853846063114112466407538844870651580656990082942119002669085390871535197667109236502944737914249170753444445447019503157789544315488293494705262930860579543374616007325840935753692817571866250350233298661002086833143279559032656830501236402960324399606438994843340451339356952717786878297087088074888061803954240680324592214784294233124586830197426923142698923455209666604258902095546996766263831224736985502823725783686180009700041441477531658489834606032501562758976587608699415306744198648371498912612376675123832685082418504577153254233538086493837089255849656673395850582999573618551190452246218039160461596725095875863173150323202741391793992850950424278913609455137437463946720583325110753393612377068705812009806999982616448395906829514226404894893968134620199753714388276684182856881032954559962731991644739719318643689932488553609909875036595980746168668006264936391533390383977623258359654452146917662003321747965610753519695365626040237242967689512412826455289182884900619325953874831152125637248021402566169207397371394264409081966577713175625713767386593973233017150680813436424258354477895068593106105812701836685434616501229598831310624194501797923152839718697805259178025497163726509494591478098334406966146765747414384729366055650654043325582327680151333748377035567078153514683820701698251720308611784751234222671914784168500077781434258959349005612766720415793542846664350237990130395839982680229963241498369232677260854242630866568699278598936285968287334144983217578176769889616262467421715062543258052755308329096838134235523071323620462443672150149369657459635542697045706792764927763171652768484044598223733476390565003061697444945740349348139529847003258401410124980510543702203900380567622352362720234662459124839870706475405992154650351004957323385807055492715253823098756786119403137235792828010743612819882262628284938444574775996666317819557631833095405583107938038646949586748581858202236337759437275742547621662206978925486439280903124922168941687689286770107879406678878952940017037680808251387333721094259751850471726833066177397012334607490505673664543999239978561926035299777870050923566429276694304191283547861112325732808751891954787170443890947808235381476601095125198285798574536527057656524415473246654971575307907619672490262385915164966714386284279310688966711011329815093567538508508717600053677412684523514753337435679754211264715032278614603784597409530994212277390122643482261520384797601327081632393182547137659916552271846731166402679408708429824227080481896461106844252321416157021337172719300122903751723541583124652922568536202256565018518979881333381018798373711999415046309916087622719581895277747421266645924099574817249297241249000954948773109001670844982528691939091123460117287739625293526970373600619989534630685660427566171241015961786890687819506286813762558390149421326274867951193178952163441747750301187517802816503878873270509191879202685829673554373785203911617587870514005435639721948536971451698019201016998863065968114077226184264914018294581017658010218082362257954421681776830250072100962234070814093073546665649688732762175321399771332517611353687041751135814293060477289863497559276054610628227321312313976174739063898413282099634658194000218494681290350287300809088340940888300834334681993645900301296492215296737443424438489864028461972199200861435000396750601357075366368089386651587030065853636713119160255049103891106487944807639274381468504393248255523851294180508432550985081508436131483117814606800988231585631958667737537831799134857616291265422039921300864982268228601154672460624587064025082275231853551358546646188283693931933376861188659847874349286073693695157730256378553143166737231975609410635019927271185323626136061927730004078691842240257482048143603661750877172628698966250386491060600495266909422305615198755726202991432592948203861685276722260792395556782307239341332447475633246012198041034013181127042358233317246008255890806513047948086478891015193843915961863137894156218117693889962646509309390004531317706533923094056314602658603527411202851881057759666475414369591062067565722786027626095593298277933489867522105397753829602774842015350046878257282786318444165907957964938353270040722430293633672528828644305447716379186733668646450768135143212579699405330220992799698596486225234737607842212332800691041406622815437806308712425805404409119727933279934181081186290341648098650448895773131393137530499822460580141717952658290733320182171271241082144973678390407465621997613918867109675309790835290930600541025365574272537936324825687730782041352081471196850312976308720613865285604214249799316867421737532325916158880303001469444156977635432460413796447564113845133570938959055422234198097535421050750328202972562419169541514519029050271287307778083384403382418090505996993678086667751060770315918955918950543774592498198808002982398311803945341931123089236210179009108881026265932875735280877799685636390614154946831968049881263075916186200857158681496391336136129956196631686141997878681410574595672926872201265670340300195427519785690755865471198889267194429678838769090608499628851167763579355289215502118702442104001674720665891791506478299263865821927666731614033100375271440138842648863997942247831606521766399571225654466127328652828439689071298957820054974142005021607920135393958728276264437338618902184932311593742093186738236973210135945453115458674156709105938192464653187923566554313773556496665478665800769863206366752452370806394841279907416553567342009646093162772389085052409844455006540923494795296051372461614874908025335028777670651124670289351340678560480783419594190381091320268978831647320428911918427529365122755309115207605208805872832291747105006770992702952513732334731005231031380355392854884811392624207444697155989376903786245595875961441864422129941524188380351727047898742285581996322234880623023832230356495383791713319813247521478514670206503623549433870240498769696162125242248048630397628774039386132250886262474645593007023470979389389373206713669779564692927554160236891022345561114401747545543401833447112556414573993332783614249259700328952421663382800030800851254580172901639455952023111476075094254943801871983644569711207561047888339525672672157686374637149485093930139075862965474346359861012938517029913625922111600567922797754157501739081218942124455428847659256428958961326996660696344070493921752567441281184128446206061322498497249858947948100703049612161061923695475178910781645754682813273572598742946610799608970728217675690419948384078726661767669636308322543048586960320277635729340025827254659317813270049355108861525850065926997676023029737668328218489713481794726151051216393379958683857173469008155993135164684135655094162286738368711450006327598032960824905679346778342791257619822859296213820281459743541615862014916212731308556817703539626083633540091319111360772434671620387353720191371068613386469419937034035876619780894815846604602321252543723013876600924001271345231076856380725496957575752971204618646887324203499664508981347152580927964649507218865018842124267202493024254564817903006270781177441046945973195471170269368114879478311607830770052376544979227097577007850689787766863197186894291555438091296699500295682187257397027474295016370688835952397021484548306870210629303518021403845498124985594138191528220764658723187202560232825778550763042940470991722467831388080955719862194914304712478474327091112052482785193038827004117244420067040078093185445520463426985945878838949026792299545652437057358296332999684081608477423094927790633028992394082945921616291905803247977295477155880101187961566629907311973216587900003944731733656541081883591012258058810810478091581950188944292621349439988132843808845771397985968477957479809100713258426539170920009732497200518888273563952372482592808714858873654687603110323837936744272794529165610266244924856671614275797309758783869632450582305900847707664082961287748980416823173601550555014846271579711435398675832124375823681265535016003538249697548817736573086924245684969936638249705734911284784110987624552364322631124345925169307207440742337587290390554720100548732057705521554020537264120726054485733450334810159583438726288086664121493724365972074344093247074102489422553421662095314539046821842625961195333973458599978823718744425199247113562750920640353469623309372474738805799377090049374310743787037055251455853399323723527472867948069177310685102385554213428092031150251934916097684144005632794921762025757946284595005062991453596645741218134741922986046285898434026040809736970210579889762336806357999154373484972412908763799265279250777095029845630252661731025277842009261515340602462304705551055312445150786501880097764999243427677380363288317782152866194527098147752883529782259858382527489500745875545466524353625382600815283454581767868962680631909960642989198924826147160100754889093014107951319216039595479580730131210072750465110253864140746773119836599412106326462311154597145010010453864051385371456251544461298278305673393430842715222983991839769975458189496549882124927120186144612810652457150679412547236898974354760273366380279924256199748850163406148341944982181395719914859659741510162569265098233628909237045239630785445060039727394295252383793272216428807629098453808403995630736810821405607293282044471554532058711409474277595455256118617131039610629065461909767143457297404102951058655675805120810552594524655328062995301986083064541205417615922730195079904741487045893396518110037635576894015466908619557834491731315695840461134568449577798171818072581812437420799178684500518081256560189725738981254316827948369245635977269770967368912014269112927623891291258730144771473914254653047828137330972349999304059758180181374618951305770429171191841953304725370584679193415167049709596855652166954632366639491856429691545656020039043260857884283767405450689288885221409952948109192079075192414536017715213274145676518494926947662288526982712285294336877364395486906223934736893254482233259145614585685840594346415602830540389551540384213538988285750304362594009488604380276120868975647660416357484103706762431659936868545259810783788067483091450313440852029226921724321804121121319654355808057862369336585270355906630350643788846160397478095393447775857236570559038817949199100290024166856505404505825571467909674394921493412641973736963919075300864623205769602660608732487517991548298140316916221383875229022298549243151596872584818567184067257959318855655807126182160623653009992804687140297315413142369156838546433032280225919031621234464100299242921072075089264998200806933547033130888826407068594723334881489339469624508286460273841129611989468703208734688982605344485356410143460156296998422156102213405450147427890532672470968205245474718618434146056912517668970901290226517443690251076956177793314421538098031157754999624459281375095852058034682455555010955823433912748674378256372031433671316031440522303159605409742941722758546528976433431599436763539321987785493059516648531269940925669675942007617983698051564996509026235620025757714251152182010550924358003946562782847110629639155052154144945731257112981283520645304907398633130942209118959298414747120095278048413301952294084661101180265288116981547858694632929487198644887388357845711175925414120498003366530496887960394276218473603705009337246846063473383887132199446667586813709954916164022382644569323486994595169140101963544076674069664993855420808620138140619057082340801597663576252162389729325432408009157068332203282140365744165273347829653383933318042534610696781872953225197107302343073198370111985849457331809749563188551335237929735858111120036796883350781025656644687991259898754370042776990862594458354403175716408511324140045451167382294041393947369766241994650236766274778819474658440494617073159675882776572729373660375256080775878931007715973954796851508065439661408019126638186068074736482517075070663204373705662927211981626167813165283538345924660575996424193245584220591347130216462343384137300660509882818430669756707559134631703714557799575115123846693277563314824498111411252581907564854987631602564864985057811774346609046032216843074872052307175928385631935723661992635940753229603594670248462357304500991977560161017696925602624278548949190621128973536427855684905566290907150676010944511903641270925559092327057364885505461885588073746350468249867920187048411468058202206582945347415170159094408794692504065437676648225224474474524072834928156638244920690935694356552761697894172176964168576448302567866633372561362114203568456069024620909264813726731958073125491586305692970196743719479308536640111027830955753674651544760196565764597867290396374179188999136134190686078023261301826349727079591484501744921634007634326808672629250640953695322476212002761376083059851662625025167579257405498460299902271249916951995465441794197270639468630911970694950222717804067939920615330270480829192760693834410424569202731067644017032344566793481555632007123562453621323252543301396656605098758302888536979983962164692025775263944511958260316700009044732187236415102779123569615485027743005780766730475272480439774850464584485972030325700214531577904461372333544218936912977948022916295091023643428369072576450215833880703639744486051270579834550204802661239191090361170973037761389791273188740790425414206188391803136191703252689586348539244294307783670177686746275514617642764125290077100168855685798606156740551144893917049955264486353919413958021789155199032007449939909289134753789433537808748774121148190276252523000146084545242591135923972333539771363989392119120755562000206819243126177799256960488820459072713114551622546385124606185607053202332646934172690735163610291050022410394021467143863675783024705869941602927404203729453894709124164317989913265711762736211614700244096968586246784040884423802573713477319425730413902250246787740878271527917004719194096642017499210481171961073355222160171066745375181030088366292385759034074324251694330924663622674525414591279268898640172749501685655084026931317601521329698646617399116031409680908031946022111023693789997831155651057442966198561289565563553120363878520521695889642685734386914506871831438457475196139105071292309219611481268235328448176520872945773094514020399302052479724723660288150783778171925582525087783056710161063246281324101706758192384392314169403075991801065183545118947256524704254946863523011539548504699673858494330456007975048316688422968028033969799511780081443736547854817161555033537918410282193565713781939920434024494656987025761550642550286755064557354781822347234777043324757076115943493502907150867562405114042366101343428388743728163248153972970860838803932531486353561708222884849017707356158580427340139561093886908461528317354337177107708601421820527648601266955673510248646760358067063327442662357398755213495811482881080763424139013294921005985560507451880375694641384053962128578481944364614572534473599820946618241291081508969437258258443562952852257910899915154049075734267383593520098705025074084703134332460581846293317290959219617430380833785332349270200449414191108636709476153350349535559892389423811972144230925927667823265970605246290437372848213960144197477156732925663917106829703587798594161690949101473556683137722865007793838367550106478876749232840759721755095077903664656358403536349179459808750835340305038534281937417937063492731786982617068858215869370971388930048596925564426912114924005797691013564255000624133908074187722675221915525498440019328891706718917946822393860240609132015132761343313616058356490465230748519569333107770214015974916428065466199633600038735642335410078679200975861372666890344729386272805530468231534201695602361930127521946300533650918861478271431423809828024592787517157257083376607289225989439825887285226702348419303119816426792201023050882648636421972747714422670675367512838213250145366099505086162370364678847564093098372926950946471930108128643840360097851941616525105786264493702829739820732604625336909985284341086623333363353634998482490457692628493249803289727791456617328628294023973013578154328879230469220709553398394629862126066482377857733691517181644279861281531342962078784151075883274468750582045190066486243459065306991879100333111447517715157122186686874912754805143502739113552920662735904419937262822520589774112492702350295703045386083569810716074143482548011876505856869278582846317037639534725684792355018479906938114517209364904212167241423297439690047377691412239843765042743124438375776568988658136130782157666932007618242849508004051029168180488674462126623431438456907541039110095914020779428180927389164614216247867143267440921707088109240264676315233891643963501745827603331556750299381987736789041457500172655912219519434060030012899667172897301224397996494672983702977473086860226563910149931925254472613909785467385723224931391833598771891166571777623061164090786035860441701967400993130854124278972647080635841184485172617208128106782604982712214984132233235153696948080393326159304406685599981613954889016617629535836358436865847206307168440142764454672487374773738285250660986371007182009691549417083182701804518065214720224426247460019723844435405879480989204769250639999958250914623114798863170001015757205097055573218514737303613631873164140539453971538871843851921960562733054004118306938126231845889669849682170202971244783336172793612679436336055220705913398307113881681010364898634003369507642444659827255202239035400518111659938955222404076296707097640864543514356842827633691705626641278404815606248900997923879310435185895475219169735670345069867590900848574231263023219062225602031283455472430373684747433289106780021014005968108757939317895109760794043403093004756108068023557957465572507655601627811173648658165084492933900042700300742478405901173309157321329523803498872858732693363118752067607793981307667671250138385294755401921906331545764550837285588215489774137985983936818932189832191030700351946794375977380768002843357414469128264002689915049731694287375986190200225069560513971176596866069246885326214484024561977641803728628735115082124651834145317535951311326564563786794758086529515681675635992849558251201187274828208409456412746806251110807518676343685671645831734023641426654510431096324300902151329578224535826498415385338562718779878294611847781019988367741319332170594272102343713327595284654692548315920333094402826929320198830600840738033083190264225482410374675008521998148126570758148656086204812699945567388521371343607251258483738921867504905506653697378062634534171908052239098457530523995289791063427261969514123455096545854177750095237503668151901183754372182294489942765305877027109280539812851533317216221878375817680088311655958054351045370719393649705796623158501937492925322769916996503581923248328124158107989181320783520599221219686861021875777271275151406381726793478561285831365772882021797990173179562224755867194057969509966314838124731886031176122756511678967786983393165431230731647790533828032416337133764381768239817216279507769912222616538679416423130352491957842282357547182196366984582558852223390400081200752614950641776326749905771762906990912992304807227241436929837577288309615931155047034360598366807263365611190477549300038999183141647336406524985518407490736680652567475869539725484829848716556507274142596904378897898152960012458773084357133351915274872568315346809542206198258027899111509994850623335284650472942141609056824359955638810215097933077977418738948045194608138582299725052672773123589346237178998081166640601986636865467700785233759498155133760195798713523854593806062858643876844935206024055217446315001371566745260841045495377987065636614322554872381158598634583365085240568054851002668725285942984167014153623389802179424463490808091652752750708569564484267213946880368344766416843736548855018841996680754170897599904297215939533393266358588962861334264752105419499280511581660168221962421515275038411095359428297848865676649797586259326628386193361869092655722144181273341746943340619622320348589886305392742044682016168021265883158411368383852369779285349369706470420797269935434520812997984511654117873368748143296567819203218912254183885424390350400809750241163888377380955736858340651152549223773393773624426791264641905804419164916850335344504551269769885965178658614510380227721451784962161255741990694521360572792327177778909753103189320029814295753406521012606219628059051427716945481264315078346745251827859656419972282880072127212024372009831978575194276861756106896233043369697515940496593113629498976970425477259412764083292618860827179079931665910817207627024704924804392217302896664039849027852767330155322231197591447182346466770797236424784170615213239690364581366012038797387055956155038923082025390584259645245883564124244443224352850412070044069301432943412739686229949976600196859916053135858636237543708739206910782099018321313068616517464441947687809305716626606549348404966072258406345074104771152839467436093232512296411961507074147006361556271399546041440561590876625608133265544451270830020270913087580043287577433361807155118552799852957729201497131660557274269546060579218052265566368572040106765659051373808357389756610843186089580631569277610760654618224244532520142426470504721374051399101282409659123192705892755248759693087215523711920880401261436771496409663898811784138723997108552921718467422345637261546706943344675531948599469275360000659898749199989369391525356401330267133888632322687175834666779309216737169192004868437200846575230202973971418781311859503152338071789359203624628056232972875186850934730662550366346006905567601708826604500970944397517428894780304414041690506519995614095772125400420666052990187557818599981834454269165606627731079605164577974043762378957155143960464569553221635221343979210720394388374790881538854962279981367332392790573993647059684352092449788003844216742802789635707410186962275783422747135374455470311143281666331794931756188347574182187180812419709598463669386701213224071922505277439213083719031198997813346379972710492016093627393353509377267577458760725885066466222718011917989591080613185245184431075520382264549629017296755950317065992954507559548270689988978412826762294346421979537792036014882445501133562342700318259496295046021048687242332983548019998486251639305688343776508252345742108989674469141348275577220579948261689843000807371342696398736263080092501175720139593724878833290116123496288977046908656396991580232645573220309003986404949308844924349055398840078885815335104889508480444987261535076372327544970376599584180802708010675108315401684513624834013689625491792465148770333054690204607894222145272013339297303812870749575678943398142737111418130700502834645461200034123335629113189074630801663163832483714137237183973453843463897395581484371847734530658089560597873555903485420795458460361086435266726041352001854091665298527336709468695514678103612247901102739268751623156943416269970399861410896630361761760216778397363609108794227651118138111723081331486305276291370136309450913956317625066918023199778852387556642375199861926933567583507408839223606970466275986773699212602276095994076788939706939983198128255854030333482078102557745145489784268741294638833405377625242961908920873678943739375127692543748886034166874401966091911068471919611105604196550369089768664727481410287090773065524148652084606604170054874233306540398189847939351633802626660673996603034384392980280744505742843998262826891650278135384681129482483331235290225093303075930193518282180440411648162394146728041181427737384700624878274355884810682066297962371773843348950252079775242184306503868379292211486648380427539802493439327401485830988722826937772910908209183554807547779563412376088310536202768287751931535621271836451140834462051534334794648743468412641412568950976402693874357496133260745226030723033216979175431101632441692425122484329846214876314714900904286594693249165103390342109046086843348539728635280188102074642594979205208939191403788442282120302604516114998855682559101831238936424101973907285179916538155574575774951722345859819594061577285797582675064337147838175913516028521931204864470371923706334953556533862153237067756385877826670129763836375521937145989971784909436613433457934211710202499998118261793238371632904399768742194839853576079785155273893293398343173411151732410762981995369651743910682438893560873519725923718781775936843612013700592712947181741985058283059644971676478531938581416178643694967344384234137236929485541695981904096484904814829026753356663804812474996508125549811880441962230957172690143085819884869170251462173275588119572595253790622442718216357693396212383816998031884012422691626465710201492648314698927719633479204147534964718005279587817012548232177598378805513180172258990867791328517913461446569110077752294215826028660203808600880740551274985851806452325967770447985365252811340818675520429409864832436706743233950165635170744789391247106508794111381419848624634939359212026694491240359352082048986719551064156035935023686904646016046424172647724514643697102626398178215704354321222829382576539692284052310051375319086784622373749388126540319253032151941876838173063809873074367294313465248888178604257423765428578632789623090785646946385854733888212847317545493203138266005263949601273633837205180293718282431964638369285260577480057427198866019781738145821670011078599443377736188660985969032251994561977379018196063290054302523244961472304743551052818318320744857277959408523657125792633019897338051543184614006728745990065177124288255548587639874201535753657223487215442010237506514183719550726431177674758875379279248100248165803970771238349692085781410657197521160255256717601481254399064955450186386904493327919075532723551236872422374591921873954984522665751602477607705474237692669743055441841310705134189157142447872176416121269318456852081214533395678945928621649487914169983467055275046610592924792788741212997104063746376430689616695438682323253383300483170703566744621181197281897651579792734590478097339055224622407987112211182587990852748269873997033459827425050592692069668363831855179429184826515217107135985887094753315956422004498419408582651383059148430496923682260777500691107353066577691272384118756375124192345191655227286418337964190256103885162614141413163227142736691269679184008189349117396623851304364807447298728516975232814596751787586363078051292028921478424844097779590662563310444912423247442772135286264710875065052091790171320294816541655198026928640119377632026923791227624913374491340187417041726248288805865865239388102521629540426771894534608699607801586790215399877261484342995963591198650425000064260708240680796724216160877900281685930753619103525502029782433091884741088145561450506541034869658464070053533546947502720775155620034537864636456876448945017289145024701775207519763546490544715303418538692679081886215630543518763514036559502740363417227886197781509820555638420433001290308839662055037431536910218092261866762362679549967714509677032601407471062594206329589845387128922534788208741619341580542384985098562809382747575188924476457653707098723068307418117771159580986342268137542079134190629298524856823863414812544156786482700474929530482593616243130353531892837290719268967326960420896619605170918946131636839110528194575057499152759012544655271867137848785713150529152733530877431788694599568503702365415694487640647216414271541046276176852289208199323503867409961762134178821158350202397368656943951864695655625214521866519572968000214835325197505472023020193937103385069915493412943948088658795454022377773435086537843665682464211557076827590588173947271922908352701145038002316815545425890136416929356883723711942986373252925917872291643400691396994537574618651947513787575716609039926620062176749882257656970091913599019529833716629277057365252311788828969992114111133612429372063647643267420960204047863609597203847076576645521591245203775849149547296990562586087624129379774844545618226071764977129439456001535867255317118575137748887745660131408549307821518555873320157783739936226103323889082671676743682400536099800877597231380099083985514815228519264100472605674533357412738825376032955037311796880543279664700167421696523616986555311582849106150900115478510709292098744940678817115208813226820776895775220754111751999683926534340194809388799736154947240603427133843872414058595279040011810395287120576942144638091794032397047022954753639566221846957539264070846801488390400095105134947058157154626852397980347576106792383634302595570443579415403009765959250726149549723027221522661158422062181296338106359007756879367166297570562668055995740174749684680916446190025705336089351102793068760298195854711897036748588877152984399980957110774605206659024014315079850110613430078846962330435258597226158698672314997332233864545423838339605040042870103810866786411509566289744668455727426772005317885608374966963087456560528276439299322874588767591515180417882543474789279777021202331458704629681005246032177612425825220663886068514043697259919109181629616190526158193719297541104998472466143124554710521725233497393334436340515259271556297521332782094446391827799994296684436542987926195390858165851773428396657901141622315095389789250321990452693397024211867569806342393936526470496723210910526348046747994943147368745228890512946488164636359880003715225177574294863943642641344592673797765882721258976708496951432767530928746250065434867992879676449099835363945099371791058892824519772376217566063226363601969244119950089538235749687803539752822721450073679834160861738114464806154453731917427022488446414023695276690083326870177683320769317372803111637498403570754366504488312984342084765086120243412645596614411563803565258245846731451814800673616359407956167365400652491476785554362410917932084116190438864160960760132633755333854653258377042430287935498447169698353684838884632850517209976560972042708235494535709611634807104125735217737358960600590252533068383191593168398574955159897448811527977149261513115668633574730402310429715205836605316741369330399484871886159091383634114480270039467076234274982184733454631466400014236411498440289957192190425362938567080423025658928686446994970436287354474606436896759454933250696160773530511325936764233059043450355241744780408914643742721515831618359315193473572651516610629340469990143562930418089365056722998617817896357901919730256576951780851346429255254320302493665392775957258169044478554333281016187254671321071913041541528957551560289588807227133300466581398103068254802378001587433756957148862493845008754674142806925186991362395582683714037385005131163537258647418452023338231108971187989149112862387487352039997202995027498977282622399255999212295786354215188038041346783988131001106998329205913255999440595754571440268900883216340233220483413748548801986072453995334685024167990050865506802706030700834992862580807298247661440836694066044467157643360023692009791707094416918778176660209811182334454713494041964252207912720508144170756897813017628556042028144675123359136305855990108943065988404394835650079589430525638201156412119874979126272931634372823635387082622275607669317610388819621398916168488308123598525403305154776136894570708816578126848487826198344407264528792790148352902926442985268225576636660065150818159730712638722221512546621587995829105489123911896254623848576653963585412279278875243632037710720423150485302931825480982216992840977483060397304462588491750678160944920151094936004936417711445327029996945134741017950596879631533804277387425362732720809841385994038430993823603912137793084780563017659179678603322843118548373279527303873175623014083528953156430319947407329518554329532952825732318346316241013909990630418504954902302134114150506965051699942947109894689347188835990000241690785433157336623679491858563760621686973070490137867051461452166479788796915908876414767627675005082720406184425083910867130068428034500288233854985796876218382402020722759187458810363320080719703921014560210714827754309885738331720465260468869987341753661241585261319091699372443987615389394989169858712535189084700186643317734096610388977852796718477682152308198814518691165502016343708881293345159657492614827142204768719594980480174878061801646035446553101068412556782766443266815739444491003666526432440164325840590986384021240510932079214103465942121247579767424783082899019291446956269940563614418554844851316061510710371518091623996085427113651686975926120856193105667911409766840614646524461354405308911497675942276009995113704641209389909286297151021740499118904528211222122044946511925665223855144368271640106255792380200233646311367602352321577996748685754095024545634373785051525865475624728590498487756624108578520991953540911069669198008604335465173064720488794369054257848282920891834585160895917131367140766048699672968705610848898111811547758879516504525928019430071388405317889695603904959281442416140097633441423711177006437756893542776235477983749440697269652319312546780488383719843011401828454643628766858258866927327330465171600471435761231873550872041598035877187888182910492783799512174622956265938786261268323670508148402687773907681185292725753447584312344765101517221845591121307120051982918552963419400297105757011389223544884365002974616646763280638905520903252961490692480841172277487006883360151079439053763197293167442017131271437278785873477018097565658015615797686699885680444897582293193639115471923530617077488916200683712685081209681006920733045293579661579825218365438024563312286254209408245353346535557382215052596953319354016660174384123262370281672949911251410288588811464883610907719362590224415499297523073868635959668477744059870087578485798168192774389189738649135242317141699509554603966228747690875932810757279627997058611622896965113731605549812446774191296775142742376646807685609661556392096298366651787842391702698097560181605898462909294852454328687572656823116232309364964547177067779509540119572668732489887615237447122340097757407131658927860729817587148761948496203323054018595678508988830863575408753154493911955506146784446597407075978247854290295364218440358825627875847897567010369948098445361529084712128847880158294789682707606950407166531100383598968744460104460056665593568933808347467858343387575825187985719360166382844589024665607577641731176451704624730849363938595562199789954565428637340473989050171810700085550806685866417115690328395494713471704890399225940440647984298413193579681604797264286809597310868924463966825463211125346833934568147351691324716310842963372664787968919688818072631233217818680261895052815353701498576443325790034897215985586801772720978561942791413784203294693577048520257461449619880509244412737587297678381444941563606417092746893827248726647823645951984778536239509512944908770754212668573002305914128011472103250107476445376350352896457630209817042643234715208582246748723158490126821831359205257287838847977262943239729257782881464610198369284423401345809781198726157468756069063743124000330056340360237739523842638007223882002270280852348976562874891748995737986709106857077489109223929748896039022284510982554788748758604871974373033859335066685777911644461717640022755568252241940833322418188737957920148337870302345271585891153908348043811497999589056919940489135150467855824813479109966095134436538528803193693942877174508986010512639802069499843325390024468625613818695070731994257296328178189496842465814628902464459074462821558578201086634071818092235915901060092777292664013648663603551094207148977811044646463337062499570177718240210565649607033335784172946429336855388532576755029547062712899645649446562986630322480804758335184713312793488304566387197767913393486551812238938676244330823067247803264665912039732192548210458949665320712069672497264563489628527217818634862258057899586322967347589576708316056813957184503525394274629482545968304430611959042486683325191760852159759992401231178509571026457634101249895725692496260964369174356607092924954367245299232782829242130231721587060371943671305961726262440710759827619392617544863611613099841585512007510035485701419939226225564945066696192099775636035792309153540141545106666942338041287154374903015810084706328441964969822445886594160594191176586367375932522159932714780638660331231163942833170963000815450850775107498342929343668459276586260701059868733023330230395598998024515699711744864617025248340261939019778267051679215113072529781701288794929345871007378384876583349438457259840885030949903797643571633004164213799203242389815814531132358237592834112239626317907544493655940722398728528743446891397812483542737986219689419912819660721586906848360896917785700702112797004949155785394052820505615920023328923728878259767921510799417952128929068536340198115192859936217453410600929576727380773226503261092320787239021800295749678093574187683282122403948219165031364381033088578948071765698298620910546671053033732610581654605937250931970918923153723401920548722815248550003225928421388164075335463513395323446187073962594629635663421135937348299999487424772788913635453567207544996905559865459832637879901318904171780511721285695916394907567251544728080387711906703568324963871822437274871736224081677005816036549960661285254800366347805700277189181314888404600264516449054383604728725097290648266489655821525718875018725476055093115761234829569579683074971165498919774647384205529699115900824441269076461166943749814727591220839377861707724701774090385963698070353270609552462847974394437098345743788202588403617117942101297684691914740251960171212606217287922204444806769009181614869624263128018725297799584202332818160153844445733855481440038853546798503939288715435363020505294022755389714871725381370392446635717439373972752712558408297356167851495421855231923032647677473720638498045619317109157355098437791155915526272822758739067564368842927507280538203453212164886998891879794516701328564635637670039398908108702581476849261608715698028671269045519473149035911510047729153757216438843724609640941322153690113075072115974897656108111980309548403484015962514191755528966509820706783183111144594910894232680797442809925503611436946849095421635151491842185294194348272760601553255105695388384641938224246864921337546825809324874811653287189188963090305462306501713175394682032079691881606639590931868989184406942626846275481419141781728215151904594049984192940893638660039959250008601492965483340396201594395664820666526001808985857923584324783263324042553877712379050986448382718111349062736744681113716817862111562452469042465656854629371708641320554732704318448866769557921253742432401875163151119336379305023936711114122672856158843243399217224881686309636640457045376461945581615449657183174508250250690665838721480674043232473097685832392919556628011792015840256809198974139992654411943218268793744419506037886821802457599864877405528495719062900255319996271468383752771212476209865926109510125111608242923676005051738659045036446634159183794898967946933033941970890710873487952332315804472688162198577373923078076449625422070690181404617336503756224742794150196400694198220100476759812360903836403536098889466915708556501377547453493909182108757016058060637376293636211072689640257790831468080741419751294812429009393893869723008765355876877581293318870545886336209889110586884777051571643858877372485264739746913680054621413742105294504451808377531517150296559160709844509523634030937262723902785960942240884859162013965867352680174143009692750230706663054218564112562980815547806161112072257357144185837622041922531338195662607886111815827787033425429999221449632183693901073171990656385087452609184477056342739424673879974831992076712128456880102000401096786743730178712328151114224142354336894167631348322557843527120744564364118193594771860160416842731127888974182394512188808989716375181210019859065624746235604456229887574061367398080022519371562646351945558511255946359711322741174770487020361046150287144216928470970484664710535591005829114830239775786248050139570169583715596689430726035104486743943696471768454288444040900739638967205223373067402676991379700694702186603506496071173522599341519501869211290787493556014608820794947122985705535402303345481607007056280471424219064168524365252139398422009808637647980769746064383006907056370609889073252539570663416612980896147408610291353986546916544176171506240090693281365258992775874785062580562107704962628303876810057928814792364472079635338636876945979330248739539848803117783068426530422487514843728311876062557381575027504960806699080379114518616425262869211053413280287995603559174714696581514304470457471522550628492166516037868521696754273325359350439716827385850752842291246390407586110718461637791540660562111402192414372174678995588097254298474433750598119076289028935213896005980398745158910554204982117112421922720774727253526122668466080976157619102623694327477117613783388567235166894881314565076704639619649188032856922592758392916602718102090671017480576418149395560482420369104659587114786987148989478870996995752348173023931425750891023006769550075341281301443847109956549354561502428559195916664064174953363772285387491816900395822606226612392288870622650902912020554443670774267982413098585097360617265756068748530706881535763902658093651608383436611816784639483609593259328761346563233238101751439323613746876936605882815010715194516827709720999801161687311354139674947740289399244371045722445922854521194421629430340906304563573558708880668236796503224905098639263096307597324769953061773060777294760307689849161206002930249608836231466497693181807894865470625055963428063844920981485516910115469114258501682068447891041275441852254850396056479133471689347279482126176560857538265805164890770427662088754696908674841735405437403785862002188483799098794739512605405997007768251904024452184880343781002551594236392842595579851680562179222616362034471281063559766915335549334615253774256341586272998574865092180347765907348780753150361041899570531110290790455545577462021393202708522100076736161552703493279612119774166773083425035302535223167678860917195385925457469455439187378926654616110606658990237179634805776308090344870245509013682786080714567188326197898964661860808880467393596990726570037236191523242645417629809320217608038923874145981042375879172332348428695158009109640467346521995583024084716888283154851789471868957907171413825586934503562070378150770450135720282526963953057748391051826668419026521015914620073723280082714462708288185938857949070560683930782598675339642064887878666247519204105927475628193244218508863864689494363600002833844948752682406973607134639346796260494870698316952634690226376105271619767442981492318728077558458531217400108401035129077106975614051734689422897399405821878785057276727025760156509235148026633523613162439644244073418290191015950482239315607549344640015494134254212664846063445248828209280297762772968100516240928173465900670117598888978288882860541461668801974486770759424693751734156134202488780963822060296629649939416228930857662052137206430521987211859455680759119238994296044327117947628341391351634436709404836109281347202971379200118318015675912877574257578878586782065534620061352301025247978209508524674374467330507471987662477645732121352417285664000273373758433802027661701468493967157372991704661212513541694482057806199301262510183092024829880611987494918832689622964815468196161448903989934523419944724807738059956067156659630050857296496953607957724957770333312677175189568446692358275473363843166915258316269748431693170290727982982829387441467046337282339530405203314202696348884891632079922379067824677397962942218799289628026860750602141861340365150596872577175737829476030384425370798767179734732832381486713619088019458015070669174347723674036456063914045443532711459066012137605130879615367790316284821853428621580337969027695613404395116157470584437445332039240890137885329747065241138588459098412329988629995476497836287522157641614790355338809701650176595653095309416737078371589879850697946548286951335550956093801810426104710524865676549039060732246477185973740547169987460809817991450698820535308400901234354854028129220059860444676287991074343697461414833428301960437301976724849326730737263679539978469905106507468376981327904737043946397876426902919273273363710601020508669331696271049432772474368859271563600353550582193508803151190059599365288928647801559425184998133523229753896745201304911257849155267952839342660951141629144819984491777990815112194693847070748374227731892552377576935692639135219309892616271407849257374414293982647718648203757938084228413068501461159320247658348389096465974691063409980276427628990312356879606751291160425104350620407398834658147645391257920914278477697924685450018441369998061470958744031766421387290472689704234307548437896600050410411055383326990628480469481737749279856196573865363635241272755918697015620777080556809428710732729252560385614783120216399403652790119142093313823079324606793003781532805631542640132456602632210837610002860483179190546816551686584360187089981530405267820183693451069615523530438233889013661922940837584837824541421515323840464796822955576727387258369999342090696076265046136059987365552576195019739745940133275204556101466809959640396044891038287056852407278714420912589351773523216631100123845838314406877169843248796921734587761565781273806257268147350592243907478161097881284246080001368598666611363143537948041352055774045057663377860130909806916798559719937963354823466507262089476889680042014383480043092621609535635458353970642586269993632518725618517757752350194122280123293115230284535698753652871621842051136733329727545775959819510033345884168803607704590718493469563015573462955613244670903537355180833667887396265005877732795727872062556438821839463232178287417399906055140939556374216305114732272988701637503029961443740009346115059427112472264848909920295989205282527094088889050641738633792062084683436034080123439548938483251097271532181251656160620974414084196134445361714586145787600156296456708456310189363957113714701177696731263127624822441685600699836479074360057589139760594496235174084100885544186215169197345004404801214682325814480383531443727960268134159436675556154231607527518486752937924161854831862527441782775788797136374967770004566130471621897570620697493565174321243480175770805053544238799976015750979912688543073433561773584162278385705940316862115416751856341824355618673342332961938759111761705967609716992040800101419606024678472725636418894562461375637787071117115754564981562216159054918144590976398762008742917201191955209364918716940454403646888611199599224161686273457810004138769493402797597518573849437291486110660461631720897157654359623992943192515043608613391984686438545524315440733738738859002347432588668982929669694798676659042585491408008620004363303428172919997000396522789515500390077305284480164912712960402061530206446696249630468245213752508750581862625486038195463808247620445033520672539994725634070927558028016179312242702150636223498201193828687510977550849151766421524156375468606870087575018193447819099877358633884033418500655021586925968990846484081794697204561822986240012204516399381912989372340505977656809586938458242620830941231535257877522460032470042394234638479874230792814225011692062759694749300578718240680323205217840277547067602311017321767557650675604260069285820537488707574641585321903700016348321886632246642284597073560837798020145663007084322453289105870254344077860776767437741591857746723590223396672758161411197867110785848324268042604441253234553561115938740721096011276666861255240375190459789995015774805340394053689569282065555826164576667630293108016732633944484522206592730769546772768101476322084538784285145526160343037332823079928643800676967272652483205455024005637452557717420635023484806089144124334403429688162839118334203825658787044490242358978193004056002808433122293297210797067846319553249692064674119257165083196836162080791326962170219907323517918395350751691666384262586143777456044553526332489370623658225163978617074884594719739761760455245225486311630702422052762447639825536837518012188178619516356068363905947042370461868086371739618414311541865923941605327681935402253838025886928333206861978131143410099281242150180974500354608338997689942254525573094640838640354448623008418285247054912347573729106254822697634750048895211954763055264345451969026145074198485903803243435723626773043803988479405810677800699169410083074927700216410528883950490575644656952016647930656247609956393960508102794711318163154332284411790407828087730527155622652853551392683760578115127745653528946001719908070323408421616294788076480807276719829623196978977699606302775772375268010084226769696688336833784946910653317174271536410274800161799063028645792595380215006828213590985096307269966628550270057404029574826750286592575197149278466741881736677569362059670835024520942955419814164637409622037393090586537617434943742893849234675969376666917210030055405425684133604126262430952548543836075544988742683701098600883651821404069613389004864098517801416264360611576395191207261630100872636124846495269665963818132427728586401801406101367782685800944889554745094942014860431766400469940170698620833920500174202092947685865239799295020133724743198501607723224660470289508117879269462621543075804325385792095614617183721447378800225649023571474691094693432382002720306125083330682420186805140679851564801424286564576176757725763335627279960946079424691710954863535521262795239832625211001342590211257803959018385000493700107230350749299631327942970328090299460085598389692705773186904966288053000531702276099139883274963641845707839567946569232358498711916386975608043721796541547776587347237466210124268635598064510323178376675232138692926579016933499726034288134657088548500646682071897930251167956467314160653011249414314478723197523441634606863473785946428542855174973509904440416514738740016953256422340374135626623066915054903984412192782825946558918157352342914772604799017673001841937611898450127726884380268262571671942029528409597905353830945326035580303231845518666592591887328991865323008611037229528159858576267893492956714486829522328021410709591474881935911527221886497733774808881331477487560669686414453248475191220378274032749812014709702065629655947934285621555038968862794926069935800812389037623317687861384955966471099550426942490576600258989393008464307062496219430826206259568021973578146706767682682200032574123063771675349519060266100529438523183800789237585352792316768784319688069425139342698270526264869539314467971139379506809481759739587249648739824472473252461601077547473007534067541264602287853015169222483256150788773060095952690538699710579723608253682687498066021210709126822991106489563212045130871390722985615266004671039949842998124254996765725300883233801433632820232199917444278511394189240549187383515565066847852133158990729314314137027528280432552058258576548539851568123516601392276270518068382882814589837776599530054770132696953092850034105788725929376008701560903406087730320559532429631047265717573583238916641707552599986823910350714586405980455408535131563819561191698110483984543924756176849870052033999947148845020507584717379269083373789489429068582826656412207956896629468403798645472342002944722174115155399540250607623286733762974583703614062464573104594162594689858110303081287729602872411832050415899257343376621079236061345587182533194407436373256597082803811309171235733452159234295259481413392134152258398186286423536842586111485093954956344194408404487996868346496788290120260386609864426278655776025396517858981846649238386119993221495487342264846037639149193923338162721748423007089947675958705337086008723415438474825232014702846244014955690412365320525844474087212915191485698738424501996937081101966459075284108284633000530604937412280361404682595668256376012241505817399898258073126277964417594633628119060156590271523998738421181613027823503916829840960823374862937759575852398156550590734799414935406338228576731024999656739551103090590302913407943415738898343761068980689170197784560283529044886776249908421146874267021651049961144870274002501477601733722142276631971761728795891963732006435127264001450530787015976574993478825041161192873216789804709885683764925871753642177929932383550605217474478166347952145560852428354972416194631772533284815009050302908131278307594975514788748880098621184631050393196424708378975660927814762661199347889483056207407033113631175697029065167287043289778642330693649163569661851256717546375815028440815129354187857165761918173188665064447126292067331467978457082180179063498358326627193397608748154797181446316154709896862133215654184692039706221163346539274190799733116370688948600340800470134641461950904019159689417338603163540018104794702470611324837804907317044638917518317968445569418994424070547430717138684201964207851299255123263376502138100843497723614239104709180415544548176441882492799958695158327790215757761526031931157341173434498398831423438241841444860419502546136944402610186768040193357604535162399701107155272383717148053329240416649505931217572957062904646160823267690470407797993251562826203241436492859383459785189964861130024595394290368285187797160084735576300246590256014322704656924851744734746144698580312613422782726501044253154088664848643578742756247954249848934315027770627453026029375601109661285099785858048169753308673392638945891915591408417809807611316703759376099521079907800446183579912845613485141726962125135203754341862378422633386276790307447983095385333642223546493167421406998902024931083025781216111457114300586456100967458679111857649135795066723296308131272146016573988561900458943995619633127550447256705884997858122031290335923356805774666394744262186138001993636266046314294993048796399385404455280560902190817994299961204983680155078193124256800256673684096725945576942374802416872423924535219962428787929212787198758512810218396330325369256098908891204513199268330125882769476324442622242463690023743797992974598797153911085466578945735439045481755505960524219673508162548807934601788493393306588903325067067987636833376286025325969855080780171376524308428118937495916374669280904256841384293566576924612141763169414306481835487488850830950218320511996093620610658421886498726601706693738469067897893214480622899889715302225462621694473377616418825086122159113374443225620640257472268346610810667063371228613211338645028275960833988481662800587912166379580017979597494079051497667535034034610449688207377149338910946853791814519933011180089466621457478690722180805250550028178655447248420679239315055632982820565173996976448167321855123622966576940736756590399696866603637868297184672202448723545302055660769086747288539700424751539388958846640104795062998491851564489616553171330601044584519410262613824336173512217441306299919004205295695992457291151622996753807229315702379604749584264945165754033786558947009098228695161891157451221152997783378338564334481281134351478332122506534946732722442454793688909739129779983271311235815604861564110699637797137667239130527949563193113597759629528461580662205110743201875767604059793264418241514730131437913023914386111301995588612776014124180298348559033917214187810810952008192409913256276606921251350573800510427814915732224576407306047929741046816658308627050683387819533116843103160390458927906894644747567217658087614965522575538587699860703785486414260435243144322206995364390496599012320156756566494995001100459726030001421023298253870225883708219656839872551164737246313327971054273963006754109005317850814604429011863859354789353942112538558108386250528186387435544843614216043137680061253505313420333095789412678151708165270206437286210920238051892161170037291663026630136684692301056712235398319173940789078684503211197476783877874978849013880238155640961130545175645136397275091061562782470372221517307073551824270626914999396933073126361320917097924999124040223969505149352009948881870491806759763713593748078491498081776947051464584725733282012653093263419407085741182293479979974823207662987031979176381455246057334127983188557863564073220094918014803282931183708875093967351976682762763781192547559522076029807256199169534972461440615525133664556223303690048592720059564269939409454869892697721898368519315379709947464083822374324002200101911047241552681341865870449659543600656642665273490257012500028053151893850049019276163203211515720493794259737863874290478058708967749101406410186149534548918120256490330409123448351176569945174047897058068073928810219707538747403469183985783967274301481987432644459373668402149692627510109139612423655193270109542068093916282552978342696234639266350477832899055841807292328883164490939879011005122090103057977746425008320765414703470454823061111540611223589761674242424706678734282327148597436359024472344030597609999956648119694443646576743101766276148090096793907710391338317433551466334570542710871360678422354228928342595439404230101711807550242244802789838917895135171179612095063452543206464210000260137034886550353515083107980459983648077078543939283331444406803292903421078920442680511497469019388988399472255704485399809718008676080687582316478833594467011612666162751332274736035612790450175413767390947412281599193992183542021179804544284059964922813867026411599610921053780478882895291127944265159970748529314075657025409010719087590117719354380667862922514968647253468345015516934267793822936516178200155809657049604941689282680942179735714688354015984880111542653459336676373013034349288953481377431758438986157410351244601144976228764765797409240842805077593519842020305638288775980045541546960388376087077703516636696425963072510585072901506010407265212356140246585813988785774285388552316659546706917221877883337900025309878523570506360114805640996899910667561739640621364351779243108942472619635163552420495590526794189357555894407598836606803436224926830332206326336137143391422329070823869780357618111055965244065591511912995493588175976454861684341253116420224100679116798054946380737840441767212990931171018077235614443133347144643373907770950592927652156674742273516281934328275969436643284638812462495228088287041573835273771114813291678253158260783511532759864459833954869989441377286309404831790894397842762911127998589106133102693459177205390142615833344159422795293705492118542401485981852392601319305381542116068990880967487619398460303569331955818946460500109511328372236803981397682421141734402903865628477688030132263639807437810318834259235217037636546518030687918092865976719994196276475342794102226006154680812888324988513563978468085629022611848345360394394220064280698327411303087876763702617642426155705189961342329961092723100082880808714996588942089306057154903989745296471220296130554898892297965823548166895912386082475606225139667208612253176879562070805303821919287180706085381485728376579379563949815681283816372376306027648666581278315631252802407277139720810347909711822577191230769739351769966321486030038723207337711489948422882133001442146198603723605779934200081984180061033233884918580229086116334168844556743880239289379469316434098111014383239286625301534705677603709667454486629036111120578063916583707219210327199438245056381337233014879173141470544165192952503278736951181751519998025567212135533754975510310043647052989095620239590305283312493664457193164993985535232136149532462267694622766207930599242830856070555011486936105318591829267537429509847767171940927472304016642126382380134969399288969043860470644542265123201068060830839054477784628783296298601452473735691660854829313256920832068987234548974411795854173874938026353465874014414249554263762707544854136579824961510769173394630706109348305106631761434034917067023730238886915037999558403068852297963481694111308212728390073078102708474182669658687559376285222934498996097114514463231631502260975411521513739085799039755845453018454143780027405167892137651037165355046333801381931400021093483601782727978047153496383105465440893175677851124892337957270413090436404239069636639205928232284065113060076037888349344480110758832579943678065410787932505200476511534313158398462969915321581346696190995335297460189141172748377979017730493824994541304859574646393834586496956512782864203332860579713014033682885165766263665369983275426042672643349055535064194000633499108430098940929495542543243018651285228003627332942983036341804424106918834133100555049290816758780739607599669235800986803396431952738197993096593862088006178847012462914615125781761488921377363629249231359598832012623921436094134946490121706462061710742229203327331606221257516002037190528404658003837888744283669897263959558978449295071005219264545452518844522576560036265865395750875879863913438204768226342562507881641747699174961670952260877959055263401324817813419785713150295438752196094924607682514096110160555552036501493807136367156957641671505867705033139010957673017806535866098671229188959461065514473035028474496745337065901130452748540074960322324561346121753058155436336387872745234411951567902475824600871575053074242618708357203286854876700718259770909342087496356560161977544837240128923281453632228073327591629930523834238632732731256287624502094939051981822858477871554238627064585323276679256795930937110645316756045298746945655269399231518733414092322928189808143916592041581321611468295653861316776954941368057210893947973683461378004746773159485819328154801710393784511486369149039463521281292442010874848303544545776477946959618767128395584928680433276447762058058623441680332748515076728243815132581360669771245913654745139528215961897571435279322597905625484042156721636810465032267562926853916705210306712713575884626991537210333369211358617168155634860791518540750392411715745004941631049661745614358474596911528588051953436532634726193840040194629432851776750748703962161668350340554893621690496836245275228769369175418751692502586849524795377793102305235435816041008785932207190127536547426482206401359055072406070723456336736085749057816469655592794744662228125025268467100344447227658448988925216328037403916728904784440479543237233681375856208649540875612601730600891328116991261654630227752111377144162311354144266799063935668837385568792551588122831241211585971826235899207233486262690289668456707478281241879938140979425624995405168292732904451627507964935212834154231336936195862219233752509196419958972581752951613623155748159458639182445668089736472107754350084800764365819453567748795818654795478445270071963265370741814713814705632964561866078592887731817009187163160664442260272108655839066725263593507790680426058439817230655425568942165758586616791698233511906052843124759004070907859700264046111079672172667432688090675680140219095603179772744264845517316031613247386814838493611517834266537055004135507404946143366553615245897126377532521264615336152730271371458681949398071854239896583152135638013297817281265450889902583204967313467979560128312724493441096450739669751568951996022495107828287288137316428426508158062548579282565866145553782080278456570866702604352487883535959419095912947322288730235297355183578098492769158088805032776684700679338396677300350998146251251998072090429211360965000901883492587558523805148600287415795528910049506422489143476212015193915110826206606466347216152165800353721866587262568198265253605157914999641620960993307270027355881823658038538547658110155245284776615951234894362710851726040600064240827968592794805457483797746340907459562695737464521271205297938948069449262669948123064968664518366530224642946463008373012838101581917555824723814896620704870618767794938360317141344194571523709285945520228114253449054350190116115188408641927335740461308033074338491408365992070252012446720979234753160387529007964848263876188996359338986184234498479567619739397497373437096429671779989144521576376830459858166030075382717719121230411050199321231981932627433893967062302333535365712445990835816061503910426591332191638956185837220559609052310911598024773181337674506475965011756892366923657252043055757414498577866583769007806274249611592191513440871328340080777786162110841449119534657319980838548471446006302902564205688841764733330109347013855428815304142519726261291889341880986345406782028581841750973527990898839215667229008921686167047081031054537978772645211112097965969025607452351896374634475718370730063923732466433750820125125856861619319589525529647228091956179834543252426928387407559042664097930421139531931724877227517831968379999660946467089528016219934622569823975488915313225124859402491698414462967173378646728367362830238344262100251670166353670423779373841862134829255930591079488579927189104599215008657811947216638131077604427805700576620199414727455207776614114035177340029195325566549560297143278033045626646517232787506958120102567665454077308822262195138636810637991851386765597324279575488147440261141386848085613654972080425583234643223102459755282986081365558895948476478195507326621448496809325753465460046943203277035128773722737183863024748805875050456871445967981755352675657301854528735385240976477155086272040310252016503423733791918578222173944433870606651988106598359316842125457420765946005265866226151329169872933648863019936284207412691147595957294641313390422263207494595547264513395486762354189545464816501809621510337237497580379555105210496149473398456389020091854080865152602049771139092054574303879858233890509436415078920691609312390078399486258974221855565147378090456914229362045177000653583806877491656369190361351340343984603412456454521318887125841037458694125088109603217451621750105391576048999580770471554778811253392336726636081685006323794268111939341030358313421457897682092408917386097183129115679961223939958297407466070625743602307898142006631239988144642999716158929127793810813231866035347440361256153065825997733576883528187469195145814375096644031526418749391322121399108815904445356981080001223789068207293595289318860767782932908623082145259105309395452817294892875947443042501323349825844707762083733175670132260463397073669984543333036957265576344110696278375935386810033068918005363858581481338582068056027806569262542072779844725705132384850986355545696668622599506367581020797503316915586829504192946913305789689602894898164751920911933948019273596659052883893224147370522740619379257662719475479606999825933580054819805270733341162375268127478002048172636329623345991804095184342115380288107341674415619801216628596727892428092160076721818251475566029283654044948146268005666278989322458449345023578210466251350398801394028821541880778547594926092422557823779137972695636049438572164309615468652905524075240302909921489043744476821268341770414196045697185049446472115601251325409901680763779722633571564746627718498329949409529473894393567288289586040066003475151619283957402446633592291350630329221041454156419535113617270456569456715425752801431972279220435195869216413343158450162035727648601554908415326637460716736211384367473817958139087949978550562050629292864854383438423797990546922435195487142810975541256646264061239949101184042723653421424829411916465901340861131405664647799240845123574951081800840314204273677372717554420557048650656367965353640289856756345101666774405228204350250914987423387155015162379647720655609318820612519380102191752788547809046976081842706903149159303747673664464529277666230621851322649390581160827987412137992965255435040149101413706947153377597636695309395800913163441355510074037302299545758104099982069351623309048026129127955474111330627777535732706358461968868267100425957712742195654002515060363859193161855146633487183838675262511755312343502832515458110313636309573554144947605713111148015068284096201520502901936269343920090851316583368008378895764527942285476977028567014022149779402243129142332030804654173554555405513710663769409818853266487938557314695301270486596847585152221713942793054318178381027414453517462875610141139656224028724164975739959223077455700986887270328515146447053876519752813876956040521870448021022096518479292967931817240596570552901352678602013221468978389041739874988260423408878161167901033898294169343203169787237105618249239325629224844777098945770217227937220985041328162894609359475943073075439784167285584836101276450106072214140933925799995531318047189977231759687372438683776434517960847952800828608058640935516082462480842600727905613354290490187175811758175023944783347817837627426512544120924880525778786406268415927543951952535383444182628379254043162498422048282677238209134603035608651920415141778946997768037774832705839590944986962115963602350762779813379865271417851971152832078119366796139729529118141349304647969326835440510083264224628092396102218222344165830068310817177483209012268357758587984981480608257224787573145774611965900615958899196074540419081809712023564785407399138654504385965321781938177625483907682720993847271410077196673540453765937376142335321288151185499437531154096939129808106438721489342841078330605269446477931207616962542987340525965770328766795323797642215843098077034201396517686186860407205713128904148146449694065153823452144146075930537285124751805600708266902983523708052886174347442472488234695718166717675338953127887468644865743327644841472544498739038924745417795555869812021477403106141582559221156571655510237148417955238929014761991252345791823647302922081467039203621450140073510865561519018429744364743765666765142913212083010795644541740418057293702727905154863368108803813869769143018041360820543563697198239660416344225302817556051280213284843808153764997794953421599821171394149563011548865441232316914951942846437359795145475565551152915849659245469392348095185249898047591630469110664630377879176393558331169886576712488642644045583901815479540053090936241062618027012806169009165783654535906347917613326621273059037702726647288861742600798886956411807683383939813120893928911084039484150979942761564352089117998932004318042055337220185700784881701458214911836463541244158115361842460504675024147948853208754071734868830686675986144376224093206329534883335654244376003801414223807902200970600007856748737371456842396240981089686339115800814531217698729455306979291660045682231719652301918995722156828410973289899578513190107553370985300970923963541756987037935108203546668345566918095703229294973960187116605316495214865390631233320618878484125334411614555067587084509309153607431951838933885186270730033824217764201807482321059694058707654208716288881187880090002751216305237365988674208649220896220940710127733066851225581903265892398107365887577127938484047548014595452602939148953351576587471194930842130000239735917875193436291526908405669614387273261913435263350001722960825511599700598529934039122100267318313055618842442211702262295173584468318283104002289754562975257727244948959855998498791462986907861909214026059577215858338788530159158815014515490436265235136673257127055182965317811108960393762036042632717914265528372324819867708311143635427241833592614518993550791758794484026589274027594922793294748438852927375037170429529020579508514802449219166732150417136316139605298597020468428779011791040272398903017659771978235215549060215374327236635361623367818958907223165888343552417567923634393370037920710296794613287759829208572453305259494318032451670823774383686425663626759115184844630667674363440589675959753852056892040802427026764688928627812555387667712744304026536369140084560385286440679826332583502001870945310771192709685702626335769245518987494160524254526746297907354804748954778069440876686615921078919518883819891322201162203400871795564002979542717825079645154943961358046186165804144222336874240393584061532493453871631643338863289837678598040825636754431127281098566101660119377763348502696471568795428139780987298885222414941858777770486105511429636731187642306463221359433870923198651952126720282893254329005757488886242064378903884767298311790136559660945005717316408917313768818755126641217401433528261289037682968830605714641450607936857994221838110006652731587544763610212804922017234791595929792411973137604935598312590142600717999288559340503795346763494000269421838852067472876294080790018196221402448612825251153983450475102317260670581820846024999563006529097897765713258092279548187400687392297267544499229089965430965757558187234407411399297118696804583612889011273738295482600054211623310545806775409312396681765143057470037113129916036296961957373775554149829818959104626857858985374843919153680228637833754916143562938970748020467926475281116022172107098324439070448911195692106306875115116915776761879960774909512246035219642011186310951309059863676301710287110515172767509631254934072924228183222741784884074625585317928654436471059085937267958004961715246967388224730883870500935824675809932111924996790063213430098342410576336020019436650239065048614986581547438396713552115329783863671055671347536446551434115097230530991222091679706609042666177587733207935299983275955905233798922845851526404090862540012777050424760481859738127241439730459240629789172110932512942348784744818612373316139083432340567098736053457653697812760216798807949946161302328559627522302628936454641881984881541307462381245298259965746505228576120511035176896597266004701498678298346248893753759710882127448630868009935200886383741399431009552119819869300821091985871706852933177387491008381354771636134026915475284639646240050774917403948973355318049586932994016625532741311178396121099803866000917231122397731129773311854725234485770381925232026982590786609805011490409326506421499368499200142136874086086997937639107276141751640059387650388379142894290240639784250694642424219883008014500623996385283510438920352033744214701444842813748753488960953002624273663798632227638776785016314585654428757493649032542034320039515561490601432618209110885189324735017817764094340436590067093915211426755884953321949865833802655866724898763181587901719235540671190172336841380816075529577880935606679350834772701624084986453533294136621629289205110120197477440850558810617157213724691084355795715900931173384244081015750265500973183335436991695027802393101000105195407644842068252540586730917625748327587671761417314541439877086844580066471732421198601518603741699397854291376226329973266928695905351360373265208209977558615936101067070120422454745829731269895134716024828454315414353962161860313351971857138932443296916404489649743172923269206996791571480668368416125548303669906337725567095647113255688695284924668515422750185091114047232247790540273957990445426525077610358467168639893443904446430566401937052715119149622188745955262151713943477575669017162219482608633117714188831182051485542399414024987321794616244742568533825660180134448150956114021639374324389810526913697320553336711105652991150217555025087470077658389156934075124286099837639564256143121286841924824054372210119312188140077551647936012627126883590936532375167973617744491997925121978250172207194403381023189224115357881208910173509647263385618634384467709202756856406377952608296938736818234298644466716696604650378115650644642744645552080601701717490131595766549786180448280351737817202023130097402850210079980437579356012968980057846326212337736138819222462450023541353703527836596399811799192086276821932861894673976597682180329312076380776931332154151842655869276008272039368243188468350564507780539537026978512245497766470275903179738695626302301519930152796817794089994531458048206357926155481722267137582798142512912015417307880899116531830876423169576481060022673555872245834566733579555304621819290825325244455996373141727858562357030943228296174735304756226810020489181342514672786426444691919681745990082432070765663420635605420784098315284332681081611280772368572770664232138093741295857878101060430112353997891289395617911412431313911357809009732720901008093126320733509503014803940161151661761931573684478222176913942249797124796563999819113034633209595492631623445040983887052951549951480749721251178579021749385519644721314115109229677005273054520611037570977546998181432190587708103365044558987338471676840645119044426656037528481111495064303581588453669204931422147629455660995052046983532710985859774633731444844338736667763158155719916139863872256703531559901799630698647532735605180694452913396518158515916223152019805828041867051731527462861678020385642662314488109690451813647849406506360359638759975230873019784731830623835090397331510263308586885597103227422694301799383527888065817479240609100392512357775558661521382765789593317445671793237350818058558463336027816410883623758210551853341842806006177873601803465143609561490707042518776888981462553413803246959869797243791722238768730909469546992553674884466828619057459843678017778814422436478683238707876892105529974780893537967186498506236347377115074998749710637105662117660683521370230543003567813684940049279830613938521868640855007105431487224284687928114874045900796399236565209749626670855693394572622541467364476628787521075900740502049810774253132575768613767053641376476540356969299941133548514828395575483661722883557648083021873861720303245706748151945656689057536097136784952022087158866983018295058155247613021472590912225473296975598688279646117861850262406501702648800512435855139366982289875885525705752717705511329526924641983297533447024667379847960262966938587349253031598069037642747395520829836401148743001893856189061555111842682300880745090544185083665331695618200777957797863003183028600184203907009397316239636049535545079102618584052480773905777751617595537639216499254224376371329514373043616381681646470152369374187920021255960444231155193054594912052871585471393784081220444528617570815681036714447077459542450278317020614860709087795024824500423529940571712013305885184384275623328354231987075669913994806373902302607054438171564186446394136848720128418570935411332062485615429272046119793915300618652307623602316736546565747046937750330239769327738868765693592547551570575702971417695587738772923269437730013250996561014395305768442175937853891773122874858337306805756708173175966105579513499800198425977349810240851608620486630668551705894507928398275274838303277893027657724290459831634336875701176871658641622596037025361082904266007963542418222469089548329928744729699685935756618032896951673356234749883299742799152066144638702694353804714445895529988777600439259805876839439035367445362395975444675539295127996855891229450333558267533105813988772560090477526393399211930669215172842011641037015490953938292667977430500800856822619234803858816917804671566695742183586197991616748531190442315456626844548377368700819972958187392814864845415730381773471645276983701116145250668318222926356029848390716270717620806590725367648794465770950739602198785585225190963512179298764550370749452677801483121845779201192452055758633482318856615186278490882173576955897186517238666970766411970985666414259876989456106458357275199969700001543948065224082090813843869459296182894275861542132303405772455186706859731174252619250502860118364271073231870268127607049385255875111949178350597120766943678239942801380868643009668342206652969705698941453555833946028166319185254603950708766616711162229442116362907782689059175196774827019017062741390128305807419133498291179487660600350718586890878287005837837533934796733523115046335851073856884423104475347626568699633876797988875420060541649344469462775248072879550252542194886649082740382137833820469001475686743024231086331556259638828266580775528380499747522106589459999038301526252032832164461735187736259893713141208602298336828546538893082086438733624518134931257934965120929616347714192697354119693600576832539074700735594183867987404471863188309576860595075189035576182783578561204662695118992505565060950804607105498948051298760190276278043653753702160857083123405904327082832187684174899246231954202193957428557562732881496879175184978543659236508433801171314691035546968674967875528499264362714739281983659904992496281705120161354826744792141334632546175513159614064188876120177406384814632124004783969122614159380804607216719343459314344780537202268928015058931715683465423010189201714862766030822001408453214886067667062097503594103219195389749406005559748083886361569447416498096497923897519861205362271101938728690096582367741880982220536560804279248005091282479373991807208912851472873285032082196242248951830718909148991559517989143678493259219364084990412773704766251117342711490564124457658922043436787290088234728845270801242549534795758280941255672151730005857000929546812712656123755641603869078401882934696274608639403349475788675913902914330510337200295209912432434714150282292169295416501487558456629931990168911270584360789813095888921221936938395069925902528764329510235821722994535007611005796684667643160864145762481720141819982151040471354395284310530518201818240688085651269293571861544139088211392281967824073346995208347370541777188392206098148543243404598816108638698679125009293835387419101581110370321540746700542334130604844507233950453548750212230446703783393901091613895094064429130982755919169569926035674111826257193687844201613381650829455152789004553415831328836711470111533430808247566564484224588929627008055517139849744097482891533359036803966364348875067010168459500995138873004069777534338349387261509607663198242636867497821151862315353596981338867575696844392518193513959979536718793784439352347558811817219158686858820006595146126690806302487798317413368132664988970884696019930422185694805098473897010442597449979543452471491725323612927746290367585532945233747620870496385636599945218103035268091745270117871078654009548253190440728685724883775629152017114717214512335291855831392003943650772439627583314593023196893687281160991436581921784974340383756914865957749838730482206513216058569869589960278410180178853629575128265304885318618412698675227178643198455684765929699901249824434133082924789920912234608078348276628440359816683695720602613319638883663847541767605223194536765822444583391977076100271132870191942283410311993514112911925169253080794286104517134435220286245435706353190285286473189074784471335806258350139441162145737590116228358917188147908048145362661312642366970111520959241705973762804533434918176721874552360678130820168860132148537825515937005004163101929635861299825752645054610715987181895532158120427264542527277649459141048289252973701207614980096718946177462543538082348049164719364677146643112151930164730364249728710416072944696245302424645715226814223239864796794394082757122124432831469653885246626847278436376286410292402139988114934187831175796300644473170010198619421164001891739161195496942868985044976634976133294523544322876455538795192209650662274186919495660242234156101078489826322343566139750615189816757793367490793822220871576813692380008285639617882759505800216813695148933915452144088706378269822786103898811942187564164932006410175197850993796954131043682726532559933163463601811394137070969804078802283809481489327194443293294806261047617381589803734490242657689353178659248029917519080346880792436831867526138088539259689131456977322662574097551027509024882869314772847323331079921352447007147647979226882955235113552876966894668315567902907772294624617146493671694036518249321702804625801317127912948774373292485663001286017607805940262391754888495524189694176045200406009020785150419275498073684826036580042778871049436163961620831793176137350936577112335798828657842964780412659850653986423960311724828139912555705597101000046479429003596990556397584355655963339960780648377108654226989824661029255191891725902082385141893719258359283427321215976791771801009196479507292968987049207038647426630132157459313115090092349162143196656256694687150680763580425514836673860177639443041514780452890358099765986454871015206832952172710439691100839134945012904533060205710423126026081255870061841155570411979716592796724608384829639453859616269112675687114043360445347063939325055443126795372526244067412159841358009227243839934235041083920916195993637054383991497445489517078788561257859511097597523477644385371698661638014286803523441214700256382663415290991620290784038054792290984248605213573390695213969037657447889472611959316120385084413636199142781445000778490398378766257377290683174075160076109212993738093109948935282133414900369882631842876176921677520707191450105939511208736455366030111787406524059506628771387222126828037879711027363783584407208770537799395383609909846123343178755852401424633003798577546706830496094717440748404889974454028529250341674375817782585332706446429855917816303367500605432661017734949075576662310767832208687332949573915483009103912499981183844609146833577833119487476398473096702693630417716214466036702415304229600421875955014280985774045851256814484067314216685737294703966581389104333370389160070946354172329397466203755096348835608813084349193614280196415285334575185923060906321577055860222679681000721028751349982744335763113284275903182877225251144647489152555029779883363033366178186081621525454489695876245115165182905491839369093473981140430444453574524995817932937455289766439171075616679599958862485533353102571806972199898575454218890145701972229197693872277724484201723160653200897523791410240129526689898640551448782832190179866814979164582951857432429428206575830219986173912808012146622931280054334502159182331430967276538461049399915810225340773779682940787475388706327096239059516621229330618468310754759075904057888672913713846406943135317823380063475928166176646532082674736800737158294494166106900639133278958729734657415798550894082508237986383552099715892804743529295726497688585975725340706197872965220826651434368133327322738852501281348818459531334021748950593965470693317774219865488351327488059409856125107248790519935161814651332927540885043379588343357110563724994568897193700926395430770070075292039367275229061574427855525094099868278640649313622760602562248239827805366859554312646566389303710535126002787967565233158618464521139023380130668136687675488514131957749964341832325366200751064367783120073438133814912262573107773815246310356819996765168358825794171882036891815264477585934616309057753439245547527227355605050353045492373531259862424428116933115494198357618262341060243458789892856506532437750355918114291016089581496811311987725418664250008061893358399618718259181536465195634126798324137039847246547810760450135457799540567889943171962330906833290197759932967146318433750597683226018819555095633667315480198433531764063185120270451052304404961331171301568124335454520136141218790417401894304727786720498409854269719356246185105871959385044581728218168209694942081390104607805154983717291127192029851191646973092896338754955380755223680337347398751071667272733587092682098511354913358207063175072878041426332905218780171773748962946378721037506313319150375491004173520394976075888529215841968128494879685053464528580269224950819251231821005801983147230202506600404740096239647166335623054275511673551663562985732815301395013399849531089669725098857976599678084476148869752230634914953840677766252495858923154249610221338760405787208914493831393715572863492747252787278193785803078662864659562300253225860942907062733053931395806213889655415710274212569006881984763140366298358837848003149054581698720303230345898608515535209016580288691744249123882054610913981334084366861036183519565041039161586797115377378667121034194770884669423688076188268391739794705326641843702191938384508070381370758431310800838533933308896620176836547653647450168553536762293441808124619629365752627265713167202847813419091441496153977200893186941017798488470126426691802167139990001014307288461535666896877473418406084628887714603924728082352307102384939678564884183650062477050682016537270081746581685467098145310489172157481746551433212393318796094998927160144514980973450749925853303828315365781914441856908446010004758780856235225295658445552275022707516869513557878100433210515551780582275532633433704292424962431164615469097251936399204345660595141325141495654996472136076345298549172817994713521783603885146284277436413619381255202398544779126053019095559997520744518483227237144636909807875674230211737038728400098548434113719710795437520069991643521452403203715258591592530550964189055167452636355658549849598049289947375194384729465971194518386523897846197228695985097280055022722838812118803077222736323517759534392244844021870342109169052455819303045198849570798370168330095338551739355115224097005345659987210493258268732138320102274119155208959318833617580856507178110575085825356343990676005787849279968561757768004468526511558241547277969224054812700463773439884146076259892512074854095202113755735200866087917829201100335080814709548740307601268557207748614766717868124614770297101216299086305453149290172718558941010745186416872809051815988575751083795638494137470431507248593815252631738446288566872136763127261605016801155311934711791310083695233237777127376559344600055443554839992743416859224838906472218260031036940350881489481037065128408541995792864002109262629343493695252880477808248852916028056849259946890703683135106906026125105564686875505309152291859578895390880700484710560333513174745381967060199307999857394763640688899038629139435173229343675629237721503594643541482121383032448622082996933062834766163121931133259654240378859420333995815679071420857379921534153141202251122121687368329740937760706798099194167613593201482861521887859713104264939420596750949419511130066650260636692319281946042731380162997416972909697423989745917468255839533424691259067390127215804660150073188129169786748793098936801367059398176441421572717914594417373071053934785237025322714284643167436404686593081810364343204672235866018965496684955181570291866321925427861516147047260393252678684239966810502892023296146828168478471920499911916974590766639063090473906912760423638490050623006805067129025168017407180299542515628482670581366140021128656308681074260796533450123832240989504904463219037012400916223114876676968379916492622068255790437575300911228225630981348960401407800150125780008018446493681428642289520372575857338122243151788576426214559157645815334140491803254709938203329014250704089281322625062262025310790918200152273307090788560692695333396796226572105494445849536839440447026572198501103496845879757324966327055553554254582543625044449422669021784457831133571666208802202139747710307183566273557955621017184537154701035637924291025239064244679457338533866336973567272630127122279117448093359450629877086072379447420459403108672416767807265264873251793398185441729716838859772360520223629182281115866358103463700716994557053266345656453510374347201987877912676091932272770037954992125920600944876827736407772701494294273243003248140666623176942899236273523927582153964752391107226927857327931798417775010262695388172530239459984859536255228439676161368640854192093350694541347604831246390084935278064691652789151842180650043513136755344119255023768204955623243599545357978871878725760589079200100433588137248021528048833084369677974963111786396185747012065629157039915894485335550631410341337369820155883183574905891141149865200670570657754717282412628351646068962458050296184679620714666103415227957521446484360680263561147888922320617773983208305667563329009031480190688152745324684140736654348892730238492357825294611347641600354573634659725907422915697040752338678098238955954600790940475125146423596795055823505945659939148966398711471382854778114860341679282790217206352945094999522486252157435419935756269548896344428811319887766418484018137226958777211056399715971777945274781190186940701857000869341878664886126937070030117480334238113424130747353144098063121318849351028037735320509964179505651112545927437134152495439453291300705260814109061547462476225391191352146358038060291210788527780318798865343715115613441771507895070779890794803109352674350733462489466074009564389092101640423313774132479529110828374838543325770712886553334818778757714134921173419447439118400044477928193761269164251857330166768043972343391788656461661615556651334211732657642540914807885260910467091780562393007778425038748135412253339937335402568401836607377669158449224416587851922067815935163027834319050561741312942171991860773539651743769072963825175621063414273163324432381857523922043726917044462589982447571016973560582180628872307059925448977864103937463365489680523597429564297118446067167649768270292651467195965888845406846933440758137536183760400917922017774810384489288779573008684590697985531379514082005809378745199130704010279436329671834189891472759148074337656491246495721914110525103754879924401761560598981674409550643588438815365985129471933263797164776790091386619767072052032705117128902973997194201426147954630431437142037222231674445693723512114781782865154485139986155599141637511551793086768390526453041667945016503799227506521040174310469610239925628080646858409019305398425775974882506363406255614859269220776096467762123705820740338023147318307998277153984461857741319127397412055944692909009030285578525396016213477442473155540662141452128753403662920798127999995271171169982177313728791113456703181759116889887766266952578080826811998541293818144412735516562069109238676123151086526458110967770228131580980640576914855871755669036692625367182451320116388853564779639684276560060358215520951511657185280486126499994230909590329357316349084217412430957189321501633717031019735758898263701532243383026832104034816037470425695729068727060596993662096997457626824825153574924966831654371914309286738258077131086821777367945298521915094352402799955043175860993263632729586928882257492644447982939826915695501515064310249247082604019103637491681720602439518608204316675154955279323216532809677946301734546982195766216048271010284967035740315949461408573478469119725573047552551233275255385698566071953321349718989966041756190596447883838654384061893364186923403692089923659409575425415530211943646700832493072362998526657678770039278923944952650723262186685031573220533741809064378634841709319397887737755031101628525234369572222152165024162557528778851614441766390522659980940201428214740247125902002309392308588288798547568695819105573597221248343962030424544167968739441135090284132517155394288197063443383055891907068863251664313151781704661613908635493894491349974160745871256735623223045491933416735209167524290887957073209354240356333552227612177176743384648113695555012599428160916758826404417682895186835650791063642622425199915519297225697116133867948362553004299598308199389013920313654527233510641995512172539940352706196963279913502394441836049284989671777455008312215864393909188993789737401454233861757497843722466215634375792295428380092977909028326387286842690352385550626842166519257231765328840666594787029123344258303431254021404087352436831488234343338117134646342621923050122627607428497350000286741711397967618162115811346726474206252040361262424594900997073217889861711891131624342647229753889775026477553863172488117965952133681922473857157587881086096526969370434046129164783692231139579146286252415990816876768291833768590568458165521570575990787714761967098955404326448204408912787716554980741242350801050838793961228804458612444338328417947354410065001041856754536089193669089570210519103502557201539060683173013338209422088477483988846708409283748926022127485351116240647746257021247346213731708192412785249914574704998543311179779228189462015621091192846791711458474163996423822407490329544223516951338569526379395899962217161442786845783867224349650889209950342754418721215345838272916914619242247242515886931942171912354785166815258783688213789784233674516974177980110730026963355389030849403990739637016876668546177944077063324514762080625877654424993178440057548023279136108086839790835727511250405263116892203215613541634596863340358288669929204085874179140581841073673568100273954218299107395077209928154091330330933151939597337010071278516372021067929178495542834612373729050929996623267401442327367013598991730182743236880905147727127034060296037587455822352996208450633629385025357549801376693020447554569128994273457130738342331209776335567837622424680824990205553116068479158628984973176836170555805252347171404927447508248555022249732516439418093336250945631838991726059159284068908349739803845500876238957025943207645229769337829672568792710037511160653848227392160115165855706092608958298235859164279218725212063370614550681392744041635859003190311279786136311465927094484420416572331338500176244386763188160418822599971329608247019449645183742318442232954331326219386187498321385022384136658119980853307155586340277500788240599528179082928556555825297084385400787505658046425618039757297544986572228777372635868204692603366508122188252709672969678216284292657021354505312981868146135691989126404451507290170960011215179300674770123603704915760396014217545546740104187587400264089056656222976259544067389406021610262635215798644162784010442333218616479975254692977901956409477431537513521750899761924594265361467825911474991149216258624950605795947996489363279596751169134737885756092895651084230221070524444232856895276153793356753672273664473625956191800369846501845995158621610150774738853938996077101400403773221286279777672466525169873837036497053912754773055797247049254946157154768625436048406912345021575070063324389521684408128105201879470980383770067147749395017063099585088451844110651878079206990080350944752428110236241987353093488022040265845228710557851721656999051172808884437477215775134208084470384080002090957972223260359587073125458318354649837650117226804437667129153883094421297514350285777712569998014365959814438006607155985232494302666491592799764434480593249004623424906764117054508260009509466719733124164776188813356651655731865019037559835632061342518504167320701550419336116232544528005768691174840544725116477101606305075335898819849813081405752114061204181921926267740344440047365266427630082219726002225379792344333995820711754104387688150821738263322211803366751084137525383249974863415607710478519995629151470382595581509111160401077785469995524366252187946984409126384761762923731944709001709956010559549746656539068011235084916100691856303349785415187437550683390676779278484558584375734897625421652693883202438392912014696578583356671382150529645188246800920653385172882991909096095255971072226802898914179708971576320494440370993814592983151526015801664302934209604537505717453751835297337611105741301614880954184483156228459461912401511512188986999097240455502552387836441234431237663955482259243575608031023386346410961075390185070644422081046950414236387257045428463463508996653101946049864494650244084552643611617775262094435098722389470168813886143289524380730325108705758899548726335339360428012427299440475493430643360655927802468324306251632233357147913070015824122486400495450037850381420994287672673404734715912171245268030160764363165193825380734818070042842458848894498421829990313010728098920910145224743733444554861336431898784347284336229296296397471399295316241854725932829315754085733253166929988293616124045387034690922815728786230943125633614609746753506547931694606686511011666637218540199001729393270602006342258354090528527191643928845112765879776809504072362399199307409391314268427849451057581266431335702976768015073968787025886462904587528810293331947230805492555934138392861897901607132512242257697625427446804356079438314109151217246300994702771911652186052476248378219922781638410310310484733374370206641811391097760159368188180821037767244074325927129618494784606285180617738513559918894177646935238453818469461670751379146246097958927798011872237225261607816805476607235391624931066393829692915775858452887853873063074189603179869124182774834822757473261125960149144388061894094869646051752771974717611406497096202464257424841374717863900593179531022844613060145111048365813560506584381039170474608731895863864662377319196946091552477031841025544018685274824171456927612375667770389979453645699176755234652494961567380523804913228295851742597055861056049473759100955445948052895339825552928943589940729203242166069477050823292723037993936904768369172948847965511072464278442666993327778653197362222616711701142667162915667039723591372283584410042992740877233420376486086125563543311526897187631661172003290412681202954164622333383730234854745887235035580842205393372465198688599133421684337202585085089726141671767293240189745481233507409327443561547062006421025364523959415764824887781225490292752137534242188890521483628119028409959520294899916277879206705615959373654420134070765585713435355629188460351903436608231440096248851095011249881505340774611648452629128091590845500454193845283692604319156178149374471876657761896422043187165947536454197387482389506013688723903931273904458938532591055830694275530660197809760126317093635603889753327908018660037485210748088036660278892198301604372932791612704333130841650791186873504643245412111464523634125380098202364255971360765399989939750977848849426819985618188780531440426723185189835349466084594121071840486415652676817294797635231752363827985028255199079127242039645278548354633291362160590691284184467114566209361441074504316027425781227756126479279534576839413805726012434498892740312218356747171150437576146275306043866299134832558321693534480593450132592792673204303803272507725743797031837900969676078668988352165857674001477032924132171430019796329435021973534077841487542269076194493637882674983659279530256691007005707742231692880932704000501228880108139416852265961043547536157361288107150244843451580235605936838896202129323264094096273704501316474389270085810179226615089418545860820397066524693500718492000994821948480761987907310209778211262336390138542470506546767903606566316182589249725174291108691844281334595344307015017351463447832332966621931354929066757619427704475984376480400929591086754225500748525297530839620976586043185225404742528885840699944445639868688638746405862855684078502344512842134052857375584579250447165028050635432873512397908278424902647544502699417975654475888929418115385052088515831185059265877457155979911413592316843113456330252862287757747810242614125303648638503842078151802189893991263970327193355843467674262796976630555454322793814602090277505453337580546311037909840152752070376349529498067884594865515787537932279259978381251602665117142571011564422256496122844480055988834439036101734386255250335867353627009760574202750843243432063927019705850192867152784237568609822800818315626127133515760091747155543181544582986276176127581782644416828407740858546946486498870209584787178905536643070587275544747532819468470961089269315537558357274170827740404592380433112921845311555575209644366507370153815826559902650739273973985281753227719443328679024720355732368147884449165852948954804316460755384524173911950785342660395682171827731263095854419489606412648776852891163456354246579299630166535194138257477106010388053635580133761992130251912553681683773649454182967919601126883787164528489963167635767233948178668542584710696718536340807687632411443580063728946369127624007363654068306037567427783139771180305992404089930649182950596094140188695237046103313979775752929350736588207076431037811800841342750065136507724158512656881825778101885207003696500898535535840500037009788553984675150789500640148754716372145610141575217209719918912263477999953283114441419048396859191362076232525000198137670623088767453856461194964568153633804522842053386233754585713621915377802302137557746063071627232595471354863239536521992331631743585192665259830753524454216007783315760649312224725285825149496478295340652639741134777499479344626539844474832069532451218454671628308721874228667072723308691380020121122583565850606118324636797950337382090020703075690322819191617947159878959034969335269958755637001486601581905221272255367514696295652684617136869917848616069734713604174706809464522297727278334017046256027552790935290889806141847341335894139791744470942889409843651499976520620875022284948880844502069677568904634366691086318282258832576159072624791124915069060863254369092018486528494807084364939014172855755451955203210746208618485928573458796114059693748041045213096898636654135233708908960031100681920101482024099081141696848681264369698037695821283248891412272142963944307787502594637624440939583860322410871953863274712329230164964739466068335870784023494414320427454080670806641597937158459591993278700521861600280953792548178426187479808704057148656405211123151717221894056653035786748969413612146973906881737230718552046747435335992152254321305659762495018902388620175612034083873496964370851671980128034824757979546788543338398743401635436530985019057408697210080766309226039310218941342008436058687992701919529757206103626192240465541474486712049403277418241977291981667654876620344455885302490783813188297420851895793012115913482908035070657346269376734725338635096742481912098387736419227451125930469505784575611853159689720292914784930672543653986533528015046028984997511766690915481241736545427469040937766859721165815923000532592354661747729300551628193119123385769730871347858225727588332755623441081690619872626853851304859669599606562808532712468059964008306341135509857613337528457426190988390931749786639663187235858130253768978688868956679730184555121363099163073622680012258732289897386504320484709660265735563990617937683747945746518050288935911097237752561107547172977999253904973121790142541382710760500571795975773855425825477207974989148196693772593613772299417112758063343552292258782380072887249998922604922698216558428452441612939151566528244648493347196721347552161219551427281111006055310851164446008267727906542746595941689792124259466451567032414952698882735127465944821309826968198992732890973637386856400659649124423985527676751373118685273658966249598020230643218460886890941733689173532925076632163926593185434343244306281562034655061030920706392153700162660602124765124919903312244086642099989116132315787954343718617274399431266205403232386156646128732571556084894650487989148901728759010333957315430619444587860796762150705743369943239979595926350012495240352868302477985185799651882569118577151476024053712568354243235754515623699822534301246307647657165128348777553280046583666174835098322139379539984506301698861694567130948856055567434117123044385790561873146439877082742203951022944181566236218906093976069911456335810346606866197962605000162838279203459196761488191560906668993749247543750860965942452723012736282956114461622319808936830603328388599694945980668614706900040784946131261381546867488896710533964039376825683763431577914020538214695943691969949667864850425923581736751336048459846530873527633829307077967375681388037675983236370177001724333303194434781986772827862068168446896757140611766094092387991844259321871299578855596536040111395452428990658174586668477565645826164075239693248385749076769401513743002264659406118055429977801342642039090191534941569946377023672273920261731559339493056309880344110778355427168415399647956294225257162817676736207810051541077784927192698174283751439374419427452175750074566772038304045211143303715870086315646865531504656105205439179242230172404847721569854754814817207348773314559008111051854613808226619692703227642380297649747217442134510634915661008134174947192154012738990923807481455575773965622353448642739070589258950084942048475124698358578896512271007404009043959533872528372664956549261321591292425374615930805311925745326765732473996915561554993031939918691736809674397485120925615561680162350709891715211930192827559397977600826256540453554193157067233014126907088629179772596089166534253859749863783081859598786616446219279518950164566596970696688908835624321562903108802532951634541897156911783400783202948974569027621189750841177654057673040712871567883317753621986736903460375185429049930577297500743681186392175589439063873994749166870166584391127565895511550855894545864695530513871696167328298772471319666596017034645149359537694525782063651471298226383763347643956756653086652888971879038904027061217681592259735102477469273368652101363161055998537194986006125691251219233676074690172467620252733211667418776726645937374227289097540708270333161890359354268035474946751304482810895009796148252472599130079109548440375501591911850363581996051735169486541380246858654051080112107854171504781967312194489787589974917466288258228268744648452440897378907576888818376751664969465138844275319862284976955532564493374474965457185263841002991666327247087507999463048004489492598072189017825883016005101859698682637318665041736316183422300453597048264914604861525940790294849618061460267482714322753821094780634785478952125600201524662495269862492732568570343074043604787970167720035854486256029515176118628662836694106363699735578627448545783981889251233745226693023813651135330318051530091444167572696218828728591438761211776449875447889404007113851522689034219024604317458726833831220460876624490955100121433600802213934472471979781824141846560103088143887047560339516009147474836182510932439711264200513058495881944000968020583000424440769266651408814529622103429953856157449157609819497435644451107697083290401753794031460236465433602189687308929934803743336109985629925856140914369301235870004787661191481598982874568242101425763214364870597467380475378065013747893770765752652812083060598142748568417843717329267037901834333809434817269794060551860923545244374745760425072880067412046222215267074493745059442239948252397220162109906498050085585098016458973658836545600379186564886499615170293044382097519808731327109351831465805092208412247659202306904109825106685731306586368898845122763341094360632377644066596591277621117206272942980653578418850196818763374570106128905199237581496467234846363286219150859008842588737114591797399861018101523356819140708747570428746239375415176708307817768915525302544803167533891787561102209183659593201658818318922918735349821900361337162551403988931856734026054131328764386220501439565932280485246235448029122812672805511933906850290776319607049854122986277613712019345437181470096369411413572416818477159695765517920017110930504219733981287727971907906981881856203814999550790198029870970648199141644481773732434170353495365298924455916642708698020927441721874066738472017893799299732219908062506229193760949424574567437839480619883734778952881063277218360374469492193238637633244155232523741237563132370631723476020767774175141921579246358101887804435775665752305616736879828057398483379875412803078114542440324257480094633815949386520085703135347699018801896743757253463120974139387064270206304639643431251432498962953882180615489489644571359202791556890423632152590177792906545658857134576566537140812387163836844499876779862551740294778264767380303335940014474019616148884249177609534559914133735832275485709192233729972707551878599209412015560127048306760032157035641044530300826609349173080196419345099162034668110948531567159244587180868802408751645609743832263874849638160001042500555372425006214939709991258330287699694398772619831353270348107740318763170978122612904538559526363271447494978305743714505833200080146330922606101932663433643005434374798351155709863775417056122783302286626749925082091596151673075649199974756253973764117012010246147519690216390800198705986493009828448823370395679174577545321419760509011070295608128639322728137983300571844340375898997179933895461717979913966991518944645200801614699470051336560295889348997467921356238250878767144315277962768335022487852341341270959774986848661531695771816465822447368005051508503202379753896910998655717848468544550870333025253012442515795878416261481328622923874778795458229596183842584267580935718508202625620833367582070220134635242833662274681518068295842218444601418878641634321568051195606832139120495116931953100961447406284777663420154739233856333131569285781935352647287049465308679508958556425910615256755683194780787828635937653466488978506459643157154698913902883967034431384401393597976683474997333378713905633790731251037557659605883463535526197103246804270305608911583464023840789938367892010952259924319965056194607449525262000771448122792792481615327598365531854924761526063000154511437962038288501815327003434023452105493642318382464859121621368356784261542854653555527971968537185814947215553879866834677782616821327088266009726686756562523486045204010048549881763376576878558557846588385035918332348120675421485666999614493166710074975838648120730016091774454449536925540710432356611358972918715037448307312617751239518945848248599347896305001619445918144990509423076247214798777379112643874967137570268995586617565098267128196905761036407919151250021439652791677814230970936834883765665012311907854464569510002231333849149730606175500869057272349703266511054287760990312872685979817929847196575560867307622794589657764634444698530106242672104515610289080344519364118771562928332284014555206697096767158529292783750002553091648423276813463728447490579349896730435153604729779524357986725451215941008022620575340226747106362624789071759391172240343986511030030329667461413695869365097792897912134386509875897637062241097128547892298608538439420425329894935672366274608940726061535406861578756526780177730738081646757564610698457089083168651501748631894230123200322872537299328050782722124442482414486966897820957949297174734687965175969029769593783779015419618641456954571726527692595769056332508052978006507491628969431096915066203615061976409735619619770154914482714397562675780155370988803697647912696561796471669139858492333286026229005246423158098428861472784112569176872886542635943416193058272218961299909250617774249964610969559643962688224921967921415053530906204467583896507441336655981098547533423081253114627095704720436104613113638620321027084003175878427095363017469188833336062142093954159226637917763990349891572312685329928309363170509303942168833999209509273869538281512140124752517798632516291966088544808664458703381951590879317968192922466121752488056056267026156662142746739251339187359277453412826950942606317379484730099271485862533560199283853663522182643640870081924780512034168384327538267236300900161373729550506019582333897349611672376087177235232048565539486705199282988416008810137428144422997172372597182110253323178035292818267371093594818964427358964679718974205060370475453041524614706989037719259010871015039200228066874201714921567715399942765216692438784021025947744433589555766242273862967612374428014274871873644591300662061885824406825174831927733265803035496716038581192281541319902864292935953741765041146864043737225468462277329587120417094744100135044194800115485614117330437908818731384797639994273126152604077220759669772840757729628678447053027746803435685925317185899105297409483274291816975074681829245519571718489880403249537521149016497017000680385865441280311712359114689311161699006183599631628791846131017364769475510309549310804576133666879977014768327927170564608909833390335032162001350565132240491030617263652931435516378123348321777905062516186170901361211501584549922407244600260681292858035583261721257330653087355507084942167922946865588546728785868750674396694157804737450944516054615538380663015079515574922587278820954569260085722612269905393518335298963399633702170209569872007865823598527922882916198898633865720977902576725781764681687309230182826161601807337497300419650334146696050627153405764467619401165029530913210616869446600314059952835957915323759072083116650500296580931022306573295917763699608757268348161422945211546130495577398239154141984710130204111799402824686845468393441827426952792827060778799971313376360301583883538373859853951394728762299933625145833677571111941252327054508764880777567453238789560080263001755312783838414565945728133657229138816545064376042417949808859439472400636921521878593204083711675222439854623962599626300438944443295586958763087237004067326439145795404557965582569024420203530838678990594401567324556394000483695122194960428200384148524200533185217738966692792941780128719294875871473772757208360637263475741869610004477984246497236931526233650906884916359304159076878091715587252246750070674689449115656254728867357337580568787582799035387416999210921288375524655909046365006770242174526398309293141204159217353918957879585816566072039125354252411611239353577203315079245385437451790529347385175470122942972369104888159807855803095981480651125191955581075644195202240249659955031829028669335217213232832958039243104581828646310893618677830146555970018937595404685751743372185952361048334179932221257558980724482516387393180630215641441216171474951437842850547656325927620766914933803404624760813808828829608206272707200490344255181807481694600010748211973867481850427730916263390735431355640408785513663778406371276839308681349386006764148849242838057374064203357913930619779866318371119002736256943407940411359634152708932230729868683278659346370508626186249696188205572072303562599493685919353539501413086375221222186130540150483350348844768858625848111086527708256665371844910373547802840378600029078376142622366024976114554423536404979028721940368204405829138641863434642901452827666169771318873542157842228902853383073299765886433726766281274886493700153878344894977362323494956858058796851229967176915933976997445611491526863147169071598819098819389066138874077493323392602411815084686924741027043408905819604958018433039563862720019328231307805427194265550789688425562681760307912685814920191750875754693999378546748108769283795501884129005860170503087485215693213136631679733234156228476904587464102492455619295668753242645641935334666901073649766089311128830273921621099075418677056560254146135509090347744911902381808074275497037842083603047560053002319558134243342923804854388565872523386181599963334707738941971110078084530807938895546956799914638516740310703701494262716075712679792766421773193411577520629575439814069129088546888319708446791062292677914967903772892724191403612024969905851992746710089015487733437129316089252920152115537757881477590258580253258733006998522531376029579920675522616435661550436292883052431752420701232495037543727266178976307508960213993623514309919634062608182848470390770654330900153055179527276604035438928665361284939884165233119791782132009783149701151470840646918756747838270671543998997180830878014855460732090660352059136179688811595617790043361083533380499539133606977492483233567580623237463685437727377650201345997505246522647260678185331588348900392771681705904536890304429293527358888522929306745426117582841243968788428270137474519439861714992262682373660366370606618802509887961083484236881538730550758960480795728513115794899323856518249775342017379716077751647727673127882674554830008872080226022951997831771423426567355030198587374538726743214185356623271655462499574035214689079342522329958466886356778597023538200548734349828355192190574694191358729683349137164067588193859040010933854744641712022527668889983919382970922738527409684962855540539336096495416215872246757057020793283165698771177234890820345683653261413022015764077953006123360480660987233528721683212271436901197888786825619591756354318113270487636848458986654410295396686252460539370234505295135078076601626240837157114818075190845216831600761596744133778601423495801237331557172890715813087541426434908270348350973734694862311741273860502298205266385333733072614451848183488170678067813396943328371900474696518100983947445920427079643579878865665429992744228874766487702596756037765191069555320873401510669891277878838864928834361499448432131245454133826701000622371615000529266966580665718719093552402709728890146724660934627423366647917238406175417308385434673405115973715919385690901307032682746615337391975971827713812960131877512695773497670241725286059417400048828147991997882637208251805788745433016474335964713620112512127356365489533312647623320062180247475622780165689143552452572569780989752571771074023172840835275608821043750324970674631803470520115135465289602163952789706291934059583983257244758834378199625324548185246804109515851012361097081117126415301221598597833671102197926257544950495781583204374566248568477834548894332459923334299149917572300587571363679697002205470879728469599250455617313231760575824355972523273187529997167787108965983984283008070441897201305773722081274271718375054279213114150597888640957194297764371994430601404682176991113457858269600316765135780042714913003208047554226504566141379407221712686644489237256517968597137795073864073084571772552696505531187416617058109131500169837579535478214928700901973551797849617823489889881484671815538121109028950562951101609786675711730701880971529793544729674743010356532742935467920190993414084451815716699054400785661488541787386887022593607275623500404022063289252499458924769018845455111937541057379142796705050310973033023864484654706139128019305650613487974520260052040659306072727308236338345872475857347203817269484171043725040918731490351671671446341761591373055824397426478434208633690304515703772909179934952391233166163398026960112195048154572390154790784602466641427945828193803006578484980459934256464940657034240307696643163951157382840008500173881409259337854437357029597432891503614848642797773632918557682880161841513626550794648670092810812560319339207055577521610753205496265128963140852701435545735643461822666515041688740540582780512326356916839902000888725163007564227675517846531226156759956438025302861193030106783496730498107245525414016652608115446104727948031710196177250934652329378441849189451261416285124915845622230786443772062107492725111937694383236427531646672708827742253234031345215986519591821029846879234978882133610172745746823782295660798726876918843784253610819136677301752374008048006646040202145198043443438820903745389624821231333238051169237132442398239178676098499456531208349847524636799155439778162586954857252626371426811988728902934865722846265618045549130307909564911664081314437431138739564083045423719529925431127241258558756906714816938602187028152678389031204251600268088754986171720827424262814241064432660228571781240322973023146302923313419604176059478508194337829574506848028637387673153695309539288300579219826876405188760925777523794373062572428300968315700259092705885214291248868715825110005834687324770626114501091618002015090621084668998087834425074076896132062200538489241042224515178459603788747151657765333005994171562233753203913978317671212518458603487330094693841123045488836228261516588116467191881092673766846740411705761243177569563894251125635158148892096721883430882766232069279273412352166160799554003298757172749611892981207705001491037100648069630300027947010651377943674159038159385861234629060139946155510981529035918967280445748334786251229407888196400743257623496298400578624219529552967407051763645821853755684278498718814331057570129440565221587120878948289073432799308990542275118778461095048157084091154718248168245423516585591167750303392620104448546505619848872644208468919886740498331749061650601809675816336456958729644662568332661953700041688191660180410662693845032072114065243537427874156596303339635560317553607915834422426038245245892924562162572862479943189452267210184150937941069331646396466618316061009719315078717445578908948997737848426436980358915633114116438062093135794192079171244499544859637229411068336332839309002725358923425432278453357937381872700973040484783269907710312970216809305683921009695892959644978833783695369300025987509980134527585073220579306597736584190533342612086015203568755626004586113120583850799126980474938725282632809673441897595497398214226535508226458265232286009380099082463471454801631070158627697365729492332877732449958809012293380843828498419125117501793003888680382848719164974069895594530623180518717422911803617532717799082995828822197332980916157594666665846419063581225548367320201309375701227509594151999475620444384581161125354131846575500132295494888759581542168767237481370990818042329183197212661108486907704652822139069506064011863591703749558493618759569264809466938474101568912493031718452318298306815541960593547291800770727944618800734152780462611887294648403707773594442156149097015160051226888433661761772891948837593589213795181710339888583167267208189561270634561109084238063283995886915539579316537278594132908095814328495242373698672436861126371735419956789564643237469388829114858835973261459750946176398541361346558073332358509253720722633342924394529126373152044586736554669225396855005985110681955144856404818133866902669025514460642087957824020599636630064739543048257871539721141448608608536545612517264017149222765922147333402362015804143807675106383981311819101419805313744960192587990833634530480101984574564015250124690984662956912268475335578979629696399494276269074343115596666632845316379777429486222378686570161039452893492174339402839083406198972195027103378658203546272128355791498555608166325703764367167096384587592987867077642267425854299178912341293392283614775583142773392466229440502373472296775289479034598913383625403445602495821039789834471219628058208956464319779974309111492415217928300377536934219982644683308081298430537805735260233285582044934888389519337233136083563136729052935476308512557289482141365217784033169763316618317375876851173606432254392375742202449056421045644308461704538456577490551673196195087012634719383246414823105583667492087647016810273493923620312016719702663250984317839323176942043466140701369975612263677893941248333155532666101674128901018664855307292693288049227547986601081325417758334780181419091710164087165427850425758382360558177247159172060014968808386154377683222602753127032311634643252046487708317200770773453599982580522085209487710645130157464533912091988597232000609309598128049981933281941875320475483897607572252732272208413427987343084755465192407498828667164337814127913935452529003892713685850993807497326346829923091404740921628746658184185819577914666179899531167928446212043840401344587086125932078557067905649622883563960910748368417123291457218265436498770708818833891111028852129101168110146058704743035865335340422188854371112466953280168648059581068535828049094887065306755305122093415026481174017097938667205342407623513038033710117602389914907900482853220933553407451109384638966995781815819412725204018023646609749671231036705839513774990018813215362443332001774694069698885838595946367870116716688387040298109455924644377523525192398621953769432602220115747879097868145129853901579811316256500709743155767188650372388903903917218126096820541576789499416302889001979109232219760217657804277928675731633999073268932694710752441828742645345626378791258618414061034208022584751442616341437078036783611052137001236399843278570981807737470461253424462594603139943129069792635972771189473058192796122197206775235878012418450324737395330572176542069393554542547144637201085903804674725279182373929337180532586022701606230782558669155717488934363439603932306394691301273744687862881505167486122637185255868322292030823077487940802784234931000081726403783415462657885375306649295709713802394325510671025720225319049630574460986552505733285867858539481205932784220385780717941224767537327356202087692264223091618749755256845650542517173429161262966303480449683626673117107847368251777609228687320057554510686220200473481293751033674672160373173901707516124867079705247585291483510323450718786366079519323242872478854113214163686876135307611026588850860873051376525266096477356225659488372365623053313909511977373193616734775841758929990733417216370072689047302143567768973340745221674517313933478552347603208323843068131026705689589949538065233495667587997091204763323267757377140609309696076179567020367013385840932084387838124464206041957026960221739985388064541363082662798733950021365132640953037972537974212530215822859941093253496422317515750264538133809254553050271833595541158360582533211787638153439569569048004642000834237394054400471337596703730297092771141602328773468593814794068709522620599230398042460825814561607463473870305031060735136835695309507886928566420992242524963596402338688531087146590924746504876341054187930260315625767440946788856305716046252793841312909439165804951652559776971132295560094159090687400392390657641435109023651193596857771541764277286567603166895965301084930869101144583672799701369566784075492447971821700492375229137292106055412645784025978898028370005633909980693511635141171604615852812266312612905558754189762787015612672822962450079721560594312692815737773420170950349176894919744081989262000615456358583369522192837327975003608955707231940138080004243486286346092975385354873777206483286667783908681269157820327272460826675796750146590556382756513157561451822843510998100391561425978038939473221104600929331399080180624555758023337021386577757875602694244993550193302123027801346320738274659738490824013057226528675767382321664351304248508806851667092958415212778846701293171220463170269547659164731569077215364976499473633228798434254085752495534329069915559729004835854681472601176942540093442441366637195722240379595734701413327296372331955013333065954067446503850617141147268545356932996914860686700090911420814791238946366210753924240350054903627276722721989866228381195097300379530475858889084688084786608051275545594579801367227546174907170710037428390214516405238406477050944396921730838852137017561173991260251482387461522718751022137803065936295156286829345421356500022176863764308327736339721929336995211395824022596732404250641584578086766551698941280239796110410059032994582115885068362888196404276806233231822487745762226473126525965361482257975982677962338501388849075942211124841418213578050053251595567999800822532721026996153350915012999904909501099097578099556506339653874656492368240814463775302500913769375679386602821896181274273814103325681537370477582330456982640357957338931431042171487906981392873411942862852024061519050044772923704341611778529483890675977927730536209811467287864686303855446685209038719869182177578173527732769363101729649557825276749910449833106281064940742382863955999815716172213660724799432983215068512032561342258675278190146709051035077899123482882101540182658773311083154582128420486139869465209867349554261670394027329885189518823631748978582906224107073385250885571918269067878844975944693688061400072157639140126750994599746110145237881807848472086421402544168890576183284603899916340617086516124762975477842977489442542569435626607818323250319489529105633900828602154012761846905792931080239416695656589341846192690232750025316746998222771481846869900329272487956292370728677136903436582349009582644524753299736208381226893196229278219394484613160110684281255484668107288468610535603937103401964258449133862157672945368211914002282603393032074516156012156167208998893516943921221506272967291133937452433238942258771943218408308688379488424691462104604499861646354345498223567069725337855933656575566780418611698468503570493229876112500587602456688334436693487603392285338023385575071174143207227037024863344391981268435120614552010337573341468694808688111312047818085042190666576794640695678859877006935853134982031782233012766165217203010071809086732218386921542909967372904765178398773886505625403208700516368892953775277734814375359917763905696500363991796729229755615786559593577174284723237800680649303334098795209478904446381395547514025854769094537638740584009291925114905013444703947051725851643126698230001796683906018526221875819693855264897195570565328620248449294121783509613042299155251701694554898032718525989639922149494570756329285149074428690325825481053417380729963764952388037450675996008479488454624489613519611842781906090077175793197721675714866982976641769465281134318342635774380864949328087090709708587715862167562381805593613275090405083103561417969607745109152158413568056081721231055500519375592279161003487882250210514975732735156620556909523850650129864546015085846742187099970787934100363043731750387946920407440651287780012429600869261789584608705690697127919165088861557584016515717739290098470504277147754176916095550803714189107472141202067896940949862866629006500393675395660656333714031878427391637475919647234371567435348611979735751573165199280285943678506791506402166329880276378218423977321758625839583923605464485926977436479444376455744187597473782389228616494208823243466197528175659256085912589248809852914043573080499115687568423258991438132602575462456387634278408202651821886624726536319620036426206341419634812824145182440612696772411234860308155601639645679782766046519308032654084549835878225717301107498883250402440660437468342995431013541465043401238956941326358579412534521812092093796538252102589050134849908546773233254109008912953729286205176341310914837793850010473406336167984216557968853672761627753329134392695277317671619002665266626858474345220833712434744900591112347673880866134181720152309002257479562274552806291720012155480952334975840725394438971817941517939510536404305445906119030047145369439970728395564915051046257304796122914441892562769466588026693261973400320795813878920132788154878734112277838341907110866734695779064775211603118004281267476997292173189157400548527949760642765262535632339488220937556115000147150210442931763912180762005427118585638747432881154865771600444675232470308242753067922170872561518828594685747469893639003607882977317207191042709717365203410800709306206858678832192188804206524097819421192913709830591389360826249045365429310856704529375117679172856273223063162524843548211783313150907688557183584105673846190922526875987737566943998553685470629945744088881477974169923373508770858289640085825816799002155477795151527711614948313994639143108480311192238243895948977476757202795759244993589741140982898422913184958548298832404078555880359313527694997648134466239148009494389290733859643396713383417404081352348893101327884008802622406924978817380866570510596203005947327780937209035535883154310396850054099199581979467641256749107193458009125759561705929602104184335288546820548176287600887383801711445544338906463525147859933804227347079408630534837731593662375921829232900879687855176339124000767051867184556098455401555436275552893137542807748630093207681647447015220738766194008728755328151719243419373414969376617504101289626491034826369360293983911267719554393054812852156889866407338649865257902256626256917036389424479410403796992824025196057845166470798012690608708331740239596590399329066693579626727906759536736802957348366531770242984578202710444662252653566226702981440820896315784281063004313165629102935645700198537835164974826045255184777766104236724064474100076639287294296796501253068209312033956215139917848814365144234043843225509718041729143653200911659218224378020690237514053278482257072323043581603176669898661077572019796408448381009727504682907781872653538075492667487769321074677837964823118033289825824525298826457362869185070067627900840592284463802141059539722320671961413100000305583664552803858093272022539499718512263289892597621944669775571153853152790030783520062355833468833574069463474458643718345424029122462761617063897655939346330574197948147355199580565743433959443424403683853493965596552653745806748950979440384101746477215332634372639489813735684334406665726618843965035363253944219504479593493783171689182737880379768776336983865208043836775811571376537918629187987083334033610787459334567440937934056816563188684251727050380914161965376154686432800953494038297464656886096261916087284026705860148599541028024976339503933593236443068657464487616017901616707966039297973537463764830239302479884165918466399167964007424699200318849876108052086960841408054135792639414297850961699645660471791128468509033490396161302313863320108389236693320359356989458993078015287588599707429596910467158899099714780217172375566986276207460562068289449110855809261752929935440782706817265146296605428503129634775404113474727417313284120017014014737979210818369003870600171658579136705117618783937500292228888449965805338557365420109071103833420901380982678249085358214145190807813659988694380151334516832951333896684850008256673484189579471199098314604241763134977726142907173494328312914842571595462302735522895606405751962161940525504207743416206004011452441652131765322144659571715968464087448640980692334785334708871417939724201198778761150696898848305404079868516561856441304929885867735877701626277132196257197383094359782655375670190528625153445831375411557878386938969675451891188458052249040467174971065871359958817518405581070666400924447695685559895284083657655679455026592524686596072205058839082252323798707654594993118680012128281205693278630646436808371968892430889272921315096645506325693858990637849216409713833077232141129561987747826079212637855777674987404697646309365032035899297070004454330023818251108833993737256476826926557767837891060712817019860676916527737360080669742450738101132899598142883500058907051300132741416466727395405569127360850267832550705533454691286652091723431400624247371258149984924394010545182472702534811118884390931085974545440812524261762314248551197351857577790004342104445444398765535634621867209300402860212777214297751821755864232117934054582834594762386825971201286695933116308570956046290351192664265091696697520119042565796917418156707029997179027437349111022627084878729187592517462068046732711311337421395779215514411591271613473225218797454494680753167051308161945581593957419961828788586097442641584984520484940214949391491339344077676485864277970963799429637150913922265283796554058614988149810811558169443690554396178188563475585266964581528476890292431079091223334455536256579525315433526757158330406903358015469188902838217721177695839972184932329606555552741575786535997566946226578158901887643616094948109482518480875316880431113649096715996856429563673888024392389464123376477419825988306141061481106654534706098475559659141804206133559815278218083462565130952523565796631617134237153426602580554255654214942196135939925455873560631372213100687539151797715793038561618521599735069009509263345983295034413506859838622364965901939413236789596425455589087277844337910515560144620906212983025164776965169422719121446123799137038822565270618040582779694250140547328375666087444675181276326241714767222799698349156727110757674298245849738414662338756662391376316637663904045804308929878928308855661987925234350854241457856010080041857332707695333002070979459292175040837975138596771580486380256487788187906634395053425754617683530289253674748858736057377080778825463637691846297684795654628872425261930931721719812168415840637750182117473491633415704499616435440576216487381684550575296106001787384242771118658451204485701129121909635181216041054314717812651409616713192769111227074683484355146415320016743757057687455590457256293476692248863035602172786264684443895572336164952035271775743548839360844976791538953970572835330601646184284958943127610384934241558907668988987294878222100055991361032289216138284406080991772933237417835738765500413620408567279330789225009923860667653501170979427697668952092501213130352967837636477055424473812202203814219326922437178296396213544779215654101439624404154033155822250463363886615254223435959886200775455625350841586623482768351441333697527754238318410633202441858874259698562255037364387124719784806041857736146748541681952190179721916635040977212142715483127038074378730344386131501470383162704047744184352696773411315791575152029511751902132845552439314233950173969553333464376868611086311443874796763759257742393971072322240046386090999137229321643621673958050671569617193954055799320577581500421869345056195484756596811568150022700671422239382036790357963475800959114827889043472880419585381936095218717213193095125450605484065863879709674029012495631937778020092763300017333001686628123244940410189011360725918612232071815953318449829530721491563766052842421144449494000305381672385368916732540911461943619968759516549606071194554889985884926599490481253934201354601535284661419889881181848679770263171558266521898823991692015678406426143803563938997484077325657028722821526866571050425229877420081895106257864013278829668703616380542803908515688560802729592111437343562649494365936787956460498185339965508228292489064657525421217908282079990213555433662318785145150721622551078395616666989313881540524700544668006584592226003554135384282055861252249650025565300530660473443627569123909273410066196230740476285690022852540580067514020334245964841917882513250361851874174986396111790584958045074445057267547444723126068038580767526370118687643539366348160427013207025048934849145496104861965919377563110455293228364719988492156139059057484570255380167092179296348267691289604746443241167343096881812131352758422636294576130720509303781202033939732659953987284429584787537825416997247451614788217374842518541488587680256346503230866736402389593266395161209811975800271082852786798731794633537035511455233253019218649462360214416581610870136363193048626088199750128273079183903717737033304700965528077492702760068844311797155003082385033491330190659624792288376834738136618915634725824836171824140012121402818630517388295124295666154776800676695411904347958834021657897761771675193778684282972805676368013035888130761140740139376273505517380958241072539321332545693485539670374703488893170627533319165361748228535071265526310395404024280801960294474810361089890262428890798020821771655129833831198017064196337092941910862153845373355840906880697287367852401862465325268625014612959771225769899374385013278630663356938811934670546951596225594817652519337008142436815472507196473164476882789295735275298073562954521010193619554881512106752006165386817823016529503718845710625573071164967647501565367089722595512035855022232357023815875002531369735158097087760787342982053714942457577071490197036201952471378706241150028073474259186888385251545954687037866768704570758543622633960569220506957010786753673153835097008434585291003213500851070253903493320336429788226138933533438561215216285567274702842373459789236207836927045190383020816762310136677658119396409079611891909604634784793436912232110146439366337929208513810680805448209153494496832714096023796152633246880334673128564338991674702097157810314812358518426401674477740579609828502766168641774386646357675259650734689104669909113311147544689788574300517328871243846872576894755764326702809574543234344691073103968299350775561678801151221705570494434574003526358713928304833899045734367423879604928812664624714992216011216559944315763759881839253971589308683640135671468752251446374002891995038905411205662373813573157700075255856718103517440214482401234349476326530135919650743500651998743781161949839023683693491861969912080215121775269997892180014670550120839608587588920069728891849468313735919843697217494829609706025680169516750756933432865385503568449739986051303078720583262547105453937690388709524733771412569195375899498889420596298256603234590959584633317040795441874832388950294581488084506793482757249372965983776732675680067312546525105055511383600410535880589416878155372102229624294441131399354869102092840135380181816263797977192120777881932129105299026814760539884862350741656890451034136390138377059845658979292712694541756373168683334890936302754735483095136565799643766140165450451528385958032386589776112731356372852753807389183367002533848081331313892667605556454697702150740812579508461219308091072142342211369651423980630583585357060331899758600087205657409116865843723570736192418272351376184369942448258075551520938302412035576340401635740821684699505339300795523030517006092246558316519372232299723299949888961981145222701339402067153161729941122761657711198391739769336521274331624086488001651438085407244285853265202450050576395291692255382639920295061356045121391355391314382470438172406999664933131336104383861198420820247312717435144775962752717233383041216425298697172846233669589600754837368624898840978748304494691990443217045160169137003288988257693666785874496015148777563041504301844150345513609916141814947417986797567036050635557059729296342723703215078920187867882332691806613232560540401297316381376058165099589501324743338575260507352455234311725062090340077442780260181598477051312556296189794717204033274126924874032445742676642250391482128924795169119159291319107457266063059044533874713740678734952511621356147468084798507355075870535428012377636380008790174042893609266730534337502258601636919795888983685665402629836044880031440688927153735955268976976841456377636122777286480268302063117755896673105859239837271460026586073177157852272833345803392299142576014664028090241044191975809198358800936297192038329601576473954892508557990316959411312794195077928491822091838962980790604607306424197382336112998664095646565318217850883245703940835971521891388439997555945494227609844207523138175054069308278521749709035391737975657731731912987238583996172689474445902624519890023757049840473274406545059124333516256135376516153444341587280240579587024722792098271135865438743216517867655704178939469667136996748865240186469699417198384932903190937055555779504433479695088929920246376472669588789938824714864842275079364471242463794521493176063078612876036403328431538807004608960900193061275759235704782665540675049079584727640092881619426653457751262357693897424622703123911527933659497632853001258655479683342157088451156258227180056364084914114288533538681086403127185786542497792332746971629253659722196300924661426344430651394132846968088860801758067980912501297102711308221785727210977789332443992934757436229010800606700207605177263573975911851920630624328393511034672547260577944953801142671892715006718732052625703909087689158157329588005077777058662416968056450631491537354330087281419973686879373839489774523311457721134102788138087792765686953012096610275425458764807797183932645567705976097886017522739494908754483130851589539572646586964235674701415337049614588007078862941548617921433484367997461831085401578691882330629785598435546603996140642084409887282636260197966519308475739936220467385021548124472590936444023924078413435269234067447802528291440576916204988066030951643678266642562313153644145424977043552719745775839637593065301034561555782666031596331468060167341010448605864027458343051484293838076967753154885845995228839938544011770132290169687098798795749822214752285454206008120086678223846195677612731717228731643596027076618375031446538873078722535654465775033953994876520529895767921914582625444642772345869784785352783142233757794376051864634854962072516508557850128673326425768004067199288876899239593734829443871941552095951767517361974742217047258605371941755581414447295139868099702590923438935660266136605798822221516030327795941635196148546230535796676458327013660575788969016110006676265810612791046706971989477062134035102276352424118564693821951505058244363509986368620919112058341637173422544592269670245304989582679822424935954430300338209136770637637910484182624372269547232167794233341279290304679561837909217748985395457225136635919525556295780398262208378726489187053301818264491018877570903734919086810398515921641920662734648832692616148872052147070599332464741372925812979154948512570270144751136223236580402309522523425958528315788576114448425473533731339101490764427698116173915839503530560300517803919956381569216785851003153426294114508311462378547542883061936415790682562745576392366437616207861003970412852349052297150212015554690248307364779240812579346827896103623121129642197499421347171300867344945250929130120217250661441544055685766265184151206892422812058342784277257806393918356979838781930784614665552514898760134743103264151050086803946979660255749626035449295517818983599140427726247612426056526906341737169217490982204333764837130366770380298103432834064861119669859980187094162680365865748382180404082224817404809556307291648948206928938825919213398058405800905760433788380886617247214552948737328027470155309644634250117546641775004751541974620019943678004569306208808587535081868340538757019399730830678967030155273114252331300395322487790606678881448391883495261978049877299105691974529198822442081097245865736496270282982188682432619687495824443633210366615386978674472533690864678413869944750285857770956399647752251036966006798153799962349114997831278994274087212883272536133889104267689826849412016046321354808252499804374521060608382106730518801159526252012437756952465084079364833399603426259184755376289107586336472890616606875579014230266099808657404437357677899135759873162953300002909117739801294614557572545755681056563288179916201896896685824382084401001694275044248069575625604946113940098030819530937050735168017792847128005360896629483309759933554333242494203384493830689114117023736270248236209636225940980257524549745485139704578793559265465320571920497724742829673341632559701848926436570375263360674126806567952458754512231489364776234451965517964900536744996276833887575218996527601691769628703906401411867632527600186705008034372002874325904318094623812922955217621169120782991696443653403206470960563163255665007164216934757331124167390152095384233989213395451683669406750726799411571964636324127487612355647782402689793983928862184661054139828005409945997736351529357720778307744023206475257379139696983494794369824073928916497385933183679738573968660839659398267744827518666872752996054777626180345759612030308639947433867793087246473559066049328250096146953167297210668731276631804193210511222484151762347304358336036186423731140424234568016102799263197966660438951482915010589797069344764883531853655065623714516565965045794470242107975114489116745518588841418833594767885117831657174823841468423336592307815255542587143564424836953552853948381138484438760701729272312827477355143510267941743284381795856586400349266580265178850527336523794400173134730784540050634378274856660465741128551905562081058597174860798137539405749680403266878140313664170872020583230912514166423291624392574564184426712351190703102595341547800992448057028663778419364471008842324505408865088712176539541104336293977035492730009681542712311144232516420915798438129881466257574085166704944462425199804347455524594447278901471448737029811753855246590690235974676167692494692707761446907432877006114626489878731932007788782566558803057679305679755713692613442459420467951082927775792582863478022707081823792006477236990245458106483242252896143504082467623703600439513010149486433730939459220992957486210965437990608920877959150363659241243559927589289146280129307519873421311419855556659767234891410208739446692136219334399421243973543106173944476808781054466635614215759976023996448850883818829711888405604235813421464850765578456832881623729920343650073551525650670391094457340454829549842472746559650129627907754140908817411053642445380271920972709700518122627363133096858550193288607936864742242716812992906648502124836485956872547358092618155050063979713458923499435812432241431065953159201965054443464121387742357317566935928000738753877448940940575716291216004294637863788784301834805676377652131939814077920843679350349896083338937677944369240328952539199842814261510114404250628530518415988799516798026149098817365569194266111160672706607309161384487042385627424733783960890381802219678223810338159739990050872593502898908728123037398317649988797742457650059824748028342027574717138788157675268018566663025433273734299938425115240946643533929947605861735016522434656190603461903342031618533081577008982249174970958765494478069577118071030569078658876391128124004339494824609269542173169372966916603052681305674648133803614276662624441862779704210134003192060369721636632280559605131025910357666904517784115396456741832708727428893968203371841427005918319337568979895723721295741326423400616937382279138123649488622308607228264879639375022284339110963520384653757335606870182248732955540140682419805898902809884102834235860420918472697805818873647075276143392916876705915145222498270309649924338237405303669096990843893020506060407430159947266929558522467226193626395301964382122697153212022479210048648186276950888263165407964184271504026844493465767243859109241789986299649887523372205649418957898381206079662365709154782735150511873729516403840100903972092547188497448213476497090159538250190278178953203064486332600740589917224626445558872845909808314076885115011155229360886626088552477843835336964812948289438608698180664692460911659375144607411647501295386397588896078708317813880874354327683322381597966030396435002967812160924586900800380311731890770322620799277502909404379110201446475535677952006353904744820876266662758799785720550903097671827286726966591804685888721331189466258880524764890853444818054570663346286106422125600219186186866329284246128864788129248399641364700065025632682824963359480922398524311423406226215763367525423094016584711802108904527872557850119928833386664460774886205899739981530741596163144078218359523567831714875024680363617803615109767004895030965342342739644023742382514906214187164629699248232171790547873451991303581537505240442180366393213248156584563105063736443635582783247726626526177900492211109636329277037695041743130169706935513512907550800338504216952536954043134766570634398669859510214644436374333796490370260571239222341400603581554175930012232200009936768069251675492065627552401366783016067512134325488790901691029907444842782847435518782533213269787359718309676030016149042853913607154727278406873702179471611877830488308300747311796253606148866481933254780764856475032309345691605328085555337339055869905266151903415362651978803227483039725256249074786777339806746606160268480719921460321974308159639056677367215846859019773087541190821355546623210996997227446584887681455899636188000836336983149335727071994724113138104483570383362860851641959075632808493526350348021388015082318449664243724544834865380357818207783819830697576129813754321774184915856506573407742995136115808064381246326359968172888923505105285108680389750977825943108494788733943551783426293594813061799721409583776239994077566778375444601897462436839127241994403769725976684632603238744387924479752465346323143097767842170570293970801744582109992341218860640847966899836248767287336674487094207569905070541141847020018893844579273281888220402045058982083265072049834127642919738741782000451529159930869459918610656598605310765244682430810241228310151943973499873807144599338648846690339403127129054142420053215646615042888882985633173867539571372038283886489188797205286145728227202672330473555050478800883029914336815023420203246857134874396685000354137216023180217196481076275340393336022813301151402912265169410142506190951840718364432545599450733726795990958933079702289948957449473912468665269900464275540865921938330040509539387301054967415304063525502539855290678897452196577222223069731234224982254981493425862028329941990345837506019816694553834730583835897189425423894219967701275667803836262734523832927583032383605322255163853510998493231973083131374981183699545444214156226500063484168186714348358354779718225162333966090477897908341165427540574378569789973482557411868682642826407850444585874705479556977188513661642117329919323173977386148506702268592492431800299410082809388885675459605089384660967622984454150144882100908711006673514844449342125835560243339879891850230371956478177898358430814388393755209242625556387525109330315688050926846583439757100330675266476922800332168922239762921264573441081789508975493441905400889827531217678851017398577325978608716103464817087612002444893388026678981102175422489070030497186885726548655245790499465157825557209852338337160881516307605743482035283341182260491311743140746624996196599416114586628689365527625238269980124098837125120385130146719279411321984886583105373132049834479425978742689509423536190434503533412022532003769608196374984485610425457443787774188932781067051176168887093023727469423720794312927324331374944110080273580511498313228077038236480608561475623869006566832391757673878195659228997066160811183689253853387838546711161971087394255293102125806348484484482218858928163886610280434433291351170505117074179318683981871120176271729847218913466466868084312770704742545851452559161035051127813875912647474142726585472713128640573759888972545671045754796924900703606302641772342860640690596525077082175775200319671886756116355330108267497157180252540273738748581968592162084258645611224686353671468170171784765874393262690381102071507078727208530134395365662584632086092137587782298476007518488777633970608219676252000190890168503904884993095278612866707228472663943084252577558085030128111454123390281274606130809808284854489817536660918415450025967068497174071837948469225363110732724357408256914131533021204463152750398037412167323780929866496791502975038845015750129431214857120171624594676965698905550243829272233111619333732376805717739850751147338364371207821101756487492393941348092749643960816377102678292924956055628824598363301217361352889847318252295199835108863706216407950782291123337331593181316769118002000205071999653158309054884811559875126091631413419615421012993072695249340012337573180460174471721779651224989145627641693563279218887901471944371802282975078360710661789318232441728111376626170126755893437639658083057925991648652727178812288366983473913647568004532087705140381045043700454318258893547958397042694916672653373023365932984571041292283488072966914461543585624355972117578122038396713902262170370145773529860731737735573447295997911441095911380981349034713808335665632236853333186168475495024801713420344407485787555946860534568056002135795469077313421444141359415918547765696956712444321053507954599359349872366854000743444185903982589876822609959628509824220387587752392523062544624248091264030296334055258484946085307882162066082439446556783060300911876409670872917844305557444287579876917545204403171591594435774715693722426781628820248877574156999958366504720444778784917987928811805198228936981369972964588385736840473288536650652087767469084283833768502190036451910498049503366667446985131949212331559553178956256633279261510076446301121796628629824789977341121189421845502993095353584800138822819153988900860689507429078995866059794086506102586852950367949275278714850890149036136567184718316572338111221211857593982729670894497897937722939893079695275570668420170237201707451088422308042838340008467568495841037499436906337742954182286812970597256615033530287973141680290274495637552084154963819473224796000264453758118312859097531014740224767095027573145387090474224773909806640611301794778713300763076829676371400753057000873766787739488769902735169560802138028935324009108129242463471744067856500089313618035268870063757454408027555830699068298883575053093336650617579487592129805921424709764430833108864641149263979939683776305407247979650558821598544901033324633605440094746478766791306177252016651022776270190176092646701367801318908190079493912273066120920426141782313752797610030784107386110600199492838544481192990375474995016746596859658826599121337966065577376040873286705392983027807002387002925407432362573941951233491634693053832117408962235249151892688893872399414268566784076425653301106508556807420133184892315066096910455712447093550646447211469839076123832604817290139594740401944412169884381152385785367484712308459217417661798841840134168397783701840207301100143115204727391496313135772742037748193562717517425728329045937470707663468898936472729044368005221617741539435287186110767671706562444349808338625031970147385550168390511300556286393382855650093752637545804291797610336115568326018896612805506747465731170353235524922135222323716402874577351765346542681119834461508639838715950792405401517638653043911624832016868689081181467201838354570442147376315584553251691280403942522916333680696407673057909182448030680379306270890213753151506614281215889189211862921589465655678346241577485895789005141838304258977262171078338983427131072745095467655687426321717426569059969547149327501835325453546791859191930698804315514901302817066487260655800628932679838099550634217313876592747899888068162982416510593725921138008045283466253937010234290101579014386729793357240036017442703454654628869040980634031307638743228475111344882428761506578731470367710616343819355009469856303400467494169444818744765773797778209266877095063679305255068275453373319896969786663803355141247663165466898326972622310901388682628309774432611713557029546327022638111335235536587082762698489413104731178347779189642587843654474298407453697214195605107877573998249446315057774641407176531903242363096226785675829611830893699640014849525572884995353113661634506235120361705086957512850711546871075535162239799661857439566361524038711318499338998668585178865851260853306874427167175350683221527425471175847780672094774360963494534254770833428221093466788564209493402214041700113392719488007894479845689621315061458881138093841403113574103514667383840833156987451782134488736924185989315249052785022495463167596531390618668124195709605238610260625105325168524877648644533659036875426111743206583351202530837840133035772830749747329127728056993484028720885318355216664697673099989875606935138570601684186025709543697217474026659698099463197069788460754862586057318736058292190382183486712006895979690969491350374958202237724276876789093115646187811026853390041321682195463318039810475659609121396599189359305766517017466250305049136544670923202093480022013121950442572907363224018212786922180266875822014128290309590367985810829847150959902237899684883351283300412179807048842624644965618136781256184705978931098359582938420332925218270247177764646072322654371034939698324713118345918146076542817362013053693167565918200099442479477226596983012388154523858684798296384886741383328886386343776774927771862917015773929462270842675261634988335876955092726761531716133664521108478510678116723419571420675422940819793913810981818764950581485203153432198415291209871298389805741021380944344373398093035870489615550318065153911664056278580290188829033279494195835474659963445990968523990725385875800705486342543785565781203191396576684699346503607923930682379650758902855270828540984038020426949950064853024859148876901753370697918917450798263731463280594545709147341489799102670318231241848324940517815243080596490533197113787237570218009450271606698469667190474511996083706078762358863035704983205005912678774237923631471915699072219695407293463331974489925620140881123891075989689128634513676491085824471973434065279096296910950341655607652551654046443032735814550907536952681528030825783230968288939977344253681329101716959701232222787845698407307492542134934863642817597325550483719018679029455716489794791309380447950238104319405261249723368456947379879222303381654665354214699798069547129933882051479715335966546678259026152089547308539158677024043109179383688774257203855810506918009172631199964691789248933905339964982749260044781596886629208268260887525876964855884041692812983523147656120305843568287946325473321053293342377923433223825605448460296728005092191959397614602273520925768648644508957572767906189176799225870597876120562872957889517304475720645679215360920122734375976625596238850296107705044266925756265481227172015008520296484679344161761841052963524009108579143968107219435788788230286421290293674360994082572120383374532025700582196517798650254589307939852720139157242942072289695631734657168584746814690747052016252325067348312192941341334075560940836383337725590630361759501721265608183921702081775233445284467254277042424433868989882646124766077457772771993339705873470557751502117735469850370152839650834200679427691110231682636589041057574535295088711611151167864362968064850587155451863325503658906414646609027565064130576857168836937643528098498232737450789574456929239821357090190899518286986805949019529845974362446202364752362179466867494946997881240273307910530978722283327304824801568263502085388214273251958747907143146103370045423021375145452343175873975479989580634462876807772193888256544842506372271351958344987067720152187251799161852732580277065956192141819517507130868029788130830175062463458908775336608526655202808381660132600903783698732182758363383597470131293439566823950161216607534943712062887063607913580991451018646756176281653226103894705885666425628613592740062816047013411573304368964319011801324933365902070937675197504695618913170881748687533649131823873953953169954514875395794244263793312083694188674830173793917337530645749204996528166818485456894087468409994668150756621761271018667815381745940777146297879202753442678514934714587612288961048880993359554340279276795642872345406484538542141815777887255561524332850733707940172945705125940953943402267392353843035366647581169853005126923132399183167006464750725831669094572926818641522851369915151061716510796272737947099375919434434372055625434688580769754629652761831398631512483634430722830694525755758955080148409937012071654812893167454678127651151655338908432360205395924536097876608634622021190627312998358490564562961336038392197582050127139619209842383623771425540409195135106293984942808177649554385373484847608202525474701351298966645481229506036463099506324655739568343427110576529697524345562906521018782072984904781669703432674101869787850742530490649340007180958310509875337865420278442241501890949170716665419996454877707903380000860859014883659130837005141439766831720119290608149785051898374171044247405128399708712595599957152522659607594476315102291351888469946797611343544825690694108306230358986563528268138550810311236110779425557608288467679681454591048216247092279482945599109739644002737315675668481759298322351878471076150205441016846959805001781934917543535855185169126387114027592659554675999521479473287589904443107307826279183903240240390799936669894850133488039325128404577147643289531972191270683817924506056060986055230385080974179715545403818026084857606946212737391450008837837678979897610820469712426680816972432830120846417001258912299878438823848038920010079242698032361143006369944071938419164502302386000543928780786587764998440960780279353160281405993740463497652555740767815742757462647944829235548804459878869761805041792637206211502977837384674859115981970113646718317034628260215754773064495711910893782167268873437174149024595090958140651034711252081715521813539126063179115843901248768664560228007163918748307257654817009933434547116266034335722979255753422858435930403730232902965433569839101980816667826116749124389451789736886072425116454447173316770102701205580388303115990665075368813223815667678356039679626719172252669893973902666185430953460122806533183250289685250951246573598328799726744789382377676645559890908792005704703011435736787820184073034276219326884578171283351198225430296389493864798802025288725326584916522934339301995547164804579187261629475638053763509391143885528766278511297631631590875954511130697412937082155412575675665645458687800729686870913264053477095034874914302502881568005418129739470832292559109486888899294630226075213397947766498341030531127995814859683166953731602786272986044069071197780946258223336987473645612647235825159684570399642414555770685234090262313635213810144779477147675997125959532844328569297009339246296870867194970317415190839723815381403969209511158891948217135112664291083739834715430081237849290188435911552736119899324164705617646858118206839085961586673719267660188026463156471254017884728713675217659741655474334525147156659314093696015795245394110812139209718217106671143860970584333666748662755680916365237012984050539155969715703192213999218438275045580956153322175868646817925647776820639432070675989504690745109054887415558668783415108881955707512572764804794064017023297872150394543648330352974833273539971659122223482793137977866041641286336225757346769276792609188556181978780170546746104515005494734939132430002241373528853318902011291324972037245622277623775972058587572457300878214514565847118171746683190519572059132195991234951420105931585167263508675389555293390840951782160054090610822841636765963024195665484274033614523981525544233620753007709736001603878327813301768920369847750900368762238796917612596478616747878572996518478949008804231262087435119999274721821452252045544041432822134885293488122043727683684331924139137289010325507332379602198945977750459452144410713705596446786332274809889067097648133138160820202942579786796817327032921024116796299887582714583638384169893763368687093755784944276444953713210317073298914676792905164307278811034310501275979832155936163200739511308542811199835948386423225539558234080197455472899515996925482615217953170652477577928226203480521541945003091186539359307047938917068920256107460549500895881583977983707666673323641992252347488173265304563336492650729297043534664766411559844030665139237012944534534315866363688057269213267210421885503903216854367180110431572952708275807424650788042621513738894131798870184463430850752290660773642221729200318262954256482723949594190988406927427371042260037420884500888034722105283888634556976500558715073904358354686435657910077431606143501269597351945424123579899153640498056424262207520963561026941454631700368234058210078488988251878428739371851084732643270022700169411206530315730901097563741099215427028384668437476485420638869503472868707840801182394902019620255514404729084998514612204369870589365378382913162672855015544473859064960492017510741596059644099622538537601112192530776629924392587766109673064998357258188236143208020700255558678264107582156500768885728510158376253937962423550402283964564432270646895154518665493084382545848705101194541570700261504559464733853832209166055232271344641128233516254459700029224446999857602044799899198214503053223645638421992910073660536861400498347412428395575880864838493115718099961164095632736878369608502415722996007615296710898140812735239317348246828317750535759656441045536725336614229620953325660626599266243057149564835315209241928648740022012836314116264565628971912274382889616242283657161881833012982399473563490405167697900857234702128343022352886589519152414294625645756594280004971694832365292380340820967534559183710232934411315125805260542254982244718342461560319444200006707074856527360416578198784209144670000655916067358965043848581369812829875264139764271065582563991219826080311030139616259151520560775626344231052078445118214690367799456285514679914487721163155331307313489752134166209964186529591687952355935089426574418340191094846294306508528440020380516221817648498906447835995398225336215360579118585988519708591926075976618080341740605763230225870726465878917200934664944027544695786149035653977339543370714543841859005243585439291764108840579940433422729018425137907414543893613993578484247418346100381521505097907418560280824804156409317590141865662363655758420743923551887309970728785140454197180242654556905153935097025209031475413213999687610422018225379190916848899662492907754068121256763300552023500559358506064089698544448607159941568919966493438864077112699206644519596917576222443713122528993859068915910653485173452328596611837084056216889100546134856482968986272996187802722222011523147166301399903745337287756899424890353464754998307328190192828722276117637081845957762846405636631783787578503886805505079192770228979245268689577614268781222937865452053397875853674631803745009090203527451581855062411261173156518248701216163346172493059877360459260807933267362485271352954678240025831393592737281985215603376417029336484038725959046708014826317782352602297827779036045800950146670123500330213551253663126639405002997532747271000234421542826772085269648898316151147497430703833842944739313064857872535256745975086905077200716443572435398289814519999465977907002304594232229246258652446174130735667506645079776221863237865621079818221862173620604273232572980208823277963263578373723027077827128357046984044996118765922096795004630276201469031849948373461177210007352195343910028393610374801888494351759353494075816448375141305182519069080413993316648785496609844373702641400665596458412549643718251924091195742280472417167162555460848956058002919545385321907399306055251184031960824659940754593687461482306353772678199611033301994759736745766651728588109112098537332390568879581339119508642106697507446952919069307274469194625654234830201807988834949798098527334232445260541789495627860064048766320480466810314811446590139261435780221004599556105133007404813141570674034185599449645948099976374631693269067323967298632791590447981100342143228789110916037934920013568414370985715912256671205426136998365930724921735189212455787308464865329622056592654270184721012132564297245494108407709965611904565154817560770726158563751917841707110256382562845063794767425677647403541810986653239629494682182393608271356355542480894740349090394363293081569916131223995093557377124282354498312440675232406479869594957982855749470024618238126584340875325344299019094692099057442793595153842624341717300794792106337135539355880654041974538370474798117285616980097718363511098836406065304105542550491852981510675684261507019075905738696753691717600330771759413026994269962654938418259963928001234039813765959324556354293151512041094089354263045576297787406161563592438690925676408860640662613575049019879615071266032237984393482753040508686735144327250159660100912180061480797500297335084054731708230391477811262810030731296469995248345208803715469953165976326476147642923892120521984626675902938283691057575493996830347300119400325478386103138956327960076586364449079202639152304875805628874548030946664893887446811691478792311423695697102169332165753455841148423270781351695347483379015660703363123560060451288261169919702117447599303458209357103164814717893312093576229850596720608180690691769660855125245983359143913959727878211237838215843599458537243085863387877562718762902922227762322197818989186058578169567613758338624049984798706205575047243505148657562840820810592218648899991703658427821351347841871883263121407498202878177692995168315691718554112133922868062594111757508278473362223037232652240901925325093770920043446615560574634170170467924580659546080775729631072643202034952795397579930341307342597591674666880575430418568062271975658628499240317653608845022412188811467449139959941107303927798369176488172241414855618239731601191942144181277677649453073465402516200230758738934354656568958089399480828433696064312566423266418523961980142301633029868455761223398584750351407082013982791217405632417992602307261028937995464718404902892449912177483662466998707203508363479853583329010321860207677721803756487877919790533626413843517718254769876089777477444688534445134060816409603136214449738504003070510316211503717614891164509977334102005102063579946685064507261696695678892691883572091096143094031111181583745923775492536089836421417684988920300606398757729072190337350418802575482232670248172463221185022937640379895017095070920941851299617585387699882372560022234723729064796211313546907079862525957669056806315397537550638802204722122740854720399258382706459108194569195308742954635140609825338686423507651313696868069752452873070639124575485225690804879313509327869067569843116684048110084533849002801088943407724282956033294425588433888383112817285223457744992263504231982093181105248214004692270726925682335365792786675157343860283934378736684099921525887217730743441285835366849270354598775508822575201087880992907028462210537442058529222274402086136645987785892713692866241165622486717797689086770750467640687325191605027679648041502904734729813561716926008941608507784596171153110893472078219092104323139392988492721118393623343184769526663940467709944743557035017217011480302002004006136374945133932881248288606074799687889217996402095443250236255225306069350987857081068023058706748878951611109785657216363312490414701916444310887231806944099328913266568565286660271451890649406244505185316108145270384891466969352289952357125322600653327410206220358450378882458345836334982594068959074472682552073374263824880921547202112081201982839243391672520811171797913953914942154599339695526209272038552574023326800605896591424742802304061950598009175332161994749181548064130748509668049330199244826899083118826234446900896658943782818501448071273175829532553713284021868434215925646620714965611943615775311743778745320702912635724873529328885326746607891022556008255028345548179272418989949530747376509922495460955356493922499930443896784523118109337630301567243724456132129387764541028000543223992532955999368059059320342793725915693385939766241617746268964287192795561728210734053123896306314420692296444901644910415728453623759200143468259872439524125788684175796643216834005424289373346959992531445551464307424209288653496596198306975747032842783084825679219661768588558514590921517495369745153283707918177908897194337430337748794978995916727638654412786116987903232515390865379087914678765724533117379468817231874973419504723224228367805305168719117697389713090811694302684076795150128940887568083605510344650775588282954047783730277022939735157753430330779967467550124655430136771463800943684684896751687177612172748764871792271899008497395129772565219861146231318667114455579251996277907841782762742758669428103977582091832273013978866121856603876188307138320587455666322070666657088605964049453466263387848788997378791391364143154978195809273384478739051273405665834837622479136359213312321315298032997108104595009751961258651802216131725697323214781937192798109352892002498880633873504074627840924607590129829121687835560468281891315357304006387072367560040215696801559839528725249950632220460978389389306056094698967192962884824558889056072111514690778503909148782758555858269192345133854336090473777936254807886330367729958381693052554371248745698322572729173935819866521799452466603964333552385021514935509539069748763420586699448682488404404438914509826684981518434448181031927430850469553707064727561569532976317741097820940556682876672051313689580476476634324025895214480209748320432468632712913982557672096962082836963398202539065025686957016229260045653246315015669932316292725865486279219492488091107022107400590045133792741124696486055707521420795613169903957959046183982794097445412190195285464734449721386081421844726959853900591910518963006686343044414070356906494273766851540015696145835830840861475661964508295240129724334780504372038839111336575677129705715203021205336296711830852943328394607937566746478171243320087672504178973495627530719347274400375009010067787327986219090591697986131250490641425147948897301993093499618465967629697777681958113867670816666795443969197867818168501865704359853653452329429913437043952091760233570513413739225851259083501591774084423197137003712315460691280135282475030043035445724634163581916625381427871376846044828805139638343166467604773264725204767027339087276315704283463122277040051977758103127901207834175376326160446613494799982942408845894558727852479809377635172032892615641116092030808704962427306591667148147204591839453340073147067057186601363651388642429807784477854185233479340116206628261214809339194760144695524333422077428236257342247447997752468261896186932159023846113749963432653794114872819975508180838640324527722157944351533382547739462892393580328650729819143647337429520845343097486917001310783452169600143434715016462682600297768302940379998072942577098282749130361173664452469465644695202192691033254250198223997860356038441510984993117251223041634403056892541147154563656789582836986233888870883695949094290331239010726719110889794620039379579355147539679975652715666100107252870246245039417263504443507491929390213808007454116413489136945008680929229922510816968613502768864720151506743074122246269278214864734680851626905963376248775179553692517674923064765351207515263156680692110054813162512119920412543044666091347769093190862248317052097442782069672263267997435565072937876967050948641202355956781576926685844361175149203461712432081756495999816715360056353514387230780750319715121546374770534068836992733709003321134240246170223462145314890259012281356711882235045242096845118399660968792741314626975346346533181374711055914620068368811430232106928027022022224055953283560811249748727901258421660212557541915201017775673538177704692143530570676955692817540370282205439766397476260937840858085472412858904768500770877655386884548063898502986738927837683779285008140895369107786146879663531363010903768618974187831094270714995901108075277283803752296923107953633868908644153161359495284512530139666279335598369295286326715127668015029558943981181309462067261242246170170387412542118762917683023287564234007472790300109349514932938473985146966799106969250367662806233029455484676840159370925310199039294213557219608686676728067509618989855163066028842825647394618378081794103749705300936562204465464288482720064177992341910698549448395231691432312419948795034464804007387973048051384659814976770967375368505689815986098011213557243094088390275379719584749522345140460706140829211287105990654918128987922134119609162995304672351354567565190503327557890249797805087531071725157021279422583519314693596930097300485094544899996339242587282144769160087506546267089961813755040622349893569530557826976585726380867158515052865074095579760518248454462277545910467334311907479731152839351527324267393831927859192333569832451192830684539559226793198375558879697319034553550089364158846525887138658587927335176140939299944024973960028884413929380280711444107144651974793419545620933088181423763512031150228807652587733347144420771407901813664612828082808236446723784492940985002005663109818338407173334966434931532310062431761838651720855294369200082349608423588396905145645124916003853744740482564026102276472718492894735113641156628280705624120534302143544194992821644587495169023969144062751021260455539457065364260172927609207137600886254258291913148931144070014216384532285389824039340015490035361830798048419341959858101670659724171298461237102501815975331496483392415929648871098410713055616944656532525207283917632227054858138895121907678798021567148889413261585874236550819773916859421632926678843858821048246873845242031198280156841180311309018463249171265871835738685459373047501578863102060020056102507222960163085953418587037075925283276084318880726322419046976963457699838064687711318947696140215840594409911772426550567208612814036893005701618586360030910683076254209095942808731967845569935475258136840942432396252734911366562106181897245946249572547515665523611882718451986485276778014060491683718449439756894742867719471614680656178364064752495724546626582502007509647596181941263505067720885886319591449150450133222153891732969169085376318710134466326970036776880447797824779363605326221198859721111709242329899426424661305697327662789230409170396716417160618400009790141890754449726174160006511583217122954711418995165517550065127919911446670903334121855606132777411206316155151902865439475511206807998404039477427620067000509714895643365496438430677488341126816851713087831301171847420918632331472379303455916682931088530742954833669602015413115799911057970632656458084933547469950795918626666424584332351764835729500652923852005077976323425750908146842731680901264003945091328010127999972278724359438055256653574359217229643964275147814799995979568179070563718139290515658873936292512306689588519504694491499142146424583350100469549910852771505910323060876396182777737136265087147075550681466466125064219427902501964683070918647056798509383009908421133164120684080928291368280480983357883773722302439068447340298223295492930448599108015264387471797897291582748129406857367306546736039016828898073007954723447036956504409289604735298657952197769882826789957081916183363096761889866607791294616249771445650098174864512935416542853140786426125795551715130273067384108042400330240568048411780684174038570612900368281282664483761770332164908544199199677915923139274923738953279302829716167201779588370526657796251870765621343886581376942517590850029347309273491765140123454159966019837281817186818134176052303398202977593866970173568001356667491735852478610454729281382656739530286276464414652396094215467596061977994859736912879525856637166203404417743024948535720297647969676320372453698907409333151139616038425679672369281064347728307618977490837413007091055075889870172918604060774438250379562603185514836097612016081392922474887202480176235448976401964637558661034629945111364970504183835074522892267331934993804136064778818238109961642163456647804912018680953302954552938782107502251297799957485450752745774965326843964696543046477905506847787819003926995933195512938840015466827706541200118493387930675469815189733739716478648528832820099138998168640400756500247023302054818642087818600925748222538199967194011430795725440087278414883775398114146939851530126331782468129361471492407970933737529678070922136997572842348168877286901955332642243753803386741518166972584280959634756021639717444139157596992980186464715599441557689887060959813592306669434083829998634416051996280538544715614765204280824771715507207099393558786156006075300199954034879972633074804900162357759080260236858000266249857700382417186998072447408629977035083744685840054883572080040579185593521383897064684929770360140651556034876057050886629024113046030528339892301978559511672966056773554815449653167213771610487915091301976751951844307896627655530416294350655447539607235336311356785616462947609238507086024545062208551814031101353148772012357147750704464663209937353207561357015644452331369481951777118251676457751710857937340026086068957456503951916016209762098523875187037790792717383988962167045339408393790994240951164543409101089936061947792646305876099535914744758633472804842850516142590744336471951381117982632044666577193557680188538129943521768611818496603920256388999024563483077460619867557867551230945269231751903665685615627817626359115814559785865229577875907037467182998722100142903699072939199273999378030637353410895089929293154360950172419728458748278810397933264911639258173009220258309994414269131011653146024608751525655395587713371841160475870985507155184727240174539793534855096344431860620891284377775644423034984730100075528606527036412284745486864711048458644330627745480311825770745624939973542137516627364431944936676904950044284383221926871903017586705354490490767962961782376894760035070360361082910756308948786269303290347644755653048256159552615800026169442273388385529908333271914476653281652216424075257358617692825142484563675165147037529896408622733783564438495307149383774649254105437039918964172436802488863273437115956791683948395621813096833054477250907904795595533289401472245917593999154909606113947281024306565890230325512188644715830607349155426445849206805994316516185072354448079151563117120672663569171997133249625818028949608217003537539735786629368260953300034734639916772987496541113210795575707636588623628675742826695101281504122860993297266069686679013177265181222864478695311411990931305192592814994348838597316604787428958654267897426484252914007338124531442314361065333001824368859551943167278818773055248317287294121563765539682946549210312665042108254527005342335115771812174028332659199815778346677505955746290425738752597696644017509463373765197305028900060252944104256163249843815526568200259516853032460913099964991952432934890005635399925762371873180608009494415957842591276914041611825863821893033655803816925590065550134810379355305242951096928899689782266190821720425057063128515577530509341174902943284742015491429280161866249005652173732373922471485895685395956508381548626230073999647782536136849680444270578172312544654850510695498151891443187460437544691500414663345142990607777762377907915685485197302204853024959350026922038771159809093289351980743000471177264924237321046669206550282235256604162298663394877224348063915144455196345000121899491322295292856046448281919371560285315385098670482063924795771115663318294404775333383597764457244236464718709563326156918581802478285871363676657565973765558684651095175246961195295741621494764683533187989831644764821479555884055830454357557204141220667589883439910547275958685398728302983668755731874438395571330068478401473239186334865603853205643299970675017320431890185425799204475543428517291584225903448987667908380395832465047844415924574990176600291789819257227993136342374930930176667517290533690705928772489071927837688066858218818516169777263735782171524173899836507868846609505602157678559328900098198157187243897360193050196297458158326118894519940807949809591055882973418788337765446003051992838144541994208388323095163791273607685245600532150988325124470576178135298219626191023463418335943979466497987991527175041103956116809858728414140281810709088485534630002333420282050902633446218648581413718557189778284801516804508048567761446011333140953533215233643964773145379766084353547118450510456420599681291940044576174445258654796110046506459089975898564575535534522160936019603172168261336129268533683829237813860422746173447532746111586194640569424581034133268526027477914805130532389582349026355829647908555771965121267147368483860814495840491079237742678200034609036561492304112918607424774463651163786960709923807788111739531931436657755625542130735297714987926957886083745905428239841414419965504444809374338473700618135583847381790491836698439949052595370328214477520285329636876708725153432199457517432330365465025017672623615141076430033363786982851366749701657534349210680390183385773934054626629468660448586574352597797080088163031353362848694464519103559000316947267155410014798062178110251226055156935226105486323608373246853993254943362006666057223754741534903819506775415842946420075977132973739253807440922330135162324839848667287973731576535059254348851709872822707299568839908607027359869824680253182503045070611840195176830236059811829629706118726519137443702530800315447349427016856695564427026774489314674030387764937377301549500130829329037920540366636083699659834030791760713604152526873486768298520409158233077986053589506570993806255415441690255840838441790878396294152947430889321387772464477904485633717802393650918210526967501338962368509672114798308018373516484716607331740699688036567595326666300559951935878681198104504577493482529148601543718687050480651566250242964166070948659764417253720585510070224041448019673488603599334612436074306352633675520470901868624682753412953227053650767325924227109149839032651306991068539148026754555122542532947557272407287435767314018350320345143923504877344787303252460107384840038691470348080350771435221457597233060354806313123234522406335671568798257562293846289043568290683317340463760123146182169403368352136126226927950855514352760734511665228719114990886566703994440822505156067462106462257281950201258890065077709640724626834102704302525490968624564512770398260214054455409337666258643237080800134768030654412085141144819025715336793149884273181523908190433645175968973663603973913904570331876855952925930281327297344592467514963764244600644549585356949402070806659396392448157528360299466625660562729096902769193400657528965132226459056105505963082479889004822320618265969373369156818676655441696506670982232288380548881498297880841976241034350912578098409112048757348063673529789114204953230878644239533961936850610908746480544929154088406189916494690087148988745383915055644096315941540534075890401669806181556868273532657678802516126451560017196581466982768820488233123621087665887193286874825816929614698423399404365133134590378923920987976482330398675277610373050500510250948167188903420070943715200019925710286950574236300938624483512094034439750007872514330282617520993923287625363962133725211788389380746311619137510318297327037470570051304816006652557746014002830981045418488877590477103170090861133244379917234197759315070598997282451431510942350541139716140821506062084941043032105087412003319795182468756724817842970698615258180363377419807132195398608985275114605083290463865321718690233764519237292874596507312097526783951626111487714210646711428040621678503741850501568584154743303201473917261397795574231402738624427954983369013114266776446316714422326439297873964803895146459473765019564692036709759596047364393970052330643968396781359369101509284413439513634518178081225205158183916742445691145615184258728226262371978145715361208289285949399839273273625988157003387506964669146485360042881912366472323978326994489542635337032894070810495461332581191940738933690831262222272679727240712574044419386413722436460025454428606059535260904079051767278521784870563002004863684327263369892992582425207763444903638163579943336675303672392899704135950292173981551477910951021519481766697725402398790913912397162042185402805154508733328417702001804006847577858213857276683818230710047453005139139667716341306846389704882211117330337891046685700506116338365517710330952377858373682588581561493590356344396615051617659058390060840420221784948809638987742061119872596341489814894850682537496220161689151332305430100742745867895743003847994242185002188956372058780559518499748421767468643675436697489802127870638082382460072192174671962449318377002421176012310579561143050248487724452807210827378608253930922575465609758232443911916706760808513538640881874978514734826761835172048385846943603855492604597682529008518600935800180777004671628952498382276819169232922537939142186998550798886072679608622812833220176771217948864207778983279777751697813331232099637965603366861664865610547336462901383745545144356489624776408248314464339101850244064471948525720138876878300104477326958210877235272001106010483470930900990598518246218184425433035562808550083560402087756845383897745312486058528150281771683301576713280687872391095257700346591679009673900302250802058661917169523769110122112471142310540935558528536471363517498724369350569334738615747997631292958965267333373751888488026002820293562764577315306825910370964708297537913728399579248051866053916626676649592441954748728966620218401203946225011341880799419103111125228444671024580516907096231552663631623898145815131533836155572975118570719962112188717985381314193242745544442801424090451144033806615364809891502916939128661257109876061569591542922664401747924762369072245509900082796895047488592305271263346587638894530388959868846963948411219765905478433916513968654296761311525869659907649570571364299979687845385495978005613359745290983265601808454958791821559179646022964847233793727713098715190581560884053711886737896157633309380527887600550785704041875407070634338684112450828053771249043094420026745704022696397445917911540888380588361834671463648035951554374702378324099471845247722224971016511253799016888548116206331882714702631078046380074438074798499848283569671849385491563692664009015645799967101273253010398375941486678625491256140645360425655119230608084562418047555621891690372569657744144680941510618907861951128628718801282982813226199457545387492835436925706684958604115351439648893541225069203848090544026077291677802092511594512559180997663001278020376065270183054152557203319743179999298027747113743056955551659822841678942684649735230554403204571710240618342362833575417878408710702548331733396791296011706400252283863198848949893645707210454431506776960334516286709827009004833637240751763944002067842807553305741779604693373960389530669090915425475236550326867655760540413804262558730636374822550799207764849725049696592811365758565355607435970846158060378788180541284643786877059788843126564513799180512905994478164228258696246557614688476148935774184289241248051709167443497008110685036577659415573363361098571867434611732656232025830852906763976144748526954824929204198276006556579257207279115188903169773863796089163100617531201743283471415631847012532779548922436967271301440896586346030896854556566078784439188708853674239310107516826468692940407632032476582476539845470337298002385726816367464308548619864479015411607072537142242217756734597869633016003589793298639050275220656022570522877273115619123738703009151732022748103274307457479194946352552533589945698107984231069889529288891592308227165049543689880703236719477407867374142756976764142138886986075417133469259008647621128949630790136787469492672586917588543016642690893298169502980942218290377936093380354078398300649807766183225344446105719477254695037052834166381963394826783035631306978892182674559282895085778554630999352049304816798961538107852255431956750004667185735438004472690554083827903095481579924843258767887479166015874788243190959656141081025521914511971825615402062385888876187619147277497152268757735181824022809172523646449870295128225323110895031221788590107870128295815224684376599632633121771698412924846689663888305417762872607841409651809528122002278385749566125869351267299313361111727596648951553723626624813453868356713686192739424422570624860682710788101034490838780018840222147986037693779808132338493698702774868290070083500937429304411149055279242577793985742645432999319441015788815447939443872313233494213841430152241438122584690853060865702644311780041392024589904156252028006002240597004472134282184325614165050574066651497217305092429889397924349645109720269738907375450330197311047839788156916648393101692386719277358052338509733767073648501294082694113124178838845051927793559231593819210905341892884942676604469758966453428201949747326908392955577386784022243279697887145437015664198896618245989675166097288069391278120857298977368125971189504501099013173632809763634338901588645249713202903176514601751403977809268521097532689923819857423946419065085060581389666233947168140618842386662694254338570832811061038230117752723938800831127515150684500415215299506472996816981811326884513276638165161636266057834818686447499614754097992428283137816834911865813183456538966442614140388287727827262808108586778475321261416036288490579057013020545376997723091423774803546847281734702283485462965917660577843037885751985391808164778238431435140596183792565835037318111334313001873751292868576084296238133305714598114650148090163255928507947033009581577682111324279207691760183224036444439011418881708298634760146645299843559058599750788702415258068852420529180001954670956604746412280321052959406336150599977001077088955036483888957636120557134035917987358937124465629334736918563365323269647502471859585614339289238434746382567732266927592730061306345323047232260888672561703617602925457249410236310156391056895270907387628022190054811318985525734027716668777166144725887500151759258326905371188133051009177809599836754450761274400881095583889237859633670216348193101224472975717385908508184951152246321054126546637491545913476548696484330907341255056400379852269268301140975428992237343827963801117508782797811882087020228221190091775080561337540857273393109206363045614230415631199157231034427151975129265512845129892610577861275669210599747039695953255159849765305806660479779302934543263607314921824181301764030252120240643280482255947541765648694114859574168636115573032122225853115406011400819566408065536406321076734284729449272593060415079187959255519406136768195794265276337775826204857326705763295262317968457948527192070871277466840692824843443938415193557629237132175641062704413168370194740149689735129627493993283563958796367349986089453825954706472938071487029005045950804296303555483908243370880712588792762026445432638045134424576525742344454305275891557292802716519666215506681749554390549404966644367482125926722581828209390423255984713566271416081792155448834717539701433582071139030777241679137074480339769982660099341282881662511865320413837702719722023559707754373050737675609973765354556818257864673614740984738061327016738319630329779869182068427210471165417185125397357967550386171510999325727652770059561663678346181982121275392032903359370322988321454735166485282930682065358537214888034740688982415360138295283682097559509626079535463705463067917865004693673823497425962498860181304954378548783084275525521147227773245857202615390621479459577382441422806862733812058325472326047842634742711848085161245152808031578485050262371677093959893808417167478859234992038973910283933313561293849764524840730124582815138417858699174157121855235061130899872072629428477535741578591819694430092400055115437267092948234362569749679661183338230028953090688589067081733647008254367132167878333024654945774623582217104273407635814694502901566916621607299529619812894175349147189586749568162093998965053276762835938781344866406231054948135007596975978135811940183099625532569829907595946578239515619764026288013169129852618761278751915355261176835259850045869865196647913672988433653776933898866641072826702999462581869239541873350148885344091447797214889395008503533874399166200147699501338781954735116637574743709401752450944969390441180060258425470012323654532811415663006623312012920673245095013753022508457735985225861094514094420511263298904078993513914246400230185914812308776753031289408178019598089519120861710410344615986314640288093976642419149969827953122051935164279007539267502825817357894612968295594887185320423299345104008201730829833722003188393156656409803009949134501180960230841741156170805235596471246209792119459751954818949068044360360239374887205240405884682009213275122715210837996206422066717855407098213587403471848681852466221022513910728870134017411162687778062574670832999156880716713600986016994604701689949272128951877204040114249858065044250591565426846460866807873912954749995906767057457422007738835891829961789577338784155971215084953427608700721652320198735921011963853298244194646858521829376262661426338895261008645572343728199524733654360516166949431421004631125254551960785517599038126298198378707212686822681235567842687165135481622367186124092222159782790749152120941160029115655142915253194208948023300914431512353614610338025319822974898179379280479144686788167636997518157324746717199446980815077861125595419434834359063011866929241629421296611138999514547264543114943040069092314106194125681046792650228382794472843926254441496858782072185596670125718764360246985160378899569469717878889607089266565528044732614706406687976643749993874509965496334782662710310659082177461726924240894938224735579230822865902105967853253890545615632940346348295210903358818548212508010915974131823637243700538159154244509849553541338494205971377461026711738555896575165313294827754264437949160328926398675672441722524625681540260212308957916140464458511059719039736964267892818014672871699595632663337681917440209047941931064049711505555507021906873261150363039041119148245172269987877213925775820516001116098980085213355594435891936118573160154021153713084826574423370716767921516518366370896093520814877190526295586794994083706385875149503541222546035113580941460370585185616965361228441712813176487761966030527217465602256864752376011055352354577792784745946813131410394825505665512972930883451186955028017775578508589047913705008877938872528749103873016513691015658230775692155858730517252874447381991198330854100682249498100369916830685257737559631506799292232119517254429532097995493224292520270246396889131407280167407285149090237810835393147880318385593400998806766531605374568006367073373496785859512192702588266314504645498239943003252155486726873420820696424777621789862421649717239922761477336688338367622764213594840955689693472404971067566479796996332090821258467541540412814675787402963387031287372205529592813437644966535789096882191063596752410680685113933164877220449029308613314394153198042872253400589039065107886774743091937596733352055147530222241643058497441354391810045797818421090561031630657409038020532031095033255622446875418866958316480685325027280359289677124088442923777138931543469486126782136807496370769206089019986596115479542302059286063127783442371070821925427064010760143155819100161456573361354515975843741566108291206190973648833052500328215106641851753700970635868648109379923488498949026932826942163339629056910609908498601895253794990879950711960230496180633284302425859826787287100917025763789950157309998397766050055876877352111717843669514415527077472122723010185497003868877902785414651847702129304313636495459575928513256937132470794597354861032491748981268819300923586546768198795250281150543031938791906984819067193817966880844225556212915367031916242267873744971014638237188886017989536857373976988645142350077552115415731521394930738716129729344929341352348611635042542555769265604519385879255583355869216798084311699628822391834112677146123142748623536555270780258452635104712634055250746318501387073760419917801047971604860129982895785916224841658142548170980658861227047473579918871548713051106495161867415485998829665183835505926791429288773273258181586087970458052280191206402041775492300867176689140407500509260099127805735937291895807752594618401860613890723511074395228342983390783201709033479643609338029880080335087191734112175751473284920580643486775174780426276788112860806246641033912063988952606684450003085942167306497187385446277085247342417769508642484218586655854352090114851829980141270848602964449939504832643454958479659293039975830058624115220102741723329805009570603333236760333740095798478213031336877844591748435668767890255938034088935578076482036563288562733647326993800284965249177312526859743943202067555959392118805991889499047787552357018802507039557931603274528609024539359812378376423903309707259467904764865076850583545775041142523569171285426520377353921089916493318811728797981939366555555874663651988224232274928069493485272534832741301363483259381439877695720592596124200136061378651517322158188424917801259613896247364509956059488998842339937749850028811151059807688308971162388937178592754443068669533381732635710804437728762827059922058418029002816176615385190174795327447514115300629869091855829635465508303996707753664945903179925278628671276708998209969418064179069006472888112236345049458522195064686137801698461100220762831161960797905832068857880485785115058322470738132797311818755919522909608665506857274612407779508089723483658088615140823778463857570745704765524847366296413853571933292365396249486329703631076533361085795762730457297569691006359250037956530592954519666609838989031906175884943214476360867578440537256721348288534608856858891306744353364826140317960978087990741415931655932422267237908662209199545854926489803189505275553734767731503621237041326460660893368291912273736035861504901989910773390915794853335051178470969983346805742605686415298180333548313312431611866567664064849076889059676015322375618873556454249811032422545415894510872098474833265466388282504131458488254571787757646982207069238213320773548117367535818532553742749811499844911062146665089816292351392649411499695301247410819685996243832388671174843459935773573452928511741956575016048648744453775735414524016287825693769515710927041342312171021075037732148615360420723865927357751894478576303493731519873118266556033723634176922959738228410012858298660744727681350786663047138141363927965997014929801791214768917798297680503465917502942153586999954499726193982689624109226208343066560821874529558493908804739619401209123888624322683421951844868439024084091830981220341500531333028880791624005304359721136971654918485186493217416599547469341988841882152108393015076848819000805778226184940831833048997535558265441377465501609017457524354866510496416233412211834739811443545787517784802483882984351907936552921875176998774830237597189927855841895966276061717377384791468362733426852733830063688478269072923874417371433816849870063448193237708804077285900157012443589218367986886260320509544449706172081607751452619169882280017437271960601833829986075178796729946795914387650977909661490242108950407596849064139436972859489209610461919312318558329651287441658303174648989754668650265213757365705811391277814816860171589051761603063707995426899456773082003128723325453427905322791671805132006156944448998755938474482311808417519200804822510455273667613198816092493021333727151309964497817280383354899535761088532766120687570197335961465186771758908355184884435220921203270355273135683339143109455088029550821872360616832787849781001692950828798754748426966149199856764494381719014718650763550922365492730194912131591025984904699101896369668532032936551667111053255504626078489760355216898622094853705151813120763889352193098852598654733700166670536444493600094988201765542359356430737144439131257157782836748833003330174085730861190719454610960215459310125829846316737761506071728163021096228094962825593050416986114904408206682335852947319380935916349007174199838803077825375288732193634119859456528319340079615381371504188768245781327632252602997322954073405350026213122486204168661665620724727974322331762189261600103530389224628491179390016649683663137785679756232288016092066145473994850772963383893670123625824209674140574909732563344503701964498253593615607626330313663751043972887986779245061216833201307978061098540925680662579503264600547050949858764259104770004206759174003376182247108904269248328985496421113810453811094687760469519652288182936856212848070372527863906471267027669585800745551154253646186459289445822477066929982900105161218071863706641375344664646006521493646246734238702715688332896313343304799378656194655434979319227639796889622531635141178947280145013890739365317293828514202086814353242598112837599727818897172100667997600712164559045284979068965556367936416652869058675553173031542714964442511464977195002375155975723251041109734397231011519362820089372918301861998966393551534655939625963355233930127507875627317845546704942648653748211525750872172943657056866810475299439126723965991726704701049708409244029953916328239001306172006038413742626864038927120627909141551462154935130373981769673290822337083384653861948287201094828104345433302802589574150370571389982642538138403022353969794576767410611517984785716986380995220962146309853754267411721193271891658398014229102442972199524651332792636201391401115078484944644733082293443503916751604032522278574040693025429017671137640328208395618985486441179154103018027358206573390158967677609470312763802445958290822565929928156393423689102635900819136433647475188069453228627778119428293740433074263149745264835014045084989488346752644715027724251813965964953493144490857072311327209943300475610543724787670853387026389938293862621472455497337670099902455782991879721259918926241888106314974364206530695723129627579556367080260877899014308972913311759803729644397968907975848988492675556945067136749116114471104336719852175910987922417457025867551265184046923312216333133936710949034659808982254113281757827841536952153717648123830082116043226669470415005613724347399181877065544963034148208069490309704360557452723218480502259735986782189706240821692836139942625828231806714355145346314641028709099107346335321936409346223678038207442145560803210288393345894547929682127363273128883309256209155528999832537773777842859334820907202925423245023887816215169102161859997359940465206341616672718858645065444836922480257728706993114565143326627759538260656025340333924841209233217637055700237202420291617058794220845347676162849265387116226443782458849600080279182545061387090117597252473098276046114859070767403696955965887423816049796791997493765292315911963215736460091079201787464594726367042022553112918776298318413547865852772139172660374905413401078511547303963830569132699812646607685837323626461923644333630476656169896362161479279545305574970613829312782768471865378107168581744466687156595773568092043900802311624380330593013699434743868953632109848316104842448878581664025630212534468519978079980293712080849369372847972977860581144081868426712796397340672110382124963373761928516431184331684418171202175068040639181605372630908299847465712748292149781901548888164037869887536017816170125311707908109112153100636667987655881979441080976364381275808077081403295021187148778434708966127769990707463717536578642868950338253614314056796419866755708469573997875758389103504328671008759880504787325420026632826138940434251345307667224334409050075811710373083914150197361724848700785481399962958014231229257480936866550738712432358563407706367052028993942583352102409352023339615198536180129572736531581661610961047192612761358914730649058441968797094647254676240495319571676239611662286261674236734877745355893910300715959585765262776116036350570899849613238634241760731630139000574231285985811884981445333749697981221913057144839247106925711157904546511019741992394947740932812170834893775147560116357080954778369865792814752414216818087608034831136827546821910165322829550008509412431787607885278435757783381352977471105418619879424507565654710693425589032867716370869653052864877892431696716205517769401448344132436023293054530254996178452252922857232953044855510816052991147036868495847023376560841022319420442141549523101628429977091705828318307177912613249921417536606677699312993620932375376318168037798220420869935147469657644016071802245319330668412155250937117146590254060768367651590458279626860843460594661340461779446099030542652237922993953966334362379944822051224248647566191999767837036321566601810456017690358829948775299457805151295724952557121085156247375506424608327241075806879514881152068453189128408917050067583604141303781712140031576339841020037906083721708178310153856441562260981450299853490442280335371859331079302743197851919502209182605280079871272351686070485083038188162420777396856635074608052806853665552287545813837508184047707581819139255944110556478705090385428540458439428629692603183459116860535202937718658279559489683411810876186302784118310754258305307265552630745704192986113440325834875416622337935524861106228671941909548621368617350193296149373558125379911026731154826487478962597095292319531458437729140246301813963762263428612237763488685872076276620310859474746384561418564745639559796985947375892687690639448242155559539601932202064899418674968092384018758515542867447626366940275905470492373188807572971902618131514381674695997612859149256417353673611767620591347454898562270299678772372378824339570829246428343984830374580845092043542760034455952260477768745102241713265498181503622888634035399476784581131680124760474530167028458038812853895497271804707941885673004548759924471582124707086877737209416002417988899698556197492873735571563613175869974062397833438338719067471757244758071124977133701915259480260995160616648462125400865531837799744384634088722744549262364850441168641936813515201368086780763900296654958027259966457948566436379497678540718824028644572715164629317221673494188118924850715539785077924455550579203324719710975374307676487732112339766198306253260869594119717560509081068320220613933063548824971084570747970522137248340474921792258652193529867065568984721130164186654654529405149801731875795168109539562852541685497184897574413735506867302728100152263308533072902234223538661595820327654292533652774350760848458029785573129916318476524185060275468169328585745335689691962011584189597627976394628021598653207123009414772921653556920573389863587602671948186275339129708998457938604072693830045961490226583762668493350091697497732188002699557449563140220660113167628363484878342621276744015436508379897470032232392104083717069311908691537119568552601591861773761999263390786674517677179765393692332393778653604847461751831061496458691407448329392407913714345614530495827960958767987855993756258592603020110503458438218052726649638153827568251796373084173698284250345716013929329427735684825875714133968485277577129734552092916340256832058849717396491851805478017220158199393771347378101869818045132955317940986637380751410574016060029809627447743357942898301848704505793852586927579495129646154910849371343910898674916879763346607655281307563703584436740013467151516970240906045327934712654129214250782458741627893172260649333605864089706277463680930609670565446435476474252903004952455126990771284847733889337119743221146184322713883399950978580499976311813052034232303484849904590498555541708327261370848396310417607881069335928910953585058723995234520441429329132424758290069098711791224113503289007295046041626843085057200537350885217783681140491374071088252417142758306141598677461434915762318230532245004463533529339405258806790539629600856866648633215838343845349390257528035161467212355204946516791664202238232828176272801042591774208693254008211082622119083996457725080765846615182773511731669734349965059798323299169281701828638120418883670846359795478211029647470087779124829145126398309731157175308356986286101831703944659755864661534093294134921778512527281344575205154531407734549163406187132202896115263953430699542154341564360147051734328154923357133015163489116606267221476179365377418819803703302987381748527007740252298727040114242840345858217440626799420128981807485894767185393104698718132698253843674447357756844574663003143242230106708286865465424617128415253995973585982419296739838124004767496185682566775401539494245766168835465031401412758059216422626213342184827003486328005258396707469908616130448055066589315312287750104265601958685632210540065250453608239169065622144009625732777253075180476451794348810723144452615684887303378390281848332568031282614278679346829288249505344086550135992099815186537865934727989639581277949534996400718084191795878539238075701676889937221960885851887455179319286171661755969565061547711450972598646592975937724220712861109553149136901368369294721060535742325018665308525143709655351833452003934387671840507682421365486436202270496142192747002062471129212803108204323590728136550163005725638154729278404551038291366766172741523543666076335402180131451685130016189129739290940739079053673459498804854058561066911862175256695457030613072987378507018922853429133383827481208248597293888952925586892649160715225839204784393115436664046587103135546091626686311924039440132279090202439466530206784976574155748569184436356653466982340029724598902429147520416677289050377871084778149893995637240821027415036875545003222363705374051188138361467953888083035760533767794601018604741496933731770849530411323668314012032506558331144233900941383566223638844369813153933729496002177031159716486657033535396721033662753118771048649634726705887848480424544166445134493144178315924422696203486017909444410756904162862293073763270432461430952320042959141380888452347789687446730156748759160546802129200230765702098874332710967141584451415892890372900911650745934515857772964245814057701556929853271586010691873737465599968806056695070112175660129481563253637763197193057526619236625677538846678255998708642868954603379225425320103204689353724042679862519642992951017959713532419132891489697633460971004716555678678765198835307022418003508969415716650660721525170398612976010431768982531683685125334969886449368397980016417855718609947479518471642888180067318819679290149825760879587871791217762355977452662489683337339684338086819295938960465040927624067186252221960823937317188310288380690026891770417308166463429825486965945605734031927505348891058296732280990219882558745351691613486713015125196607338976999861340626309191386520675655067928880935935203623932255558270929112244642815933876594160146926601437049153187037393120802944779106977682577486941526618721857562041488207014020092240316135769745732588894399701611191094229393630756161511619021992027830803755883168997492170831305918620430292899749415869359849974618343582522166559491025485886739589399242493060942172996389382170130811173357386373371512485965549653182141247127938545545498684790550172173224037308852741310720758466968240299856476988761590975208495512317737879655777394759751678912142012973127879827787484550170447901416988192619058640095730905095323441015109249102246486177641509561873669707077059300510215332020059514769688834635758635873555262870152442915204004352689447658980058342568580682873499020251559126580191250621979023611956830981185708508334664446419215031092744166006285040305270265565607779696649710945059885870391687737241181273141485918043329348669749015963105272977917984944488397893374681822068916320667317801516375713672428257337737167058703831365746011293767915607598969051074661472953303761314243999589875642096434091978383442828970941277389582051683622764953493085385640532472801867579731426288215045210608363286881404237140240357955166316683271500411672898525606033040559833094580207728947930462392822183586520292198843003066523406386847702510677170402378512648999998186364320936202556525735191488602818598362578517484018114342850684642707068147291743019663546192093848378122397071644929110960529236374228006948574083275410544572232263137980381413320905031220212688718434210827018131950782077256426934271369091454074942182995270585122909108125175268656820373829630170374905325588751748920912561250081457270596643939164475713242954408781282900252055501531991229540538834430353828928769590298201195664852222574135691636221931241961211294659142307502633918989584762794220782929677154168893597278712781714446183990348887263880769936890481550353599958758934525910771357972938235475688628093783029074549245545662107118366967209610268014655544431092229683337349348782081849563450602552036996838272942530849581942700079024980833429670587156060434506371873413518287426414367330940273428194780358932812554668049503276088846851499373514157632400999307606157133410123432603768976194943572624704658767959885492358105473955418905527771705788720640380521716650008501632508443998105033593238152008340657266214510087842998936972283699611888552373955586849570866991309009100004009441944833729367133714654755812732056281599465886993322602197947210314400065889454356381217556248192307814631780876069820692520513294013025032444664891367078213212711579181630640912275761343221812723529775442367441017016258687345918957205287074467043389281531307148819526451038964559181607222479531410021510312773089030077469069422165968848038640594342243098800008099251683518241918383776193629653957474396536775431071068604229882322052856041705807552794149099130049805518796221126654883696498276596516564187710749902252490978595045178322267334474432517162155215188127617958511786136471046852823760012769179772636086884497439139954462357404097047143080731041681699357784647295956786871976941586519587835675705827011032744770584376939069928714051472348211230514965814478463477483496798574478754821120007498843759396460043444498966877042361953122501122407539172747499998880010951442766332869757156650678665501934793306340544731602757980070845641431027562219487095415076901784788245426170235381461160322452261901110418141471720418307897758519664662486613871767349856541327769911074052450505957241314077633421204074584997938634761134238343465145209081082699685961523958014957750131069606626802200127534692284155538325505222039405404511789725391889002990665959533160983887318312386442465072232829078591644020206340711042872540180953930439112060763600712306193033647227583024788347908617760906083926529799911412556796681173716186256493536548268586092787869775024220446746421656357265464278275004775844759111678522154909975756862668315269510148947484651535660416915712144395259501854668874271981338670434051055577647392367258559916068836618734431952012028153447594073650609888880462850262516084767128479468262086277912236633054026855966476106007932508920527658168554972916099521294271461400094945725938051712732838942088146290393310099725766488587018496558509913189288869331446841462252146986733159943215338907849279534811599383817045499005469750930442333311429725333179877900682097925398496280795530341874812621344118177104029309897907153650426506808391404227399210124087817076850906837562259238127834094677475265059163285332170462259799832904246950551234983934350851614753097134461642831556871964951293316227705705346081394162485048968489440242917187248195510867619560186638479927921889397118986238622808609836072897583917777202825224760104956588954224899849639515983924335139103853502257201989520540099779502886395956998955473740114282125092261110125644607514508863232665723892475852968132035436696505582223286414173921468804716707463768084554652995057697155787031957974053538155698909118320767042284225366810696314460213828391714319880187653639334758742688457323918837651620572822091719494722694242427729136811538179791941841543079066229453382056833777030149805387767853351978284683645963798808503521730408456348320206771018777111472922451114147684056932416774411633676188819914332681766767169773018133951282934643499062217399527726228874102178794895401983864677324247309463494662405771185589693698789883031291108657270949361947633855605548392996710535325839595207896505797653522126567555356040683026336317184550610571118934548253783719837242477583564596593590560700818546645382932155122709975318381186133493533526237234876764241190611308539373931143613968599976631067695801791660394884144139422268059318452992168240125313602619677475010290651120579133250617948362437379282457128648302214380636874278042861628496862827170911095172593979190551086762456306330429086769960316390334647765577545743887222168446832062921126331082702643189935543428107145172675924625306408530427763640205081640820510855835020085113059762354329496358069812277862505857586806501732398185284629987299138164117212317404595801320640347158308927703886921032042080805752320648733881911268905317571436473534408744812054787652694579871057564093264499400691079224580054075276111489680520316289595144709846807131289281838076832020142909396103246454117819929539319305983492573921565261562896351303597774425376407942876933151349902374220859903750018314624519164157896677460652085161628000095221372886574689464985398427189320203213013933902830240936993800126954039666100950759617876302310048286724163002347937209608243682217764531950178501663800573715849250427195865523536663399955991014694473784601053430527596227678329925012111020142324047113838152965654816578362677429921856008350868082116913287764989912682487328082431573905410131196072158170221006046239749538430122321216912284997636898149762586754606504704483159499341657019543479593889866098452108106037218713890340633284691076695089414431793944765206885520875477660791036792607105356925659769127698937867840380566019443238776394362057935286371064978219436257726690237067836955738519130978443852685886081896544214556345053005657819734869261127780912255386457831682406077625526469925013566123106650344149963190127469201320431382983170904185455673379556573263563047963252672046441130942632805309303658039328885904312551230893672470672413419252633024589980252251332503086625847829083371072641274558887427061406338821090249555403132518306324185712509075959296812160704658937229250195124500727486566785340850211630678250353704898134106538252274668340800059809489051044118869927085376682511787337812799410941048703198494921449865086008480450459504243561469540021815798191028685513670191624562812254924197731684507804802969423729800590239013899727806163755334048532561416401820437595501955477008250391049626153868702622191550433457759803397762331120601540307832211017882373098290100681953657491230934845215338890240219272106031402129764524737350391758310652662351616580790692470094894656850125581455109625664246003324018107971450228477504372169132294521254741928774031587403856819752543891891181232474174412743612123015845991946125469790618766521362844917060255236803912029618738314265268171329533190877965778479871507390735371831574703615583623298104742729577458807726725746899869467638898063259756243715831755419568654900767085955431029492317433607548241442334072483612654742677439281299635048477133284546835316913824948265482469584794714803553256103827719642261500996698617412287469939244878550001667085545276316810241302141811463214423833473671114652039404295006108271783855086708544022406144204791392046230099583870256181489890542286608580143327343448558435122527833809949345712425702994608966719485833443489515547535306897238051522531989544992577180149981668912428741022970179502559724149196432417053753554873593284232288632434983018482159297127113778703839812565271689514519918571884158570971350131701505007523690519922838520877952253796644546166556549535516669666906913162520365167678569000460505261425372509965121485943309713053630083501038532633133792809591867897265419217785253600969646961700012720766124910978026804866908588090474952310244434317182476128780675401711227226775783948610209919938699642551900530325950406247166372966267556086614096919928348623366561912863487090630809864398415290529461265636034957002008953704083808132353817146398888351586064469198573246980150546681614083029724382724588818643789677128767370930565133906157117426439936203181845754095669303198368161187133192344157627637205954966862176317260447065380279399916462584666952349083224953864915635673478401254839269272188891659773984077222673023488971787261142225248491846728124239468257536276638470188444324585643177966646279329214081199532638342015989723670217345735023854976362976273583895519997384413805718258732593339981926081911249871525202312847052502918510724782165815783494618217821216313338201206872113224493578155232566664548193057081443145117790735840412159601786789884923039928535355347876730704949356233105463453016577464127729368988326705462489080551538405901918759353849001278926121497426475590851992221057517163206007649253545031273180455250704318943317116547658076154567345737571500438081712882224848002690289607775312639357464090550032621476721872829307167763354094886704380594543095561608353805445798061346178838090051338725462203630392732593925638138473270875551583881660739337220190984341112828512992741974432284469083924073156652835774805183800620024665905810977707255308981890817018430159953057484068755903033705932928300474499922362708705721590484520264113310151003979331854259193198787782977042201574966536964587418767472944244928761904914575506073704390171172474352982300280227894863557537941802973571750630786327028649836262486619603085340609741381093750792469659313144239648700534608142768582915405096291870181409677205940148281472315029730568195116258037472481654913166073327010769960245171254233447766345462181598625421174771305949910897881643114506692623880718473375127864509133040609972540462206095217600092180289998820080978311209250173401525709223196153115997939386879181151596585947948430815831390305882134809459688659656657899215633129464574455059826678459069565138322978156909770591985091403460558096809390343846969311439997677403218575726931694752686418230654961821449996426687315770626648385227831356420810940749026366215574527520962297731921534728972330350798761286840755005960164107234606456447550233909808448605720218093543346352065424285973730184584131690848504866551476159471282322976561454401370461526873927746729925148813740263139274860569977699744278541457010144008812782777325699224334680449311909346371445656695872991048782662607300900308415622646919936331381821383336233677644138470222414165534438845301739864394061652336176706338080265353736255247366142169609783836524633940452521796179819404277132191905098062000762475143001603906073245830161624099966753351264615008411949219902795454089453792365774020196963184775430520732058591961133747791854808979954707680428068885822836320809096348175935082230829569790109875919509305114331280635232622405005815970183954387414314320758982945485615859620596646528635378289629712086508906923825627864786722194074134339419632484640777519787990971746295816591346217077405482087845941384043560070900708393827979297225049520266947693099436740976084710315888160693580481500756319729127582087019930924894282529929985579824400085070176128421535372242931060691599271738162662079438152035817745228483757982695564388548263663542301693875653151357462936853103522142861646710653348586772019459672592473986790448618410968689061309880931536687420613622812003431805864700598874763668249250854605644724717205927521235943152492159410666808724195536975576580340704747445903692322761925664171693685206249034538406927782522222684342356970477410117520878641118134953369277780026928232905670906429916727939169111155566483391636699861156121914496022827471854602312448387459701004867966619905308390745223189314125235195682076076204060942039491608757903209582806668103196534320248944600739867284232423433861365840239041974858663217541588895197162853716878063908351155321762713687761973373362323723136487810141621811371263518673127366161738096810884263813156965023235664675676791437994863962359141338791963350088802841726613362107209252436523738412773463945642569554063374630369894956560825085678788854500156781012551401693978740724620888531243012341005326003385512613516682801364016735943023924357193969835532353546657538447295273577036956920575503613506641650463077034883159188578095456579529467535671554324345190134570051479185682746924307364714158817961879125880310369270831730362553031423653106890545529812951229407901457807318645559766544753622832426568153929415620293305414012824516429356278726131846747614814052000375052779352521072400980118997431339600532377469148288270872478484158812382899955193748972427057968556877794652601295771748229790889935822893234288947385433873346544014352486240199949346878424074060004743463810056665372749985228941811616610535770665662368052129455211633878768899268398351646532002442467665976734841633764668630655231421486764367406547533377740876298135124274813831969202253205310097789113862684560144835407335565922675322128866711871707234331685537727664699045488503275116859001422561037908977509762231844215752392202156485792043511054202641861854981466442158794614623887916775708669656806588739482375829968518836642458477598160834201490153257618596012967643167863621248857023385820339257950595319677462719643051324983915178148674276568887833010926112217379052930155061367375686909554257125826225625072247926736671783419597311706109126286984013721198389512189194055272853221739795729590029184325121454095933076681654150478770034799975306284507502375773998497718721218788425644080616525008126705293762337155831428949280692058627751324687770626476345906836500271338647500541613465914983949532047315936489824011462801417035048484901804290688737291968020662140949465712439702487480877586686136123846402296264036707246880627652362630557928632559619186570021728662452378908864826872426560906983986407949287735901151464715162728127624915308693557574698076398926988986837561851274158028290726953590594606612142554925356278114786800105561937619021498306556357047052695313351728799201509699042450919262473229017830003439790106411649313116258925516098180963430064649156784887418023321011777792408920660233025492617308267528580234188515740622590348808299919727625723460341022907068963600262897602837209563466164654359936668136569071780273583134565934140084535255576657263025871197334528122570098849605679090360873786918198508199695711936102628896244392610883547631684339497421390192081705441137158468805476943312700981762654302950566882840569283398645319701443532548709071029998805507525571500992233568363887730249205114792291176333772162931704762498420823786690172034000727145598686517091868956085910745231542683333139773647831940836091670937234217389979171917660137092268536456063661390795300256267374382977841982160267410328756967872575826147450133540340994650274203899362760656268329245368561623492412898096014776333539993221550321493561270258077528945563932203753421333821997321327960530860620133453211588316388057422454108952981143398663803925697209580010654335769734441271692923293173096228992022071378148708976190847101232286411909687747627797088157978505771470091719702819599781852983299480478041728442998475461956239404111389086294146738889614173865681796119919589057361601136479498468159121936724155879831098614055243256026319712873416925911877496949102890663258592180705686153751998994277916791545965681484388238674539668993306955945262187242664074326966741578515543210769387878563933664724412509768049060416031700164227366550489014526732626490793548782904836787939904057730687374025597045998881039503312726225111560819673603541211958445318800818628704291187608152709282971525599120774446842522950263462679908580280540585795529669917128667273783798106198489068508931935274641294865396361901543521824801151759892576016159371829152386075858504757676523916901182386849961446628750577877442405534797544274136588133087093372636687755533553601124117218500469091390346201650590977588506606589043850767675967473756524010981196371943975740465085252776825789569120200524829981008457937903084847581328028510968384187745419221262701516597596193227353813237072777742076433715306144912405091169137191162179556762029070320184141147657192368979423213240039143803798096747413435756947607698592954142173723164926951702331859521834889249291872165798151339010825624981949244562479244319216663631604963712035214959878492647832487034670881576105213267256297701255289793436201280498194132828033775814729544644087544521529214355150498674183099019895329301085205625826926987021379267401656175038271946860765163152675136802476366843743273492827069126199000815554978818204327999729160153016624441025565806482893651109735532560590181667304722797191662214206062345748951281489507595635531531000667784169795965569652628888506349481551185025673937855578205444016434891410697290116934075452731961476058109244385217189950508051112225927914494332150076611521458713832115755164830224255080643924585845852494715776526342533052173936526163123954731393969395975677938643387636932835800925827546191350946589778251223325960614888087157734960361722864802318814366754693829888141294920124408795972423822202418927318887813647166676597367034451015248825235432036295771112075244900933571816127790807536218541808748531002936994932175066851247449110912036112105416350584240249033175394287511939089806376378480857111867890624851191624154598384127178941958597076556163087221193395379202896777173561040788200223347351223946963893780698278113565917604746139885776716281021382931707897092083229786288174772670705024843326091894861599223081746048854431250432481600646949573077680738079170332965728128086971967471326865608404042326075524231875227035382874637467001995984927785926913854746370574181988738773901504218413993374604361501328476576649301773839436992829782729521305728486726074714935463548355759973851088290576668715352067829769281161573134755812263256739594900670896943659043385584500237596578157735836485337054383253495389874710070791222883376584876801901688698232147323784656792822097070615217795452791680606975733526982751581710115845091895509470198752933305261348632716206538826744225217143609340406895544106905526094120500370098422171330659313114872275206911311647516352917600916646679627171384045420488850741627002889115843567512965434030923219882747002421742987286104037235202165150633220829731938517475391198409679977764135228751983738323993050469425003731454785106343283927090851252155606361274847587241823730875320063339067011322636484485694754381351397157503614624114957768140973701046868640159416626219515195748524018475953928821596305142561610273500988007432522411557922769005421798116826014185619879467110551322553148951511219401179857891751674853074448978436943925613069189325952029157062845945566496891890138094539784221786803992205126302832291657656492094355859414439126904987141739902083071894741323006522508404721141843208850870434050480418474132691712858657825126915037195608903899709548970963521210254058037848928888185820391569938694827550725308386531896514647644545349083653362620044356213288238750075769442058701342082922194408460383221618650453687132735735345003555165538969758080378099490579324586577014235288164163134649018465098597285974172512880615226647491338217111320153489479876140047123035565923921385826650566543219913701888111546491947027228421614152880173605931351109869478941105117925721433951970736034499772597047399142568047535103625555861410503421188743628065306646444636893229881266199857195775473948123125115350818388461683968143697989353531804391351793311646870547454006386622750702478728488655085936390201041148925957113596657428284722968403649514176128160792390238152298292638126770490436987166461709523651199049184209297301833422959405815171932720908455048054438848508850693674424373465170600955412438316691040506460547961489521000610120365920460431010385995278519634441204929416645582521338710383246395665863579659980655533059064473534139320766984676302252332337320485394157761563135922514540503317556263960232347646990551629293947442235318612430811654406861597828368030284712279995093704126708608850641716721474130673429210086730712519483156438528980363536907308536421487617929891888087840457698592078753587766347415045787692096716264303995502549195263275595040516707014782510958282467501334811716010504135365959086874892183496899326409165088379825002781455120626728705501807334979765977991003015621765677931321490385666122975448876306929841684979378833547905382825221607570928364265420552343396658183819119540138692174223543953663511631774670126784206216276534633626437983008991983282150624061185758751809106651051738749989104819527517182390197294527045025682923039594218420378368401781095891766995697011942852218957438169399934103127563595253253886117380220844297648988056359018034230836376333127035854303052595673757062684120907718312482400357939144131781941664578445022346606124772238806901392403155581750793783816317285871994458305300306997834276974532393921773105390573104991342139871927057115006064851592810225131455961710523775406692408817978772922442326862531924603765462403993050410762975107152043626266280766380804834221186926161973788953385336087522340458618325305171595789235206446397256647808558309702820186351851105056273958198253557957976539923868071618905621545131894747404334723112819981534420457219999810119748029435006282149555715614864504899540432036468168314190441400028969574612355903530434831957951636209571914998258331862412441184431162245987415305118008381360287275925753198369990795631442595264830038281336787119890695512631920286669384760197919435444044280927997705678091276322244879057847358931525280613791941352073879248122373542948307203584002981402715585238959033972944690756566940488217839494940161662667487169005832784247250041937076428139408529104166526451592269028402288356244035015837508712890539123614727597548626774086816729774082757010487080142907907265333291687395001673354778847704684613340898594207780006198477715880383248095799598827815518183137109728689083322357531871850477628965427343143037018879123668438060196657874729059489390534580267611649038281603425547255659297955995936648520291998649414540632434684798717269719066833184779012305814092352237980357376686877357523039052812263972637180270275553256543940369560608927921295781868547150436226340280657342193817017946519802180184850838772728333418769640747897142861973459571352183829037126506182764858584481152892395882603729050272866825317911846909095718163469299606629124209344385929362691294307715776823463702708972123298696009288631797010324133884023330587369745564051647001338546471599621161468910014934934637620472903617700552789844439829582446186148725802734823023071346946216527878833004899696460998928822256898278934746240578757947314453757948740984440426607765873324387449202960996798148823560322972893578002514993002659568718595904610512298366942139352984932761587394131570174334776802688228870813356775082930054410890412430957809423849387087766950232894871825538475546660099194514291253820134390576857654419605915350747825353217992395447510779974564851906043410828642323466725866298179773790335551544942608543945340962066544306216007663201292703287933384079401686570969008980145522933420321415953978700679932476455155732434772842891464133317822644115092847088425064874293380474857132750933490210736990262651602125892353646577839620488299875275200145246108447151939016602842028308538681694150759287921663814393544016619968211900018922923888531631552466757801172515748558072053215122793620555642694309551004422315424901160558071105800374542977424388173764032989936134215686327283009395624036722219746257785070358873422263722387688926242681212484048520257014812616698924241262571717931602495257701941878890292627188880056805014911062100293314558689407391171568810356326246043037468402874317528271593702389470947857124912902011860953200406367966676915341081735974083714226738935606300657130144414268943434747022640530120506244988426035564237140561086903114187401753114412279675021719599889894830777495004155062211307961478503276184992255193220419136041405783744037658051807168795413670370636090983531893939282139676890570644959243449474989038611488104644779110584264197593132657699600197353466884050971206407434426250761415291050416150508181825752190578734662972627570698028390700158768928300582526051994095052926540262226322317714988902908630856490892218712698212996129692335460519801632603933585451207350671586465708224156364353452674965304137130716714779657660207726694615519539577821759739376844349215670287925673251508230107368806174968062746677945338470572932365021003281898765033697921028349855026449370053512279883364233451694220451187385497742344327450440778133264771574527594917427755699069536814750504219484359458125191881527389267083028917377985151122394722220677775416972479192150588627461999992182951502112641155168687430023706588534751452253624031056086473432113509365246922586360425281049584820821787804157908328332457410602490706637573606311594744907045267447696473157285269733996493106127412062589640982611702208945291113441679705848245652669241289916915777674151628308022969139134955350718109062650556153623447639449339621090470541093171313037484444999281861003436210325803394167822822994798384966109421242067453315395199012112371310974299806681502607933065493649282333478990795988192499000151493617975426971958344510542709907110892612711131192572322491045270929993512677637096790759301641853046456520082771128913474783149603122742169043209906983361492709618798279382276008184438253393312593677195771198271925279387807432819262377830335876020507419330217514619387959572266660207711961353777731981027417546467706540224891010509958953889309696306145281847158503217299971724296643217029629711111140453554567352285696364710981372312237044671816564125620147361417456804631046548691101468846413755447938959975948916002590104041502331999007732647150149458399314336549614953716430439313598377273977934039192925163110462624762097149625694643256786990146607197245788553277030461979238879260009885329731326036954807290221221556665039602109649093971639842784870325045957082366882669183984714385909820119441156242067612616286145843946811045599675426793842746170942318250148242369675628163386636847416894441094311963043209555486816711124019553429391729566055862092705818827649355434894443183183155313624533156902828480419256309871129870661548542046989683904393348530976158810103118915032154187109372086383380989315607345208870661849441612291722936892511012362200718661311475930022752825233947471303656936175253345221027419948104140572603071143867522335253614615194792841029937047726255999784168191730212575479784934714050065732505652844708617913904152303949375653511103618739034407063848468045519284975121200696393140542554383090033093546486488510485233587586410610376523151523987765838498659065561710533022843974463049899104094398643506757494895060225935769232725480381111571715592538577056931047973364566718183543938247214727053511794329504547071329069752866752269655783974494212857522248662373198358308576196136835127201395798322907185751914195770899660937202739941753852982905920846923884603633494613843151868495153681131147100461372449962611490294178677753322740751786027420019368678603508746685101857025928031022722409493850142617531296817774929316604284537286871550888609547787829934766695629456458363224317911917047018373604204570516786374222577743569436158939936634198816409617678012131236401381086388801937630926048177439441242400322532163644167841388487894540521640526914346915499217438404749801814826684826974992905352602422526169370540115526804969179686121017873848297648274063230577376581449458999754936336759166301190623678534364280021975305285604449903841853349376877943609680538786906885307658867472287963209966996155966137702907683248557439408443620176445013434255569116694453596484909046751336020962156731668481835600926291479621144751143045870294267534873199567391027354427624414414213522392394550561891635046328784376228937917788418492494886281696339867933538116237549956872893646847390520715318751935460900224599798698374416204395326256560964571359511717793042930677857439377837456765098419559878693912679246585930597766166640405006711847341254841004756420524323718262748198038985943939653630328945141081552851226747607027620332479710014098008175106288646114333358730895632220166172682620217840854652940751504879314305083504382151402801297167393869914878199708575628153149783878712349705715053382295448761450260147355848081066568375889498136482560292519177928913973782943700222065390108193920348488061886364234256426270532571077836217182470551425752566009808798017815538039542594012307516654941373546623223758298994912462165153650372638484931609208433345995971367964660157036554173563564397658545751762661820162467775478537249139123643858614438370868969137042857697112039198356935884347680768688788300456250314593019548567682672909263309774522301163757818167539674395805001859748304135608606178209546322112357096626326196935572327611516061316157080638998401133758077766814242910693428306297685512718363336413671281026039306204247821369082949646167581082378461563188616940633057222803378730545542513740441742751578965760236217196242490237309725592618034623404728038860206524854196072182086870039236086615087375349601588569846118477549582267617293328920239754913389853640734635120287785125110474562634916194721473448912816605467298455968884424549557816586344838120613195462658574693069074094354307144563469269004548758705413588297037369853427655952134213186931011419293046985935175487423895188654520621194552329365750136983634966514217125712263547184048585883831624671410211900388665837946396541752754776960658003830187454987154024007112139859285719011176768481092732837840969787082822730932362999395982491388524159609130118144721000759951965449315026206817643243286018013543026769892042488773375806845985241534456275134150871201187648886110441369656227576565056563657299924759438174410733263291749749104129520955772036286067813418247380355170368349914236303591894645404075630215864089693290833762782105680746407887499039343158373373410189797299201053208947844732466947257649342921070816375063623724999285050624888098155590922088334871052016751159304801579949897765620721866022849328200120995708608145248595769171493520056380706027540080577409009389793544561298308372232951244846599411311285473049588561244026607545554609119485274667209814821273576852423154389835840174768295044023515863455735586617515135467266741002126630505976020289204342605853027633755783763866763500227925373448748883271413845844402950419277432343582136133896594684942710825672904097003805964863600070014792708292037153492656811553419119055801760778699322524180548423828226858672666828297389837434366901162045167073078755213480004236503788962262976567743126841854121912587292512533746535992727804255242648070062217733916603405075204106915434472166762809360179707532435088716730528795811940872016012672593667675789106302388457081198190609229784851850446497032956369609002602063669965720319483105720800834181831154348554041435325519297679160637117020132839570671934736813226819392992930351940917434403535827092466859696170609353299733044779710256330446025985121851837999168118990826533622172753918624189880279601426870715702722236015806016255750738229810216697989203245382287900624751127773938963517787264541914191899297745603447805401897917475700163122644264638271416344069072125549346934002192668537229127773663479003831760939021001110286055178673705809935537891298283308527192414765763166791103324751107431247057467941628694694397240343046358099094918415201925542379960753169932874782860315548091479274924532860927726297591092532648705533046743672490639041786930516641996010202265929907705025942712127995331205731233409254061591160999303815614980782958188682179318355595097130923733211293829770020834752056668230381236753736577705256870146079944799592983364543242303158709293259932066230817414067095003728669054986887906048842308298772561407141356873628167960511087843746610429885226180566519198135683851250836735365994256063023620508832782684765759382255613719858706150873305010693434665322585508979520408975244211712263077024182127722754314393657911470639485337809636167071935028584897452656283350217326772515724260482522133937306904596093107927438549219738861357403176075061450916042842139159213216093032131790978403836466560925115694829625443966596664918268049270969323100760463366403041174445623298902966449645116381236680967170935805452868421280270241880523793389303561615185372531750395190788026351533057368999360744772860304764769375064233701940194156090878025655407105231711629702732934268579620654262959008138993978542608625193545107202437335088430791960194891294476081363346559537692126784279377066175059054400560368855053086148826138625365606958936796704152989438520927339105358427061266224979125167618652012370824698513120759275030874174694627327510164327656016642110551580724779119363929845654669440892339284872664951779928401003862598182966074459048010125103382100978452618074317584047567002395026088318190627567351319297736058003766068857167263229125853924144790602543197409847147457378053005210195175412831939706641544449245810784324692234083824106940557407845373810146144323681982405059786024496184330483144330959083750672893283315211858304244458011446542690112330183901856194468634201053721230771471455015136737811040744856468572550748696504146424154076230562543560928895512927204985513277934603692060408036253008490658183827753430221979528835596766798712145387584594236592000310826617089275969661124706701789261094024115831757516715422148978068096375379545285163999797491757879880578121035397178328053463814280278103067030912737339897806589397639547712219624725801911649687456154674060675318610215844081574518324892810785642167950843876749427676336399475311033532940451768803810511181947976150123266322493055170652911657181752528644658172629434221772914488942119383720997547611907311663565752605384508260077367398293959769798506068799843153791155168190849364295015542390149295702511740022542619952955347452165291137840687652519455926449552144886712437149982821940079659140607635547939824998945786867637021023755903762570070623311105443510516361369504932520302476308349114960167276606087626275773826496586777250448835251359480900272544999415585446994442640566505027725977211859197225798852389484859727642337197820735565840318163142688438509333378185281561118713123190801817271006610954899052400672893614087834584065709786877464149456575509599066935687638163207145075974224360444747659560129309616580724469818969633622719237885825047057082853558293142754510149188042331340995320969566971926153817346854996474436732695130126689560829048858179973556252058502394560503107093517972059898832446196500281769094055178767980074348241046421250203367448514792196168477575200781879049240993356997075143640138332174319216265350302372513500795793379660718883636764120031300937549020720905756321032030409308346490964520586635922900821147983901356619653645676947439720165018971252989561616007992602192188978884440864969049149218418750524559216988460063980082459449987261092305315193786181813029569634485458885871105999953459046777184600545556781112544483956977582791668747192957257268580116665041639283315838600369233190278165613684220259349964134903784292515337221498849310397316861801266207783265258097219032060824170533211635839617264800351413920254399496121101870464569376257916819947320768219250682557825699396073123952244130036983177681910051279799796083829676162757896957816221227010687135075638081232245991382665053835919738076459242244088118419582495747918325043471623764869165047933899553051067221681830613892383695193693411557919968539429297455555743597489219088802583586005848719560097983533477805381652531276039396342406644604980980854364157807893677254955936484383744621078930802197610671145165746901235843507685522053961053102708495381518286423476347409805917516759066650173914535624249774785710843653728242296815572745448559867044906961934087746680876430259648747134252655847687160954366523798489991939989097006478217531312267809845799793509696900230965791750582757309567810826314835655035737798597336884833427147463521162879528468639471589091236246513491305624290070237617119748983282353257389057731059240880060052335817668734229168645537423169190235103690183426320586842478800813206533243492538309518554786077628593521185443207169470924891590393310612631013777521332538450921195488028321695890477647261659928427909331636430696581073909967144019015480344211590301215112408269205517667547491097430934836785894545237225086836076693632606252266750894432897290691758379319115536513031160986759445835578638824065514891370379533013946431173662436225201779081361750471637354026897429375554801378282713504107037831421337845477893169988598645866044177001160237343443079430879799141302285722156500997238499675940800101778507052441170315034044006939669302437750163898016364404911116080618645929011947309460929972209052467394135862319371874304602438629791592354099141041981367830184336512183289683352686999762870645722716524711221591184429900673237378267009499313049181172788035821811829866994371593359727861685670105721965922126352566538096246631469769692122286782153028884766595267777031100845685124915616389935301978869850682041460094180141994896515724425872367841090633586369617555692872013572385641427154516307430846113128808041766216438632275442692606146636771313478266122669903349916137651001451576211385380608324898147673872048560624004138487996920351221597397143374924772676861216170391452210351832324252611598087068515842067402148231664771689279789726875272725662741568663886199232906602915035959790099753813144523030886555032896737173909039970511395008771363277263120074886511850983442762260936143686581752627922074976267692030864887672036851501757797732838721452538208465571034589863975010747270446282399488011715633768126447162285420543149575073692208433778290739914673882990861389899432710818230399496552811852189983047363252373724364177625955572842110711111648728683806767608823591506432507389720969825885132857509972811306719940310287687028019336844969775340733183036113160341196366067212883570765106007118744675080345958145709409324480991774849979505172705557725867235454486150404055748947656754682543123029074365408447451582651012286515627828472193577648158505488094345182289243879861599482936276886174154467782324549758742519426672213893751236807832149788465741611901256950310763103756937603648240860703452713186850080586630229583099639456670716484370485042370860600347280486376674276526496225701743636325503330115367705542622852954874271200425227870505486127982465835062338958219305168237329490396131644609417621104235879809231319852177054207133565150859616656322797028572224578885360258908002476950372652052439131060203939939336051111459241516505483642082091302942229409532957932387778401782896367139546989984670889612834090919680184514779198794485715484329562524520413738680946881906267539382233607792072035711032654215499396516129467216059904772547552228853487865305176173063998799591735607736228019071948298260414238657562855715300749121149503689207538898849169093110302395976562609465844595626652874876915064159301957568663325515482122796874054739045429682406542367780365908112862933940651165966420786930172453774181836262271932017921854136400993743657216522179086995248068899223951285267671371201379115296981519851344393354064785602600996264978740526894980977247797847616017224518121189071154240423552088596397407831284615843924408318551839125272745343162154844148398317213792466071473212576321715362332139455661878608726557005729232475260906038357649272382958664062119645352731662519918887064694314577478375987304064054424402057962857827456502654534292156451882176787532769977811012925631293578321720115951308935696850256361378889121794121879025559289269682594869264834736332425413167813193135080708218631311631155707775462115492667741206987945192024543141289373199386949650423989472768938031104526827809101318346605312918788900390204530958460698118728750593862655102933918057939718916117224808287340693652450471785306003646719802790375085745183470348265349990680252376545956862341103242900408379472147169527876781471485585395887538476265737370599192423830319647000887879079310196827423659818839992057806231940134231474950227575953418057486350564425846798845343524832409685615687288890315226973860871284087615685562660150757835568650875865246257257654301665212616617278579483612116101632479486048002113801909764907821777636457690059965599335244573207485337608482901239524466821844846992702942906582551634448846678465423107518398435142402128466659593593395838919549417077636239161755330706670286441231243237677124993172969476532113585879993977868403428318411398518491736848134231531268915867915223140982871568928253153331857801870529891403046951245965502910476557600317289875445573425655468773591920763160531423197668755120511894577286465438254443107661863940824376211091847001544527993840624261377079612099365801570674842186223689468788637246020880056910725040895366018334106601429322585364093296821273817653642340859574184862650218003970041653225154864945156992685620425457489829919384255687159965321765305686119946193772997707571097931466829847405416815763619579750497284884640408436212042936811395995024835115890592705079259369397512832499421736113249468781055694209977017551582406156163482583161791236629689963916851407398550203203316679011608348635053429703351593652883342859997966753382667823328950790113894524408479605410243052955112606920894905366207587506289862539598998898675731603967639624952334663527024022360969212105841493744486441723896936739548392533517275593805267942944432772383337802574387581384802773453052416075436375231272443977511308894401643615179895890421013681192193656367836648748312235122148230118233414165003820661893271633701227680507414620567839105176947404384563912195292441883878348992362850298009470297569784726845483215581734002815833858659972827234821554184788544682120783382522864029688844741822579686887365418165816328794577874972982109563364237902794669240506959171671708520923106299480820472318819911586904540079185205302880831862296507424231830232952032478477860082029862981387995733648797598396409203833358502721480347187635272622487028673737408851858548841489994351990200838507324022089252351716081488607359580830916989778114163405639974952679067763950968260221843948528807744941114560248499911354652092730114924217048717723540580440848731193264538423165207585798800397584098793837300176022612332733119928538742196588323154477134767615014084107259594280256914140203644497099254921759814255868130327596520483467627493759243699565972429863830086854813526381991292712640981516305820629884162640138518947025201321950851421648660472267860883514919513980981349423426575991874542667847357813332570936455652483878510210405634546957534469914442613486708369561377836915831102541899606648562276233801502437286653363390954643279920505484946745170311459337360274629693708842899427481704073857068738517459424096691820957827453242083193584392653847683893028582453215530770083069919585503230178272297720545303311679596117923844736248833193437670256469532328171281022144752842034109740123447783294679217232595883087477147178582958575269274403837793995783290514943361706395488122250863984998251685072120054033133387788326495799455067924632661331019396498975112598382719249301869470615703532218677049888567141981718732511260419301588001245060440840740990023423914586669431794553024843030902509569525112333222964087659267565747304549988309376492305414454156690350272888745174557083992564230972790868698647587624680686501306648600263327398292418500834576125534832667063054816763170961981029555184255158342326087229415056363457836658148533563094881909572938112896127949274984496139293329717854514631139052406891456133189595182145867664253672689488280875614028673707917570204598159375017640408798826059285822725811936317976420405137953659240187569628271662703469251527751459133540915035467783673742276636188661464419757678617347031667298231783618847887854781717950638232172677887568251660465525586238119472896373051070936318314959801697322884715249783896430527751817118969382110499074150503806324894973221981500706485905353730765801740318077303206642131798319751256177660009718951261017454959901703495668633815081452860067495320945478745709505090483195099890997571550290259864473194324647998166574073877791940401729972232533376961845502865682485033234197951097734753531196847522446432507058816130102930065128516103099225704414206067459307352321386904907594471359178578492331524046489373582283863549646232477089318276567071373210056930405135845817622975147325474045812157264113766885245115255686022060807365118464702155706714213618979012084021268372924426669814877500879501577132455795693667240115228306231388986105549287520839032314594920540223134271023993546498330312125835660393405432489697065355632353570839780268129730688789388938492617948742788725604391026638126640770707654942649978132186922768057118339006175249057876084916422262099147322783175957340228394451303434157560898370398547460766676257564508437684793725056259660276056762391474099653635416787736369828185421047189648994800675313151876397973483963821487356921922835765561285825090223386956975041427819693801281104111946106502795623153605682587454924874446985010578928083073911643056738631751706495251563055004145581951500897487554475567545739469362730104921631172475125686507759825040172904105491416497045349025395547050967167087372758026831194759921719837692819011188188013610966189553912273759477333989105408124275000911557213894603207709107770876590564358355637905961263901379162891660900507880900676510809846201649531363497139353610891957253984856031500611198076954121871636714930680479631297399265478079688141370615297640946413821150137816134250528950103756471744423253828948953882858657397508974833579520539893048041304692816894760909888596122668314046700791444981154200901447541947903161938258934585965951010752143072666981822913312007339383326479006688289632002892262195416324289227750538550533275671462768872682071477110287958644274929969620461766638948166790952921285341919302167545491575114583436928395195323900781188510744123251051808303014946269950368754542470883459263762881025869033405124050262602293195143308620413630272553821090656540002855395471853925519622685194199745426983349701382040960078108116562417685627344051161765552736980113558206445935272236750021975121699766828950478449400744699702370899039324554127756449200366355641294833046816724228894837989707768534321086044982632472849371405935374069468443615631311730427785999818790740789324414187579167264419700132663848060626697089883172430346927127874047533912502841263829505092662313076710785601159993807091487825681916104238265101759043788056751446459305387321681374375232435647446470051784655967577270830235438830258502979917402977682028710992418674052250037408750740624954178458237928283094898224237513952235438940458929734470373267201773373475776360240011091915233624218485976918394109730327526679150860373694413939455122906925536666602189279505516537547722709021320905282082101426534140797044477338816458174912772266010696018257433368947825442869257624453746669187882102651335785937866924141851828041758222908336914631058552552327522554040145475230151801179580806239586905639079421796451115276343575009721474074792606922635964198309365193888967796794941732190848195321373424955459709878080162805592656827354297374014041876381093548535706684569147342879406711370360666540473170526012775196214821838959140326902347297787504383941159926262125817001228773312072817693432846371183302062204994318863388299110309670395903687205995085742000125739054374720406420039676417862212592692740433003247674156197697729187695085547860579988859480762137478249812175356275302939321649017697538776152077938275012323460506654348739810981247485203339343174441003156490091271276348229208989305315840250096045123904346004761790810807741109550922327930192422935863511131231228818476320674983875561296206144916388271355896452353184309954748353638550514682941667749864821356224250884977321740439578900304150976718426172909339955674385219093913954162019850418231815591927368256447626440033212754754250276927250697264158945807117111227823164627432197776270162937124155860933125492856031192255610527093828651918586484719115955681270627749284795770289255269199333187948587751642964780239298396517848864579392149962076225144138232478228115868361034914283903740250554952978452325993468924885798674697723107224470367721464572418604850493858407525721067093869037752679995245741881273723382815748332568160282077203590296353739512791746739587511557000399673829626409106805306583790172803088628390238354191942272189922942138501163826700505665483558893102411711228873146514857970621809399611819616318127910972989988616254003094999127993358515016230887406725668339905004812641674383242270756320967808535525600518211363036053361974985812197453019600178675284186919629512676573405113666263198898476877414425187954089396447901643319097613236208779810463130157253768102087396161555169623250214481077862617447644712888879110465211077877787595639347876429572990030422891091467835173312153767847511346789315047524267963683501559519499242543571880342619068137733584710406268528349372126820708035552639706367651335828554739575306281481892463509716857465054943540606184230630541734261312182207842455512478196122425634694759792601946658656211693517834559527261868750517263195638847447429078176458231174304122033424578403025834598690448294595002939895679294427708738991887740088841502637298571789821566282858393454446024917020780145078896968359450569568184665423536627065986398174020690367657254893973550101639857063137133911709406755972580228450060288318499156266319223175107708851885776521170347093482891938816736704452316384635338992264952996854734621538427116934022118509145119870012092156655628959586020576633523868694934172560556437998281979481319067863807619980764775607789118176684100101891524486488229940276603043180260813620979841522698159451249300558336819154264954627746798433083175628683701264487836809052297237390580412241720871622968635402103293876856960151562482977306433816193507951641614619639608521436100881232311588503049797440430835451940630457362308881795344886203965413129274801236622844075148354943108527984028864714823426399964405845289429789454597847190855503207320638327902010236385180998020342449997485021171144778097088631781310539153230226610938518347887544876860344807812128892964317492003199778830295917577539817556549148127126788515523589552953245437891831160215590447867992308223793385711539453100170465461068246492374874244465286703621483411658210637021882825014395424261305065994073150619252407441243241030067113638363168726208229732110123179575818648390346753132457656274619670066806574105748806533367087339555639401911799104592173567060459007355735588777044860536998188454729400210875720157721986309046557023708819455627500357855075663498635407020885574316879220585801413497204344616794441847440844731004382917549621926242459339757809658694810313307217913521483659566619373258634209962981803627947298736625005722478064157752075413274086215541149060208057165233459103286555585638196767270651042649413168021724413896298105039835928707602519884099826470363828300388084356732130644381827267453938338992114866690131002953491974729172841682532137645322178530389482111091163559456032567949107934985190149292147833751419031593182988476250531356744548390548426277892835418460293681829871551604782251337924075095751596142038035103634664132279780257133694223177043977973908584260057395305931777922310815118689493373449669745756675956501620288279275449219881982801477522433364191820852757780739368923652097390725781889709850225194248985566477449177884312713663332256061706875183141498129182284049845823413065962169329472791359678726628525730247579607645658457915725826603072108353825747903366967481314767512743360575988055140012615845866687495876427802435477831771193123603602618379473573679284834376865701991612749958070128137417846283973520605586910830309172737091510290718376575058415686901293241678450876132936963460908541905221003940961042132631562910640130395655625008159716658973918287878137875665552739198533581019168345552668287062193293031297007668558725983260595162554132098182789260968991721612177227034650190595996176270725334420048839404060840737115787001080191606696863326131328269369370660493193975853649602954912115608247016707657929079043159260063970033583566343312450682766361483698563166050255441962795400484767385626317623848812030161628312632401389365046731599920924307183199195045004805802844604372076180773927815333078346310602174876656529129014526654032900126789303038059605031845358078270099389776609502920212263705864330717026204194684768533249449212946711215587330454135471618013216732530556733246072967118335293158673469968202532311891631973131715804899522361151576311835713654938091565129624889827084924816176990774247753248528985126270447625662390251948074668612698645533200148597273771990355191147992782281194930559699184741891290668687259973952473323369444634998443607050658118467030830698394888749002345820116700550302952739713754163428166073490040178566093995018816447456562631255737578362378731707953673119685746831035236802226376079467724527987571676316072749710595327713792267767787919833487541605812844741659147385722880063242196748945708502877061593965373309352991479322663973947737481071460712514548571984314549522324716709804738933838999088211231785157616438213123915080744686436229931366206471750386505172170539773201823405923832714474027010391995932576316482259483398566435618364046829168767152954757200474119690542344836790302118026136196269235331533294446444113980630262071549229243167369715122360864836405201284400192213446609420702081697392715965925091588113406674074944008251657636103135657526271254419203625990460317394272344303154598401416739754486158803123014572475833011845195625159071217254259640567415323454747124753854515583366489189048107927749542415133503405200830572030291877765133193636308819489228610721853760526202993320635847261107068057645719522993629364081470341628961593154150175107689231698947616034204245203565867132581743064826283680522224481736334923549204557154523145026550908314077452099369852271042388215208935072414318131933607898438109522320906444146337132151634700108997214579986687060805722779550847323601556677079498735772858728206555080806829193589682265183503621208466547694379933153669300458385722950713768246545952060714162182766980343843820763269705697843702092056596836224716935036280025163647835538678742530374019295303633907204824083928423288933085720887231282925284897926053471473117503801424512512484451189198801117175214764676736994693738365318244628838767620560508031008687564148228618728900184010129608875346412671819653127854358102168912475727330676899059909391374240406378541175458976006649842570393338022121995569970239593304062735478412251951139608327100573384937375871897593162935266480434587448351263285052032680773869681104734178681366844379940206967708680439904058497193272242236259045261891139141523166473901240948235266880206290471187656071929957594949550350569570761099144756167093446850760340599089141403177847390389842327117579940897145087476093537741726493061386554064699104447542640522832262371172333712492391604739216413540404516684211087479577831194919538248377209957960285756536349822124837705759362208241785090572794974108527049778207407093251515061439190900799328711265648532443919264494561923197026276212120787997476980359265234569095715788037772241472025507717271098324748171279510546606798190144999054307147868101340695360624374945911361168817685480906161451874301220528077457946585336596189788280455147673349968731887889005992243242140828373581054319908598025553737252575551821836421899853405498123572085842316694612682959938012500498941820031619155991039473894049213069252723350233674525523979762753709204083075288292442928160863251326684174056006632864002129062343790823615932000803539738128175536774343514815463028246060705436992773735601436788369346169787938373656804702416989948496837757810272664286038567365934289971437490126822089199864609393205042520324041958531958043673553281074279964813837077809971897889001082993166752258857612520154477126960915859984099354860211100379034299711959449637383310314303492605998591917592609069301546280007381695713969489841765659475083409759178923229795097575780541635680905409507447017783655900144555424883171334571752580802327872187787105825527703284720110090576791129544155823241531090759118864567495206628163664989289546779249064143992517923166057043009210943377206057914102787718621568498933729440202627422163884423325998356118001823119343196276379554634902752034937794803811743724368854525970269262210028015030605323899571517248907064127004740108429942263135751184315275570636751612302625435878840030273492214384580859770558759416058058389119772977089121511549107829224377200904126247421836781498715806715743718947594393870217428007008117658019733879299064527211868561367769587517971016100920704518744562121408461043356466700131858517135168007986221904949665921197255330425683185853088603949897473010063171767861693644478901030404951201811841535971504143540079771221324876231391394028909678663980845022852545629229355880676003673145530816285431770233124766558507281637519602310417582594456200195836405084586224057356420756707912361672313283218270075740461702093079048538022841769771396404068204723086372045784750216265518676495779522930524810771588618267540518981311899934739465951339357191687316080808464369649286694545590045735312893731682101004011246295969767396928629378424785519663731130478910731850976079669790675346378044459848795602911116280822522500241383550481950236475850014771014861302977937101316779539340324572830297492834765094705060353507892596930942543543733145215159486762617273110876658212532286798672316478030447619554291527098040317878040284010329812309760738141472298828805822009437365851732545757406822842238356916939095298613530507530882174676643654363722563015646204297597831700959139013233163115980076468324309874907855439691091180146619326524487579253579081906998235293154773423696186133792073284896749281776622801010300556963024012392015627648490987058157758631403451115134644314698008268310263300495428326791633767316888006701445625655820236293112500244057840454147401166771795755771177720820593322599517973134947008350667408961584626429490189581102544768573950012936527528076757293433076565545213807938036632001476636890438806115166809060609107065426529759176802804226041745418895631372682280725111985113548683992110653034512403178411471959952767968284616007619600766718643388724721270089467879835162150114441554748510788139725507283951077310263456223910199824330930954408702968921804059446405386048444460526764809317833505321903880938100801672912152472723700384205107140169458296874074479833313228049215662241142218765654775590760045933698840965601460830868197737925238207248889884511789313500233911787975449517132805327251355615981978458233173770995164009939856064951215178969326117267890352371581449877091476102134224470280784745318709273810571753733912138728890778823713316055569255637174116488039834949338342180432672130588069954410827916719762898822834834416183093053118754161725965142800827750396226415125979234585290690321045126223936802734971707681878980859714421965315211456137873355224755325859826475170165095608845059654855422025702424528504739789318994506091211969086531910239768899632508800695404996888545017922875243273830017182963289198593820925075973221617465284690633635091834748223223089148688366608932503292097255205128798516164235340105160733680600022429562418750554069736595945236063084795213215075314098557657679884151868498896059042888018093883300113734790715594179142663372453585995532231337505576382933095412601399501108039749286150784979183636356176005348072877839490430567810434968981555429529126135999368080416922328759661536404275415418661026795256100210524480508486699117389615230038528196969200323441385509179548829906826581720504009064252504225279818435442039483778883654255229803967248469545766751057782517504902227734087679467155131793730515618361871922255956871520371000875219721268450811737373044133533522076676462185107213726642399022452172825048096656943012720625233815624388457707013182542005697086636260782716288690363533302603864554019358217679849318341339095221195767893340672603677157715066194898157626304539140822020832361133310959657582434153524574012828622791674921704745405661071793111315624162841882434170814714962483957855236955935774326321928798762781896613413825121328131466045494884448816888778459352878603763990016756943529765903757295170337001523463239317096913397863180605818331346735942782529186024157022440994170756286577694336854607829880274672077917920732619342803903925293495869234800853868898087489889526598463930223939895749505677462015013490868800733552964203155668358811854800146742376442980242693201835476075145457363620208747445299874366232240078146343222706339947911957683228051685380842579754589940992592719362208468527298282404482579584199992920945156221115941627053342710217079279200114927862768962752379864757316007574740313417483157768315498543348204310060277919415249554739531628354193640570700294515760435475099403937844594010465546964327414850763920950192230248005732842510006824750261455012066449207857779803818488254356676804313423772288379794120967822815750163832832121076256553352035981732837606207755966401588514429644343547630947731332021552229010569604147346734561795294896015923981051757216579010056910086594932257426810327741322940616235969651092443364731510203672296269426326327667293146372722918239283411124272632554555555423259415055073135013668571881672360573212488531777799034607038302551809457288982484399425297538120162967061379524133998519180429331743988949995171510104220817285768021028650853376453778479510822974998240431887685040579974815512380196205430059485290980993439128854263495503166964139843891874192875544946371677605186877181569360128324240709955104034207779148841220967527304279086480492169440681373672713513597606903208720374633204154724505864628904428205840397163506245359046582987769605088357180620217707456560027387117282267783472360243412503280505733099504028307420580867844307462167840950906233767812980257229475729488702550684688519259549440177155529552263093988455829089943091652928225507442770166562677136160208258748974550209059579034003150336816772667775210617093923359106843243089879429476188292703550962847907398460697894325542718194281039785579411323405567212246838042330569316242422967131689162291139572460117850644426246333504184430731537197647561681799892018596006481894477817196448788079261661493519153690336724619187323969298273575523237162158431531560804800201528993635356649148776862642526501640353697624390821539777226611837403529899281824201150494704054058341523043825943824927859338418885336119387357650268381375323539055176592379528289688332556791253842263280241470296409025489746043759259698859368042388702115330819058570278566398401706161229466250893993414681387055781262394754918552204661600001494362272547594649424354626664905279058418627718340388114911067997944582106164693673360018770506101298579131798025583890158856708026352529913968744687738716137784298361917740372921036723350012594272747189491307691787719210039935393610812507159132615482336050470920508899762665338794198897769476513381790291714594987561237127736950791820952376562767105615184871937901129506387774475870819126315799006331689763890418559714502579541602767730154862328572147954104425583795790555189082531513468542316927512067035911339688825159489738202339170707559773249836945253373517656741626893694985865868217017113522952948503369219735230819301059633071281684329526878071250059580838533377577593691540067188921390417640731047396884014959429173430141748962452431994268505231637516863813871386060131136887948856393125432173475529272797010530022309295761344339169289088911044189152822443641267403343497745035622982159704550727063962682970969464663354721229894267569149857096295346473373599113491192428702984200771061805580373871404306884627469795757384896798021880910852775315473010266754091108992077451243735989182162979557466054249392217159926845682619187071933409697196129847598678197872980220073157496166681377176401034654548309030395040757128694346975090462413374047373274706726830148057624237649023426610843311523161471009150357623720763445473235184590831547069847709644003343353122054332215773017308438154312362649142519599153488677280791064198787658339655081321818811413159962538985435029386708684880627429555241283999921154147700549699968604642326470187721366397025501796766323089989937741504751763518365752803455354485097101578034685730675408313342515198199585240258867369535981791347176787717084042119486868897414925921938388368424741934375880075819079974572298274773016978150155274507804478953973734415321747806021922372142442846083671961519712700206001206807230103256370540987832390503781886257055852832281804385657129238851392530809077129753916469635564678056476765410149293433902187779693614853126118275528635250623739212410291041720063485065888832109807491442502893264863576888386023611893149940766483624277522819781034862140773356540254992084441585887634345343639492346994911199234206977387432313852165124402849501229638771844185925097727373018482122419719093429029080255138141002720535246007896692025753318218322216764219189578607341474669873704867781388529349922495026905604487287659238685481114510174659237047060465500569782596058417104194704363793617543977488065075293535646639204484811203013279928085253488047279739031246632856924058456018902514887499260364074951890981529462057733576081191877076294554822948657500556991150957103982168994721357208568942984509871195777545026710032615096222692752608267541293821832610818725800649996811870525060177727501996850280747667297346283396666163846253516022263710951865453620252498899129761297372999264418713635185583846266961505138702805285530418435972858184032694254353361016213064552762624372887113166180109331758963207542428525355773720189465452605644092079854110703896344362705296554677806977224229514317728936212043821172275384181098650518534365868765642983068527006649290581729736421375869507392888542084709196341852568182032080700168229139783327367937062279224397851855748565796123094477161650965327457187339244718064399388777949003442527202735257884991243826358990020696073146068904791948046076958527945096725592941870944158283704527906318100076122075708179611021170874091678966873419286879984028251214014421803069981642806032393246377253889582609881391158726281598784402342117206950261923321284274478671415578444318187537502402080982479827886491730618357308727076581568369595599444683753150623743958997714404979648048469895207903889073333812085969474310455117327377155249295284707927858894563156375202634892617319803809375178651948863145917920849473182345918170398967699300885884558078491486832331198761061182090244503496082218681565362216238751333253917085267524520111066185390908494131275619963382862270789501708913932177237409539345984512060159290813006890673888467550600987190361442855641193480844381515011352925562495188793740096304947452971121384631929013840635902679580747781342286184918224640728568884934538308069674163685148782914728287550081866797275964483276363392039169356675869902469129211875437011234192720971649392917460458334372492414377992718049591304984162778137143981513456355726003776229053329257299168745423606366243605776702630902157313836353024141990778593363652319413759424043373691423059126471974655204324941653704885922967421149789544812765776317504455718717040219036840793224237146244844790030392988976487645935364825033930369705533989339883636880384211308919964218363980366625669112473726348937761216627302830867400750516440842371943098224097964067213997865039329579224891421947211725100236196129521191032787905728871719257739902010925315343345946578690481967307064790855993210378182589251439016595175463092686598244184633553944831781041781463503604944931321674882363866821271802822941512428931853670206579058851305619953918328893862164868335973209313087925551973239413805297368024783360765207685110923114116144245561136338247544344599275847011318735254285589787855766167248146045470600603990636855598362644008170112005989775692848956156991305288368725152884573446084648861394562609146539383420315796852573320790339211789152155973053317073833392359775844672715950903772507311796847576802775194679034665804001469590374033853294308547512922634804425211820660921066900891340927493870894942893154399474713295140928442186286661746165998599303556216326095705058600512499593426677660040815245908159899902384407856246950552238411918171271413768006457750794245407161331699312232823660632083463751594681823597484010627449778322960410991590774089315935199539474428600094567635555731292576042563991644452338026581128559925917635259911301856687626569306923168272655018092295171345402427984738918230056358076668545532269278439199115688357317934174744099814509042416870444651287817698041053986513723758892770107962826144654170787435070357757826010612247204819720200260199396404556686281273693314154815124626726000323555353912130424516914632683935266565175869324655800675415416466072183201276758172976341411878669381781375481706649329032575759231564986585870172879098248453271090950014724476528869511159881520595347930136621539202398297590120251532316528325129340967608745075803027945820057513524821017955065971298944945415058769009109769596096823338506066726303595406310723981502145711551448127346549925724873287700836696379482546571815570449028683745966732068967941957399797202866071804889968998353937582768529899543637279614572485749353639109854076332558343642031294413421247658786907818927850677539696731929815433634116482221171960077321974946381902536969567915886008858590385387131397958503114320987214555559265078295869044176501337680279575967802814526614985508228225186719279737582065811701533518245237073276648395162933014422701503982655103457772331857117234384308170959882099995853366430046829651425918176159922045256271458852442289875010969560563757045987976105198752094833116935352213688111019100810720893322997492010447623974660807594093081097848883666025656024829984132018663107223950513417606173849717327089294827295000953467277763183804139830995475911122572039930823981309420160716682456304360657853952762925834365848877651080496714944811662845595161834156988971049244060321562826358147512573945139769415081398826146172235931520664397743274384876793183949394564387769125923984802338603123219182115388801740415205627347245503332166558598980148801650950032334640169635742101486631143529296975432550936699220074116539568861188237714684386617520529291679812341547291886420733301952872145071221507810503340694622071533672860571066295454804040670662399497764638290560204117771647245532031844490073577283802204878968784811512708775524558801083425363622918035255507478813864795079149413533357629280837697184058354466332497854944636594954144053574952300144859886778720366617411508675212261646061490916170279577521552841343470372616911271604354164892513506246682211317130937202408232695587080849068018912435459899087340017367254153974464932868167360912975910695102375272129802019979218544515586981012710002826230826712960233477434508253734911999439868520324419943267846916451588210344864095524444888306283473355988342497257184479139132778326548878195119895824356259083803309892849039542397814879645741010743576456968082241666009162021235506097055779530364441025589539611256586868985176805107615747817207296932179082984238330809686243956109368064734084163757663169998380733574236302339928031296145425617940797474514488030090414157424712458859587252362051773114578812444767693568875030493404746926063946855148224811467347096812356070735120598206089568406566341720995861964342686970338837719845646634128499117253668679854633308908600463251866199329480024735539408748884866684345423714121985821490273832468562017671805362412740728430383969540277121310533805504120173169152763347201314797322965770939424642204362836289341165743516098768480185406193115576001436561838218666147326479755535222715265297561891963441974367646066703514792058914286834992596115517583558504070795869442054573575904277163945707133614302954892023992121916155151342634212465966677079660329364853163026571933240111966382664663779069625812761163116697725575936930966384224616266071682238900212080252281428032685303177235016591296354178770919284802733789413579437248272178915991872807056355463431153667105374788031425451563621992884001373727199732329366524572782157538889405857611178739144614858725092872645506962868831524649586708879500845227407737170650320718097741077462077900290619697815222814430080739623021954292110198739578210027116608051105900942014234228648539803105227352388010846994921878663916664409429700424661642663156651985863470016140289708250257777324707105734925193850741983789933594552326339757080182640341737743391372970919134308782921517603180209078198404019838213204382697893431116657148420749513003058788342710013981884616858052998967280678864830864218202938929032354497636506460793056457539686144112117872221665517406939320606679675176143550871403473302206378888731927379695611984192779628780860046707648854175711571398383898308967193235298076577166458837129747492764083854580444886498298572019155202212400436203078064895145203114131824670945078269374719289137016652166186644368124385980266052540256826996010918841804461026459939526778385297618532104635519961539472340985186159236048349440596743590575102596906851561594252342960004857683601896785627234035597472128189955054994752629680885215137843023223151034091654745292863145974256821384973639819564339535667472606476689190071918495733592756627539860518850535604126658606354487519364684955597433223645519802442048483704069988889855677516992782368385144890532094435425641092602226217309287651388606973747331124169208495176251303677714985932089174139334397012624074633878136721492967174386599988241522708748448681408937641874276377131397324859949891576635502164518530313858375276718775303712636812374930247106086898591764272742887700072824529711872683100215873717964813714961056073597661149576388118652174276407094333213050351686125168898508116844861709619346039207938933261661204874050422502414823868133886642086747336901252999128715134373937047889124591574737105276434972435294589987928622394856090729665059295535642815278314895390123496402282820633506876455064994554960439881915334018529553713064958132771668786672882250638942099308558133874907265397631337933966742323047028762689547468078018402498843074026786822037200999892782516019849356009003592013953442349209207480685234324021664865167377970362471836464678480910744251449730521655922908936335807219247787836825160105597769199565789234384064511963133672547776139920447463546144652735571363709069880073903511376510385364853754118425442983674412716988329859782379625748949440764536310750800437595946574979625980777571614115929757342073364603089869148608751673508992479659323096820589848384860231084992901636114526352244047311512781108464404818196120196827392323867110973359441737151599365405520291106621705911623836420176631381174501430169091790341182636516756243528542137482722469605083395192946688417618935109739139590676971846606334637162596495209620045505221012594195766193743544972361823993275834915184168548351512987408247791366282140174894009607401456511149228881405062537480761577250305255712197574329579253348249010826986845940832368334701235409258661786932551818321641663633691479757264891064648074864157865308108057987480673129708313107671693430235125647903077266516825890179612476356676557782324284257824955041356037080374497780833110324482449776316401113702232860325683481843579420400435296600115099207806793017262684724133968218325021168646494707794208811490925857229231540138713237414471474849064666938212539230912181389722983883073589438160819017805015727609264410261057778682184491110391571040288020102611554635142769509266406402476505175105739256170675903643963299155916602973160490508656215293832329111085109962652350469173299216044980746429024484500335590766911918704085478904077924127651247990301604809222680286615111296522123218956476776904087628045270946882393585772067219909421663857908735472254939045819406336622705689121741257249318010553109286780225438849801015301408390281909776408118334877237956852140644520102553398987020855130609797399232746333209400434833095226859801526977373951267399720227622991379916253454356663294628367469806008461791272145290998821436058429348315218207581867567756805718794441286206654783387516239317994701373899938470460708667442739874111671509487440646899520327155460438269708741631635107146009803547266440610014022838644068676325940108612067488049894907205492047688712810399652695390243816585031594579571811150789537108593951285816902445875320125871057904386150733289252229132557786049619997243379223704512499072896408076996244741934929603427079865613875535237656798636627002610646537668124288888232504957251459694705094938778178348970462221523992391306415365777464121848320838631374980527590890783184497128821280721140142845951851048836010799184392922342252980879263807896746662876805815494120268341839637032778372274044887516815124499591236292322591190448474763050230231873430544871234903676708703916236751509524642568900487602899012055889645292515699940124898030250432118392721946324684823278576428012105039415377463626290676176837696108873809076934194891258734844619790677387801203307175753814879586562292635488114072212734447531688007213723201663420667541369451058718542541453590179101621982313428290491364922066388279692947844144259106573761780860588714104974697322267155456639145479587884233904096549015365319467137576397317980636313268187970631015782139791357006204858645489234958752565289917554110294636953835562881707733153205321917799798934996077338914173883802198805890097250178179812140629991799502180421763218746133217201473803050045582644310118123317809466612841263553793742548560946345147656652939412501192902888308069002659656040997986943840600765240269720935752184364755034516745219020276575338713427038901522639285738804482521926614662559459983404848989715329135816513379413197738136670864544703791216246968737977257994486977882971947588450426734423413659116634397483358114145311589707552554007905584908381785674276325691284168764295301129668167946373728522320890690324009299417627236704771224864911970601133742127098480182749494934290037911700730567915072763533340389202063331450512222216084271388815952269169602416966031964379347271639760671490646545088256419870881890349539661040710664507077865011478736946327661905173183123945173353261230349565840464142905623471209422298043609102774711489869720177082620990801465053691793546332885726146431428491291555868197290045249910009986539482443765022861902719424083737668827837351483065343439368188421716310213165258492877680076766655099211613745837713759913261080500392067663240347288384439411256080250636510461048421932742961580597456852683432378613751461581251000873831884840632639837794840147488001199318413629302090768838499145693874048737813222111705546415395442660907241824151290328097590157909774939583175684265207821421869436403980603135263904163957239238578350106981140622237780268726946219660820266764554519042975975319036953586306798842880642567447334732228862878431664586229766045694492854028628315316129000600169099853769511490727028187910239480059175741727103628005462835632098931717198295573226709359720603362412476919635589005816232342829429679804552478270516662053414771601879128830402364962124098849753831065412517977167571782602705686418551125140998840380016802887076451520729414038926511075075001902697752520383736861224796222302886918567162016211180897383549923793206714870933500134474573938845194780222528816321023308283098384218595189703283325832378551102675292328758984673543344115187123692073728032947250616940415568016177207323692495799883671094980669437304839364736775024754184699115440194610823937371165585760884433254896399111535325608600060313519562639813005367996116192973720185395193377536200508259557869825649226144100454998280329646247150924924156148512317245785698781312409656049232032999477024967345168168331165903790403913054619972808247334734302430307172006514082282136027149905778933587281316049784385440009353906866643658674563885179485833798497198394937444702595587676501662917423837195802867634983718051162452365604551569334316422626938736294997812843446298925246742571165119237489041475155355402080702703627161224934173406170911543123470219853970847967654664150273240777794159857807478571924514607844902847564266430019758698875959968653115776879090465732745829887114136305123608924763857958199739443776090259521348829493583799801356890819216934546437716305652528864623395406780820700379737852990151377229380174278947879704735376059756389466955303138259105630917868808856937902438858602982591773548885575363838619034008808934479840520904187015148547157076617351511988832780811224375404237445701095042113098602670767632143222957902872555350645454320436668385945448498107256962491185387603876907770777538077924175313082483908758021179831384322932045954572225871973267873299480781635154256086833739039408133753983295302970321973564314773720790261220246562494252594037322627326105713855468143862932028513282039734381063765143549320303640159644766867752946674996830043398068416532114845897912793387882788062022712495929055930797361488450647626203154423130109382584520119935635608315446773747074130179730430420763818101025886337182015694979100681713572843070148207754919591525116159661047944918408403860641723627867158490023472527700989206629678512800848460857150607387371553676898724606718489860795247633954991727751911649010628269432134503853839515962470409980524194935695667693220434804052667990936666231475056730990658591120557128727304290209291349032682929291658353586271034370843560634128918996074544558349653745133187477269329775518417615332199205411597522741356645182415279352656815990716195390328085991089712281066454795067528700421266392925445689252962890601168031014916936162151374552245074392604169535111879629013363514557068454769931641565654324953990164111051172693144015876709941604565560439498404829387560728255100519868929088180966689969078244782959839634813749432568600261652600626393125945196141807104426633448901110109735139380564071894267792123670867259771241755719200467740068884467940142590211078196614724059454034957788187243833762917060861565260924526748720099668684851714956613432631936137917827647657522108768836736960694525671143512400540594715760149034452639224714920080260195722025118876069042890324883902299410976639126682554595620429294707246764452733209646504599578656537254864306210524762084386011697603826560391229550701510678305397358239926208310685200245222880710332154148585604984259890255762817388620084913708557696656600330643670012205486499294028398449646312826461820895423881336634304198013331173981823298253450576178136375298262321964577952056791141418429084406960198875268894523192787993080821714048074563210981556321664424595857431773376162058045893066663739753476213945373975825078109075502322112080665822197655017573222477218939033519743219825148649390507709660505420432592793413001154177916018898592674578102493521631183658401120138495857601897769818340040435762476213796106353543634975526946713658422742765186800257970061417297288266323784409561550870034994287832741809031525102778634777586322237580312607516364989049585188482130852814138079591115598916893572178269793505424268206789658227974549657861170690482627539460627102980913213314541404174592983889312016283166698059098533576256692875121890021661969282916270651769057239630001439758959029327213686433159156612274386438860512565883633076323238463003850965251812311828896590066749921002471366672059964457916923512684364141467408234548049556921965676687459386642909476735360472864428128089461864519522664250417081111152499912894051730125643599559985891575019342863695488845860878945037582411737013429400813202699805341540473549279975438071926684753366444703419329598612203547498412962088535945481308020096201483414900481800990195591807811633910896587732126515883384529708721885157333985268998785446873227713232236482041176137249213467808180581351098904481051086677370109016140395617454995627004598560954658104628511872940044948255084280025781342738365683600661720605544495249111406778905175774878883859644824597973588272239539531583306352486446156927482462870418773530692638021522184294160359890865954807990464386151984817932204006147054268013748377382386386695592209067861771279855444804513905733075172948333259295429013081975086702991486387948452079901529293198151005226640758924864542206698798220153454420650169763290789870905083906075352903256970771832629618750041822822374466459807777827595192649533845000433639046279470086702040188183003809824306043455576540962613638956672904430524106468124404385555843317672024096654999073490227191470486271330873793537522799318455518929207313740769001194092469993508757621399017665583407943666096032143563038435395348262755464113760511386042134855172265403193715584872245245648196329421107664004608171291536172800624858864883549389062048670050425278382196478649603359075260294748734233163430859073117713309773255426126185143347059723577967419238677249311509365224737546159316910810690650840739039088888011547151066287952499768763423379853586582190925817904403346573744858668690948862678433380621192377097232396748711021603898301645930454942370250254249027574541276557764697505171565757311042111314977822537679223663471939361518084981444200873997418362789175241622566740530485655964217865042182271678805722267270185882487553923282705412470918896674274955536861066929505205942328926899548829516763259526765735840065861663284479086992676996980028014108454172086502077522390763874305582643165572609783402208764579085091132991873918005878559528925984879958802056536009624565667955275563041691881520968024989654742531193646602064505802428195540762090233883023238456487292033479892569553270344676258285411267080115336160591420136456842984154139144557633600022571197448834842507555976457059367983926016200292528732067085159088240269567012777683812362673522346978440096132269010676769376845739260105093971277487368953855607504325644188721851103106381906323563427240641190182557142534329997832882770916542537484634184399163826374254964446486865751551030938276862503667563384609313177054997509721484960707857658404074905475340985386598303407101983854803365059440479792014510805727025612349351758851916710784617946536492460355926085712581647231529055091738905745602780603963125060595741807555752140959492641156134877029440633197706756813380003769776413302850022347938131690426469271213306312312787487913991088198285942968406710441425110364458616270591417956988491361830036785308090574966981345931800065107157790861461327000453392474815198676297171908859846802909406433338740891399103455480777025252151953051236062144263553162340795640500213961623493299708132320128529328253644730465239310949751050471365985943961542270954988095647951412929050260840454280645971361690395864299828599599686205643378317643948039202847199996829438015756792118364679717669233872374401109242727043478336946202933606081098790306495459371534612391064771257629340294631294179256677392015610770328747474599369514382837802160889963432911692333869593701230849967727598979357407756888902525568980639791507237629089768917984307624049850761930853464085074354337364127522972607553653781724607885252919375379696337028537784399459733635835374707246588555105295736046090312830405859327161566683930747171918979923559725905991695399588014140546343202616752100909017753976320520559245676649386422852376509860279207029785879017248486347156972505654623228142767436811776413572835060076104000159143454739192125082621960401728694772241453282316260715782736893577037598141994265870744926554087029844003224802020962613789831801385701252339487322626203071239270231529418081796494005937959708365744854545376410592597350902928498889049333248648574781378976149100676649048500252824714688113758266350157346338495232502964295453320692818790283632691393109275046733220233900868476746019045624828670124974358209576454655806967774253809641498586030111940915188037292060039281153837836243461128019656529866224667310343849600758711571452684173894240207670852396529989459218222325417009662401655029215844367614235120459188928404693297752277696844734116448406685749292565702957808044598947060931770467954001930484937865728614449241562547592430406624514154716605921552677550551737589213227423503955708328042488063405095178356986091072332792182235763725724373824976423790006482710707949027522221250574719161565620839206190014268977125205659614909395227710809021416237211537383326895111173286006396936524665617366270450396748746990693026278116310782986469630378115986410905224795381440254178523790427969012515220653586889377537293462798377796166470957628875393517970940427628414613104140410092813636439885583775671884708327637544714846113355544932259405679443988265355378334720647751612188861325020924385309969097146371417799223865574644867502175985885380492813018551237381993026145846154580745501067515819910005698413564276820384735240354247048883454955958579900611334951138839258479821511432264863842297729834234873513911598662008744150227245748613418553513702242837248102457357470078260126076440910790249266562699240800719133808958440438876249514806553720977996269789930662875309820885186184495554665754922914062003689900924978598030489295172720630214748570439242771118809907594923116217685179478180927182758296109080210071168070635588773906210343944581701566105697419834683544704128919976238539654139789979747467893659099671125595236401145690791160474016676690283204238466394559666837242169754657695645942207677967198642923678319250837783807681518929466432729753015948438000803418599956669887668271727895334729399348424509240528388466738128893676194810567315872156516807851341995195427433340695619477494080755795205555172620814732408673767766431602589860106578796990452679551484184249816571340339052121510827009954833655036448256546780148474618951521703003197522576151868796013091511908443191814048798940645095198351404711199623207700429415460551570993201793225348379462050734488011387255242832914287874264819961777497853652252960383403862208315919933671234709951141673243701333032071523321242169691291885268615649998883454701307737089891574556531669051634101893878910667062744979301621090183269836782185017950853199784149305830076401693589585467488296885284196199887876726791631709494066569905324395395964442820407493201474548110138128888170386596943923059178565815853419448601912829504260242388255740637110767930435652198570208740148418927699416834599033197205619235780342391447636643922085501121158873528181636057714051272990236180637514639908176153922811850281903540694242518062040082342814444358509279225353374678858260167660793500571622098805336904294320762123589793121359577995165059568233521517983871155641691001123415811114154104075981442167857457139913230740463743322135019063352211347318543688913136759535540755061439896607024430371354752821115918504244624899181331545326370176255726515027385579239273799901622314704398112740793287644114838829884137532435747954504381785867044144242088745986609924025967586828457689070661017085610034204564978099789359379055626571931696609453987889282171121418590572060836950309531063140173158386372659642265298701012447787725369361175419742330804931233487771401090712997937518167142681818199037915339940191884230259605968067677484083905800117129889124773481372956987923258019981001542945715237136940531163077213493576503646738693300018359678204987554494634083479931529145516780088332907110571241464297123475507194665781895232541577144053093714874703297904559988703568600787496968032515802279997245923616000458083933263675053055863816533798424425435968975754596318681532012326791596213682881911829564148596042763302137713011491361259404470856482257092139175036008918767925248037696464916602804420195174725064775270961885653795697964339648735826978751714606274757352498979207334995408772530361063168666020518642525329398799530570820438436587798645166031099297547102950451548005645916782108732266180909082859693193862177697933754666064625771540271188513426973939065671096230007353723520663707280036864356513553350714654072576690657694576745117423205978264146656626914161421697200239167939872124277892704893809584226387944247398907315475418254163923311109339973801094651012632347299318652164465353004916110274925039534391243753988347328996660000702002486353407319921971696362156548560356359421731523553456115302299041179141143594514131177319415163644343234382807153395694457820307213690516406684190367525472080323839151018550485660525105217991518257223052395371632883424308329835308862221183782179551966274222068287024936215039112815623927096116273444382597338911877454899063349691885672575475398585647178432881059054080113257927867100051000457650681405314362496731250178865547637644494707875648227603975367080897927512645368929859452193952962208078280348693777301021229707680027564722439051862670866842239812654188349272474655742607016334270063255681426293809672029028920402217642201350167485976994936740073150630803759301338324109314314416641316696537365909456939943407957863617284265583871078515189620458316758563349451609834895918047386540090609964068157000984340194629305180785832563692455583247059699192452289492101739431016731095840750555670083230781358504068778491251881999159004055487965850280969055505009867154973503450445111554567497532796658494264199349637331764941469074755411585882351419875797438428733960978766247701690067357854796974564602248827170850342599291998290750031092674782188882579099479011161760985541425254082803625623195548135541643110530138306422819308897424633025121458531624112699274543444557536035728905191566802014409459255457347557376850021958993162113582085017724557729877040762029996945417777381754400158368620648959721734542675638139931078397243049701904483621791234819126719465327231581550321747455921821831074939840135062251575157917552050547856888862060700480104165336377297088887442527670201058142746128752426101277323367075394024175744580450544173806067267750101026480084234587884428491654018879780698571814984091785115440983095247630949373998962395001298449789819071385145405507915709945728689713227491177018543512630521036745908986335790654837293845619481144296962923940637688727896693392279349962855035910252090341513837658971932681959180516282129479342525966626158604176332973021572444769949353925739769603284976466182604741745094783573453362759315222710502719490022749361199064360483218987679946693078986180415352358379175628850114506180962634639888579200867785968797738017559450082153396935857754676545457686446004819703686859022398067932889042938001130124214382649540820351692883277247650774935888950181809459057872629079314969423531370680915520280299801976074741325183378484013239803917684581568757352236437634900638226844128534142711169011406086498900890155501594298242956102375769196480781570838252499844903792052293705371667588379570424997265650182370729375503505415801012915254233795199604541342225580928717246486578562545398778869046194608277110509333001206171449945786846593539113969873398070587203753623810503037860528082863657135812248920924568208747496427440933069788291647870715688906152213594730628485530289920972831036705236728722923611731649796878380987898436287831100932603787978957759468793824572862215870724735349785056999033525397040914743507450329039629103701326841627481197680341635445654033263973417313725340330327170918469302047068978137946250386929636987736230400857741862403519417142872449064177239991654873611845312200680430727268057041029456124345824979303502192521446264807366583877333662250725906311736362103729791355383820228382185802877537415477443720871551350903927715070671592213248813906319951979321724331805919123752358633179297145625919179158144066690511917328978547793419156197951079920219707159363022513888163254928145313999104636558809833215609777888092509187802169091287442024303054308915847182995764490030408516530355483616388724476593643032219980951258151584729795967479110556185475071902071386168218666871606398898138488223012580151080289578010206882690140535956991197523130797653356903518848156359676332406946684344640717353094174507346274251096025736786913916739219154703558941403270090804653001880178719832440469935163712345983926139533115313330418747463191368699648786270585768626122478443423221107284111449662755158243745527055270173849687278484286959083297127245541786389611770143364579599614959711897963192648780160059744470518057919377829984035638350097674713488608957893195772994684179793831834339503323140059759400268233777755892082159720095065171640968017158203646504559938609862495401892587086789824009872647427567308227696254615599329559956367557064887404869009305053498387574550425150833689884449782563273735985820390818676226863055088969510140123604631979474192190212786790572754063923830529652988045120702962140848484107139708065578815532870404565509722234915722333330214102496190519460493226438961215638701015841141445044012445924862228388392845381825239390973688177928543797119294281572082366506144457875965142211813620135983576244711521176053863546378443602811177260621696701443544103436329194248996123422179760146677625748945006668047030579404270857652863843858737463780049379731410536060251895503610586330729012907435313944738122838109423067765419616828284496167516791416010025164984771866397535431078135089731045615927717733143740331210259047141794971092990031681627116381194365612191646591799944662830103965407890731383795913697156643217882127423178324756134758482712740962631278370231224675528617231755344300012906606523936533022705865521625109688376164355040855924887472503399861374685891875281125513609817238944196858778948010369722613176461214612027548485585452350897799915691180500161579563347315472009763575415035918413866218647683455840085037202168089023071519695396646631062999427922651794328592052156166025576876107777396958685004672604744539084988781653356130564344501351024504377940754072751729429150439929587449735872446602082046402824088441055479623708770567517813925746436789128840711535536953742417513372707023189431574597084199494747105825591553459426305722346708062347040918891034210813266589128905885492524560569853256474440263213094169786939853026390618975874215064941826355427383335076683420646536101485283871226460278272619518641970342571729478091549557048420264976375721319593562839693872722723912641052732211416184921527855522906664111309786944373922406266674968827025813765686563758888627664255342133037759674937050920946630439121479923700334889723896152396436067813033384328470475859562295225911748265910398440113866034523361416837856636750347021526382967123583164799126284812371097068008564547575341801928154725760005829117833711754889752754352097891967743853752684996803688182649390904905302929946354986979816677413225993818728190796711126091100425920065400382676724512589907498931857629268941379679309119879078575152669791251664114715112972037876077725226391367457625262430275884303198361288799770343595905610329002466714431916236922769520162939541849431210615703519505934414652188621543687864574826954953328269238261848129551743105935481512334409606618377431084556670971376315034580636905695560148005118666180907626855193417186332486790674134246100275968851317003395496921043193837787230584029552689166095057980588226432105505621171495617129160385855131743364371257866816493250889457263734689832478934880809063866828368406943960980806878703494744707406644490559840011068767295484732914791748642914399547308277617755249322814651840148421654234713870686350644655329286409756459703802143088460393112512928380384279397948418727772281319906172105467321951924564763158727750130415255012081149269120703600965604712754835299999145353845481411001053715382564914158800142630902646329877409771273616420452214153598125223227879360560901134674628046335419472524166114890992872128069617403017236205769227692353225564801570905536067738690722745034689488422169736834026029266183411845449861168505446383469835143462650170279474940229047120622340864909548649183858184731345140196353820155808218198179255772594950911992989149877996247856554612370076075508683641454179987097937320718284223725031300346744041800708691020137224857454528059311625507403606053564985678915382997499185187285949303843180883369754089774911641672925172823025106248566627049141060715733637104659080579978257152414164247462560441170878168647110716597186632195518938187117849153004865155246142997135684047661529879957479940596879823110183689029555691777148435116640869073314368941056263651064178870472877357172811333428921663653392219912294549818557821026470233756687242310311528760632396637982125680818604732234812747235265828647607652676524649209154521039651002974607734102553720113809108072680529042132509507799098044534834270271508990298357728237289152179032689052812046220657176934807756864504808024271021632272575789490430678682200488957078598112619662894229266834958955362167684617120638263263873086653365434317406313828072050502529788646853890111244335921386255253260246091339513442415154684207581345994620278513151667848924256817818349482314128455287760104647095416512310013379122597206735051858481584576683118221986286487516385931010430254559301744085030014141247242263653886282737068099068518128167420091484028234393460865997889474566718786870075580724402035195834964504437877921508916991523034309416629233227842253070290879387722762096397850463498178302881745416228659992698786537395460220737608036817750702593573385469767339915514332052730579707186267825979735114033080517535520336535997112059506476726390166902303813395995593788754794149884911595537259216145118646797016259739113729657655391122825529168680371455471218929799398521315210927950634969809860874276592269620148272651022375780228077807216572477605382832014285839838743984707778138104889780560825806962099210570661057505531129295473906739055411988220040260327860664353784537349451977083062374777537359730302121020293217100335139448169254441801164464286280569756239150175521076555912205073015751422312859742917940938153046165437835104413182753863189651841362824428600160188833351841291523314846348565183245215530725768396703197030742476422855656369915701820704352259917761050961684716624084275130505532257883899575762189085124492467127514779867864989765213083653194473850825760614893100372443779855956070327637271737777847230896273751557571015893142741381298474564536469310157925355282316898625574875911947928319220964937817650442023271355635376049039964984608814377066340481064347503583091097075598614328715210098827965926959101800302021586463955363648803057906622154906432055556374064423331147208192335052437303679971382255115057372961651983277256619087051397359178666626962564200257437009385684994363986491467540288910912158747902792982559856100334647004377272902453363965762690062240186351535128455018035810390586361146676369202856040719504771938702644108109251748587415841151388722368258584873679431363317932799733033897676490496361968625765537919377365195873726502042834855887211549784535620859271104985781811489176793655151039053309035698107033227875609289034539612532468196103019001989266181780604923330557403229219472547030892248632696499696635003888916594344034563569817156282380876436132381853936330811350357625427654009956869174317498487881485849753921533443281676001464893877915018214130919164962260407474939145464959327022758150102414642653598484397429879482731074711803549585309184480072191919543731547552685558076079844904365530004128813730788802934663645411104695090384444393169210144266866874115870617128241158397938374568818220917602101087120904084017637061301317891382045881689675736324242016836320083988317533615895203901691917150004828523616700852583545508442487782014027519622633170401831277112703038000330064369330718143531011605095642606816556122927893074783499149570894250056757054858337672273185874179952192597207106273115584437337263436258336559040032672196660305865786073189266398154477244923723492748404483737087623839212893085531536012692266512797674450623447242020013494334572374175402536133671989327604859228817060107447419282106222547974590334621344199899552039868851796749620926443410874824769389762192172724166712781857958066851727166204038625949018553313611773179264195012230513843655329154195389460774839960988305891873188493845572668372175074839135319128186668827130742626200133361429726540218290102518042304093769707142429815091619825235359630103888545647575683002377112959955779507112930107616152880332313798857242478772477331056070426917049333443843689431073191255782113317465172528669705547621513763035828524994918921178276700361275708464259612715469616214992177520322234014411628687138108221112958713923049598111290956692373833469437405410515406875288497775239265097209486215721000833181410772341292509906795802430340383211709464321034099109816365101379304327794619107417161922437267703374371766550496040562121173747350183777401208191171739579770224809178263702837861995656061188308584163173776153039038461379832782596685700951825032906104301420564574083116649596916417827498005024072930169423248173608917408700178362683635326767426914448044191498767558402377512860713295814108862158084209040057200382046628952829019636793068997491025303615788081744956220191660759936928375674510601411674490319742807387021400031477375569525449518062741265161666501353712640725663100691438051474235458739802194199097812271656920254011266952180899444500059166833055898467729503653601470091348096567850500187006370246554809907458383487605921593254214630446209512031910417387837213654968967118590410585754297937572766334481237972870311191301478776444190688981342868636896391711073034092121533500689409904114888121712561525650885070747400336930887020292658261443547575794026016952532285501785566136321132479094216817103805712125850270401239428008109761455916347271396643453113179069720788087777580056871260869451532590073819859807768043234390066569308561403354422167719011840718326015897800825608482703942101783190968698624367880399423479202900752076268272552336644794704333618194583054742201972528127571009836066553036459228305089256383805622843660467037974575532802030717249122991137909462705885588273563908393504622216390172802326646806873340498167262420710487043533634483773799552152091269772489209492624608456712693711930889599932856738060677709973578182314277523339021823986865212535831089446708619738273828722726352137797928735666539397349812232000347112999603114417638356733607627792261293655655722182239755516487276475169566225004600272132746615045194956856140166554922967919163616926112770337703025191482825837585087863239556276124872845468949798692941065624376170368378144492171770479292806389366737037964749233185731605048200229859001686095544439421772150616177696606750659352618310089997491420381405811540606932832766680526080102748695771856286804419367337394806644925991928042809294540524047037205980876545401091699266299863660406053386414293852959243222689596376223178431105992651486236982560205467833094248046684043172779532264849461997185532694291631625591361630531554190708374896541044847616811176443868965787646363274862768501929965312143402447213849062181255551072346833840301914269649850845759031079884275993452297418302094504496979113159274049220087292250117540523738275310276722351292100687634041052420429924744307566320299199364190606950431309701941952933950148169414430981594656370180711492929551782396614292760031435844552411766446620968060127655738788893300186511965797189968396358988244331991648798075187597075606074825449451411575985219887604358273819230842875873940485957307650790601688707139524366669745490723836474274981238948532432365970111577491575979520863745295327331302866280421064872095370591362759887456250722373740902668264866282416065175743086229808852651105098586327960861399175352358702845184913572579233256155980516584880754208222846528052800386833218485955749319640355421001610003357021532098875613672312220359345090484293004293415187873252487573219420851947089885872667131643773557992547345515378467852235113925889686854687155159378057018619427870189174482290098854646134521519149750697741155063713416250056438003433815748853342033375481477559473333213717815947559160130729061546208807457701808435422619859691188408701820525269766350830023487020958682763646738075483315485439242156704981073446181052170565164023923420033934791693074669341347138167107799798282761260013530663946047198498702457269473398667256335111146557734124820411959945318010901965685098465982588899754046464366566453502891704576387931178941185509454420212542139448795172618180248846901476751772319430624087279917058529379930930924202058876480373363005421688892700765611021996402350159227425556562541279853169305436011485804565366942940928272594873845421331939317634449275763651237602693595989064896801986149857751098386855751708905237567472096918593630368212421741156696682578476812952012535957003940944879333950272794937187399744207043255928368056824739571120968872800358363643969974527208551131390214448105967470646052231865030245647442958399099950676030791159919200826457948734361098452471398178669037488939567496798323693617064582428184756578197675570592432026155328519726665114649843653833171059917481147644027247570964296100733779720175128614838277075970476325594353102342051176816059390610181544766022739254410762061961085861148741153865569161029699045182166260137037346906160843787467578522199707806788515964787138459364451761215891960288066541035903357926839645218471962079176513972019477615818570639361152678428935380901683889723775019770194886256307185489975620948826294930269553875339607883670372213466310553391635787228671576021458412441491679883140687642041499635669909452061486004359386460801766770963762861416223245261351567917914591065033574007375129316286037121233234549739575493827305665818334898877262525710808883222928148348388119284786948021617762015272181214174830894462688901184006540201373250557975706112210413784223522226735848962957608271174368999965469452437028989380581975700713724396042070266204490184368070740565680241677339576135254423254900525959939181038189501904730740201354244030594849036958077434364070969170984954409707341566068602941678357852332660376039083431373839160950208378260049163200188853466322990819501200669674180646788198114746488352196763516462875404103582721400657585392123982117909860543428870659915012369758869985707649240331446699097835119651906262437690041563301846793820136283053368167553882756660437310992338765805906755996830296530679357851000193720453252047449940699787831020815888453664887444499480371346498854667562202012674273142450421585175400716915207543917828454632465362621158182209833807075831617151117432560954919021510578233021178482749724150808639294321094728959173824753289602574738690942809130448069076036494516427236840412522302756540997639885189397026341829027772114378871362580214968289940277021248250390186737957773849990852989085227617706573132070571040905400049984228649270245743366037082275597941146096538656204668841074346956798025692085772683120835650921449096191075000989485310552106545891385792275583890761558645694618073206533076391072550937060401169108705386491666534603559568199995351908125376094083043919621110073432407105319401244573155961723266235544317733972396344482619692647704216425261891332194549836592506806296850169414024400444657523856678366241658884544247700727829043989955438829071727891735350871501312036508191618881826180827463378734230254159057084306205016499724084716646403594544379122837905747510435149032671047049342250398956872048302719583434435713505204513901680729946415628240913798815028828297458205483112047430941164076042838285288590162681730031733417209425156523564025047691529454333604178039771971709781406462353610594040841588368179268727793384208894734957153920818943608463707940266520697027731396510599785555427222472700324990010420220304633992208814745160254875719366055336979770160350163211997174307730126847657027923590357242759116950047134743676471873804991380171687481621737591012945576770982661174807729159438576266809274254409667315046406983316670442224087399303039732647791452026944877558639490451265303990337898363156116251443977851297051845378391724330338526861686781490405192660272700791017273028159539858739590347356792840656935368827955492555856280726578436941653135484559783560072001703996146805193014457335973850577448800341472803723109409480242780306605407899612220557454413234889240270817892174444815973482495353118328472902277252941296562904309792241013737890338138314581777193549644773857050220137834174463902044163709058599370378672723398780904061038034844462706759901442986418498749883440453198311681418038436822473185766873194026642524302990300332856520759053570313720754600398985200342507745021607472795789933496722776198790009753599269413174719586352817058554452451140349063776888167283371632344299040233490279915249956021999805373904080907199888871338607446525236428696552398799011410932063500857846031416428906207496443945272011770804649089289908046965756860376508459505028144422248240939992090723094756427151608014251735082810904963013683214123859644127272329167131427037592577338422058567031525319011944504918897580892429762921088263074605104501281854440449273522457577700915887608919201611228935597854323199390964598219650645435409375121254329566426111552226977749058131522857350205927853396839916187986704407112710328332758912988100498402721072655064041193275528684319974444721124167632972165385877460145628818484310906075221109559468445539400769331628652861959444439678310877193492797788365950360595630728727362725670618116799137629261560175241513274417484981911427944888344203420160949408155451494757458972171610121098292457971657296337543661207857115696771357319316594732390933800972400605037347785941854490310485546650697457295921451483389359024336572124091511263414729544242069480993563556126408208476828782055364494568215351397497332283455372174194703378177340012410660775767650689442561541802523637329979733993279921125053482844161692684740869377347334036393034550002532816175881126876083876493474518571866782232824839477733031082164903890665412589007896109375733740299067366325259199362699099333561358879737027220593052256749878420172905833451984551877616224141975542528500549914985331976934871202229651281250419431794161010448648861199858115725352035464232599139043082777534192439448882512930094422849250098990226391098074063622485435294189809041767590886654736547045958209605105769708690114341183590918962808634460212632333432061476486476805543925889890918335233682642971806252049309314859710974139064141802200933927709782917513580495258853898219652488994421918220092915078205775403833842159814345595798872983252233569615346039881193408683685202438054569357639649640804680280204081049593765576936692871524569244939896697568364357900313087878125579298489187225463351842010395357110370134270294948132766511282963626696129999394339734435492072785636024666952604791872182618044796602923251595894578989353026034157856451659781666464070684703143471234384388037402708783059894261596592487055144648499517588432744459013473411586348410297734355572586804712123863481461126077593706230439749976188398379400497114545199349497837073367060630914631902732998200428891837125732827428144306231401217560522558884789349557939777736167643306530867565361757683040592940761260516389041340244529857251179205283325217648020979921972120629002249337970952142931453849713669881937431925462997587643523368194673302774929707576541376866160214501636800964031981100775274839405512414376899362183833688743695456766213799356872342243634953595813519910454761405967232652308675760744066651137554729073591327416684901646696073624943256839229330971532258924174894745874892116872429428442492253611705128738614505907963053512977119571670052212531121233807311547836561530815341319150955314218894338723692530306424332639137572080482255942371096575042182387924195678205107428914048098740807165720022558112812030627573014784569249159329347838501137563177671572171929460651569394037179588592186401101876910977718938078313708066404214817197894732336991290898677845884830714997538271750415284521176725173128361342580978596569700665814323482566879532753231792329818411570444853552105933068535826704105071673300169088434312802473902034988679577060793554791115322354579553796108380867980085865168858970025204241173979827722259242079803433992099929981082673763381020905449649071475188971788638908195558187286204421338643314767919117664493803438741816645266431769947529680712760057599549137539743812927408055589570720418131076523302775541932743452430890806362036636405064298894637245805837060038040922910284209987993385538188913295788904936558747802916991590281873520929919159557318325802882114286399502693296093978244553441218859583479749034224700321099126567098165155439550167126723950050942360350973835503598278572829603303183452227227139606542214779384625431441521660167163685664992972094234343486297850685887287215383982610960928814116444673361682546254784284899494316894144775495501205225270774158386836017312380262895839460714587449560114837486075468859957751614029152595323739136923439789594020536092435641855063680148900128850764428553836917370458701490205580236221312842864046991520563744933290009463678333993583452201387760305795550979592019147023816179853261783475163424996541545156714546020992309867253768659628832112951837291737499014474500765475053246912241086516167439409099492135974758612755296178030543273281657847676533877535374157384399796361626306470028334003927507932999642534903282400527849098077793564892712747070667242332008984205732955548599150668942375405860979729641725695464709120721045685154176717124517181658906361458173644721359622707183773237154895713895876092016854344340834244886620053548442344735756058413828201305461996818366073932560150734922266462464547195738258003074809720407766230295892220908924836994198724888543596454563948482563294598035519397093769281463798451936203075323128965595435245007911948432184537359403396850130858831963091705634535334306856642368909577406663521981582975376839760710084771193647768361674131424784663679151630210387519568368801686110670451001045122166827434624003635410687065060979421856722118049391861715854050838377172875323466714909705724805792946885820030436602224859690657950619106880601426541103331437443483501487206981221532093246674416085645933748308321889700077663605238273558893142198236044068922805394808824184967116333939018050738656691171120137009103111816671229975195377248355103374620760570072169546208450748241541138847794883282322870829071259707277279919474879158301888061217960863897845566760631981802731142544825939820400029771226712595457334533528834727788156135742850631150753579252646509807376714272867239148501855537978947729044796289483474744469972099722682996996729473045217142467249909802592815199264783417677854104709678943819670961501441645211146825565472230035740486916635265383560541994345220979627394209608937671372044875750585042254656591047484216859837607326330717990043587218612975207192884705825548353016181889626132474092391922897037445913359735938878933301033439792736798737726593646020499846233601069483975187142872393943270677722887772918915340236310963851618800832127984729939010924933896160371162520900607878765157672233827062190550005863442503180967063858348563000431795524890031251765606550729881405043922694127933481244747045783990973196502493640511045357626308272896666929443442576059214562044096768393897777191660635970634676281405570066344285293977952522482752736093092475601234157115469843907471028507346592972503252727132702661469202717695844631854662082100509286554291001683298132926446486530192442541903991136075033259027851139165322695271403608068840327776591932376826456870592193580745890172105697608517167139869182394217141127245460161298387510452639000529408232945141316374062527492839901695860360118709722814691256429218058068211270075444594886343795232125763650274725473582318838413428533416574672175710894402335257214778016295282992661878287925717928246016028627756080725964000582125525121885868849005099184869907249844101884624779673334738521098399133610805440375294806203379278084777671317591447488897188840097169451281805001262135451651880947928509176060627747013999495944977663922042874719278586206157047967716254490154532180726009828237636696456650032597969762113494301726667995350991959565756583303971859523873252947968095162186698485891106460701169085098799530293071359589438857175143357430370708569884068760842887393836574091984028993960229431466000825041007451504859879907910190245342714264065205796101727248621595116167075849594490377802727380080407106467316518869631377872166358632083715726014577775381931443854932230388187664509592155840708984800468921466171969928208540453807963613243178042263266075021969979059691599271595839817593905779642772249352780828150696480664000859305257259314383569815879692581568291384750510808978046312215745061167759201291752497890578878844556112336963902598064402065805290030304307961634490696585628118256089093169052786753919175140863435643602405370860365225409433045938521682653945155623863417427877249542443912743821542339298169545046796290262874391186064001930836224817726201249690470079720608588578211546830758543365205130677423355181949233600744938269700727453738101576249234775733662865372782389306689188208535143585425434253166623605638612740131775656623013792778924414193301353529966424670624012712865825390375913943263346872068579439505933176597609398983812521555247514322701811008995850347623178016914450408496936204635102514051648792053633336485650252468030812294507956093556888222695564242882136935635075197550267197423907101470119163871423251081006886409101386793326312377579989331898247953797793625341114678519556420421433808697441021511372468031694213274031682329949722134086484665813742373227504877555160953024701394305619964509197260942640870352882737364770100024838642402178158774239974690591272125365046241065850851185899787776155543322667023151008091296804905889535040000571878514732697097782708011873372254806225798708896716088496466485047262179819628434969321150286453006101186810892028678555633008576461812827680209690681875839465576673692737985412798197246012975452587498808175970862087306385773809865491514505595815684522015039027970985974106251982717362802082930481611395557745908620936617163553787595549418277669441081344031865218464054704442841671661786763827403383212093961637708701824296273618513898539294293525814627750030066731720096132899393910411315725374626486264662324134463117541223039196072590390844276885103754719416206943657677827035604103306207980015629084751875201555447988282020177907279482786583230257220180061493935857611557378820848659772234322146819024971300433773344675880271918707902600063747540561124196866945812243974893792309723772265586803350731469246802716685138931714029099904465451160505970756100140892949654828737085876082838639449800824564786442402618052726969551444473752924521676908910660157497003653116436179830906052779319223444403939774232697710199148969555562112830284984827274931503166317249945196623736574197506797076720674563838892692163398757751000663012943376396986946788970284442341446987493171774875383301785413999944026452525292363993228653645438261561447944380367758496714157585889028413046431674909162884043074113483128114704470844917443028011588662929127428908879550005467098197333373423610392793918544841232314690352454732059467686848352441312427742859497144320168521997466839686797484249589078411025379015763574124966913430053173590575024515520776147289023348330129249600445883905733396575688668016197004531923691016223150053012161218103891338567246692943268037507377599033387480093404095618174841810693167579609394450276604539270029819098722476858740813856065195972608128768825491308322759231267360102161284434900492116139680088603426830729432900923009117209701039672655427001989214258689813702160161249421846215956878643397311898484801973960464514732145426992431461392335022166119571826736356731360189382131004746021237755364348484679536951729158629465058615805452267942864251254640084579243067745620137513713873437071900534693593399025643809546785152047591663867963384736477208777622341230315643774114875029652406968500183515301264183160825964227688953752268054058089185661022034907463161611054756383941967992845395606740448247547537153301957054529071552543090061080264508388330623001158040574788352061415448395051032558232705354885239551536533321446238110363767654492422536072747578044357419936823566106468866513433666055223797680625285596395845355373464088898345908386594262558713441123954171563478748347695664195942284172583331618926867384640429154228242653259251153126299254810041547214821658592891680784289367973979735637862238609977633495688318049358809549111782786549965476101160808134706058054955889051220209368583388262484370005324146047740825818910282504856205413696137827418909195242092856815597388262362510669879177554581841784084531986074714338293930426158022204330625258110123358313780672646389542238536734316050405407462645517636168308774403628013730196632254319884390118622778607587758292429713725905820567464110202419691367726940860150346845174860392662861420800800661382154875469162200157797731240562186930782397250793625885500972990286616994694021930121850517529855023158489683593206494884156401662580506754581467766818784490090391494058896656909709006224057411953951293407086262816473894672935100917673606461650996035606604857857551481596518018342647931509304992298663444427398233818374781703999418031505133856467059101287190737877366558868097043631472404780574914559058270361536080986303019577474911611224101623765911746822697626392084261750550440577706610801127747152021488093787828420257208607260773369192257983472696026433883235304639170459230102871253671552862416016290911527023426362192264293197104584628486892117443500802437227111345618521499896403454565862131506823400274779043924886084236531779951109640791424443988438609637163507150397101992503208269804767456560925831636031991153266750184006560098089259680450342180015497895200947678346046673306752404536927319543782495955506261081114992279934659199360609406377377581354992516965808372028923517377311053245277411722662888169200623963490201088688666247553779553926635044170818677494775274452839920808854168473712926832471414065462480635729622884668801150079647264757731986797896555828842848230974908403019834059852862054329177294275649405322319266548764392776947198375446136515611944214831650537471905818642669618709301926521140577333314535790098421139410575089776327251060933338163184771484348688243110022330684355856859169026112452048306291244199681685111850936656919060259368111943753215268122254379901273949721835277257234217459248701601655287075525232565494902278375532469204786229767504138247332789121115404274749621214449459081795750740867244421793152866617348330951878359833924253640770203777344877258855252417860242596261634780411599634804944082663182088554823575190225204672288815174302242370081377369689431505355639491776706324220356423551455239700144326967107531753840668854392820437238703690689975817051753590511059344667959007413723880287063750665478011962699013505056231402190747293643233881229429945816641653919794594971595112701561038584708104576935314259033282265016143662964747646113007310835717093330406229220079620087487196262164756935613898283795880485257079577126328167483303849610908421624017324538943116057154787416396542716651398319442987479313103757496223109559690164343633840767165040212200191567049000719222423158864878323425408727178301233142803478089936316355976590063677863259143197175241319879589766301008334548396056362346344790252027650768743755014959420422357328486541445054019399449736319451500697293829572901280364211977445921938523642245187237874759842328066237961335316770650397540278624868177493787744636947513747687734148150709497125353154034891917565125292734132219117867019203822219061483122750120766622367362145881526771747450751621746284745906414835535638481901596055973729872694697647413544798247395385620524645661773039304973699280123738917591946319117545552907106205481262614932753864800469460892238559334957128544273126173828647663894804150505316574200922228441563242123044793085279647703015367026619399658615445220362439764680790219421771738596913904913800397626060528303234804005987682536980683071752866029382872766571314073487278463215372602548036689865347329119729446207468686560381919437767271813630007612153644954700437488209001296957125408552198031795915909389539364632566419961090516676186587821905005991368894386158601891226577886556186926188297460500436702397859792678462805947671052583468306768212647457519404685767780518751741113930946644144627926894595684274831449822038969628303460881865148677521981878016999608438430615837105093878705347644186451845510241163229322454925933943458925361805422921235582195728646498160173227647348256638241429016071377969061007627197588861615146500091013160462489609359087216017782933685530293983627964951473336482793364745559594416894564423709653551622073012876585721836589520057958258605191188116655583997694201060600451673199646597507131322699485932560630784268221512776112262872733909987896821041790208959928424743827018714009100338989241129115785389865429371145736284618348641213654154864696015214258463705901045558477351025034853349935555280476901033097159886370113726951155356642549123727980157998794601643752152353120001738608610028244436973538455448954024894343615922802120367536478560693295686269184457068721809971533027316338964508369854117543093582024350097482378135341125474982788956545867021370778328681954308561877857936538222520658132905378909184905387030587635300561367195196997831081449581989118224814134825753055893605025584458885600768847946078136817483000035502425952829219840827547240508176689991890285470668027882201835602625751419981705708898550598310316454224842325776140741432804188580261212904784857095462222119469951597205605792509512664104893789705330352531409081741190109998599803087031419035396935651669854457095916138350554556919624362653045800261098838946729001197541530608733397454710490216092722067662736729372017568281688301756741899651072961940368933093689515264555678233789579143624867874856402995041894208562093022848603298012905879860555063339373969274370404553968714343688750005828576971822831246231296651545899664882992327854450142059208077316524881358375152633911255807472581986483845688801583732304799700484298817676178102454998247016172825769959473035011521041924713929757946221905723010072162144694667441599772210781081236357916632436177639312510332455548906256375929680281001647506749744900952108921351936624095187737305848917043483264830114910966099359625370681169689981400925506337049096964566958420896296753379705012199580005209522298341262554014978231671081894129650117713374648804854398603182902974011852648224291702659532162886197587856450489518066319070789752847171821752677288890767767632517359184036884277357342439700986948575127019916697727770458456016827470786082824672433998024807590175610730791449325244094030692957318421607718939636618525456039234559938157835787159568498639136748814324612909308292177814289762513665421440602958284940845015641291405708184647655555410075310673279758364405309176932904032953851143877168034572049927516543774996656878250960314322669863665856571850951033756513017236030672670053718386985264029514397008238800227825768626992117455221192650025253692405835720772083261974265957259524665522761494743392837652954619879415809836573211764805654108438665010504557933097066011429340805600668239371205934863108428940854873369073717728953955837391591411254458320616498922341457887632505615729876589862383779445228163045287331123986959281470363623662211501984309286316284481918081467007590149370920798648462511654938392149693290189512530160409045835382358412643551969220998831846551855432280420035615656481580692524347770625827281424355574526486249494406586440993030920528056864881076535256332730197162037796335756996471616855078925999405859971612424292629660422821314074311634416663855433693141286091405274815677687004660532917222620104166032581251444342512460342267016676126225703845863406153256233978040872096375885020468712942942307475216878190590954429377298472170346193395555797470381500405524631474011002745534591976476886573912276211685063910925060747108621343220736891617887430336175449955827347408351201207187319453653479640522137320918027657855350121414451297968646347428743161283741035471799833752214914646936853559506365464882624378446295347524712336166974325911336217837609546200539106010537191537184310870888951299867841631833394617339740815299520393274546241247285662932285730363892599919279828689865913158779240634948015987104992763668669753982108782347415015649599470534905304096484919316149985078681091863318537928213226437048074027366971204504015031986400161799072297422650793711760189642594550670651310537150695224816074995524684549301776365848682945847316833118102207316782407745721536938969301669661384557039999850698455003357579824829576657222280001440095055290662633369249297488166774057988973114436710709386914160758296046600384775405405778161825695765334262655660259612428349781732075892108003191903968824642519015253017566814381239489829609465432926118222304125737433565069135953782331657805095779361693590578186828473640080430460448998912786875692149312679652528400695491135497134897953255802507493225141583332590663977888786139359596835715325972338184159801985415014425502869831478059240500783952536109043247642939547383724500645369132540782706171893163212350472775609787829061951664848791551550691476527964968401946455756127657842064410294835245176804472789538901771424383388936751944168106265839823985757092265187367047050671571336393898877069071879574327597473349147346464697904451915602297364723372868630956355102541822428765738486272088432234677982238597739551795549469350409776915921272300739250738979908021854830329465434242039322560799375457450512246781620273059595425499783022097593185764518340348193037739315437154442485999851596410659776404177445480929414643236747678531432751795883546116821182915717935057608581750794762421605625408749216332751829192431603047674298259273481214760051648006535781056493817233827902909925045560715697669603202736992449347647288177516952619580391099059963597292077817903596839107464400358805801291147219718606383322243788000184883683742535925535808977850800028469437813911675089023992107930321114721821529072404333935800165256560158136951117766639405718609532320780137873196776526652838102980054100510617764393419289092991683022292793861574499191293475047994979894047876673570632396581291737070501223029659461348634310943072608685355127004390006921063681951457335502484111176164734674262410328789494159091915317679542793257298728064306789442159742716267486094215630267265151435292236258732365480084821227074953382873854040521634525703552911544923454160617975641997411656467730270968895624161225878545514167912081387287491359774975140582444700603749578139555299148582614747330804316743926459072605546024829145061561601267463342969681378077168154337877578202405070359819250454493845358035712547042846948954720999605222374460589002482366001745265465858734241416530881949124617619406212348836475530180457893398151032665683861198929767552633138466328650031712221235293477550877732534536412977192673030313597835402427671508172864060010837849381614660669913334394362687057892431208561440721731310724498739340254444239415937202522467004218329924169425621816166092749413200564725991985005506665518369151824699836901222365081894417835107556575383412629274710871838380276185377693108395094452271095832414394441528979668331564187679751672719647285123027998894232411569502913017672156310608394138687985024559735632272943712457483956434475480310927707066724347830920145519201884181544774117521079836882561402954087963330161957200607727940864238066523971086223305663944993012711768029254305456652858784167401133747490413147124236985455208993062113685023136763264795155579663328299060980060532645890091844774152420352768617711194667339689416074227417052745157032779112221907171024566681382951246636159189736271634331152064633243534784319801350622431985733735588635417704464207886702055541831060251575282994844643538963609900484432538438821570656330173011944511904391887851470216499487265913131663790330065371399483132986088726470792745819248888029538464209449586195717157599156185685599506122419520560726673404730918031498551680654597705691130786180396162945389044741542214848408777911351417525910275733931191157587417944897852976726926326230027067109671544958680116470739461141499024795448463885586071794769638061637514015435173397215785220486273434855711311984360798476576269316918916678152485469510667762327031237920086568335832921840125194190958885381558960926899159075868543147011509432287011548824551098641827627609885465744863292675396729882719290248435655488983633543751867843884498997499730824781537131012244670173073374925687581435451435210727311901442046927601886267566179624151781463070890416342640497097899556249155893893809546220769494541435719778041168327181180760397381791340919558823132861487974534447251436634440853061867176335001174197390201971073243774482913974626635862468462518416069900901864765665624471733679777819428726589065583551404409802545154439309697016646235349839934390003890827522717791097304705256779236630759609688841016812409897807051701386867252235633500155731290037741406167704746404637572745480208542549533572787698570807834369791719697749642673760480714664744495242932871490620350251492627651959200026457840908959231860904313361565281706667808974931982286906856595754531950244616454077020363051217635624831465529171045851904690445669873317281432886905109633872242590695172650784637254077391266598700357159876405905325738533566671678217256870503968250159580232507912867416737604807929599038655256166848868685406530481688811659494117661843623245393100443096738773943174699674277893370607229969959399710221760518448314893933140482919912066954506956207689134832273972940347548479213850919993625878164844902745814468505519616830739297731120571360111415577074815511480261532646880631510785845265836882159886555984006482648202396728598149791381260128801076860113868089711919079347005491696016943193767187293873484505006798383966056326552201113940312366413896110628529417537950133725159640969613996477440861698826036375636543600278790439031401105925977598044398767208287353213914215554567165430031959732793317907437526766444652532253289297516799187188651515004001231721568453694381997114908597412985354240151127326731259069770754672471772052922013786499214782801158013581136785208397295320103811642518237088569111646519742876833478644015917906416482349723514956417443454175111331096533009538211742295145976246947549132017530385590101976647649547167307094767623947471968248204059781450010048239297202301236887535191353386641686689536451218538621343322629886996787192046047089408566441055826970389495001539670133834541470101537862268304988027176460086131392483066621479657342683659720488532705839550230039767511661646603999941290081236863723640344600213236750536500126854174799813492519570532641096707218756097379633840762246523645288613469342701506671753745241809308188655801119066739568698097632933757125162331705609479083836127231308262787807799545662758834729846255967835516284873416632019321844001309939440526281928902996811791500868031139664700629789761447222330786161406904995765815753398831160690351841362994052330458278202353745179845715328835797236578292207546337152463802117481857377525048708384692804426902424479176507494287052874126434953723162639305534227881310637811277131371643920019906984288299996029945750053913097904718931807730824382323971590036224994777519858965356089134069999218165772726829590909163472960591138852512522497215098325977819254366212337395655157032128736730806940110539571985400418733397729738266438295088015271043175503963740878750011096489479810052028296530659533772632806185245755020656741425277200032876076289347422430945947652990730345083971176136563445100541472027663047595478240625811594707566144506800147321806407033360337450438400003961554879228994192963416787339391301932626104700353857657880979374233900573831769991785592041629447969282287959648295668362743865088998780224372230242975477587241180141056462475753360928676623011955390718643625790470423928338379067856393057336980941353235833880129418626357647424421123077707383649121345478333788254520100201143845914471755688965523803474372932252776345578412430303854681786309358188792049166917241339051308944571353849563153994472523239013228301325873826623428367791328536195588327703026988985510677614338961098761489263955996332300710833031845039445847461708083552746806617892746036230377795088595673022738348287312708118816632608657807930404139824864947755170844270969907960833395350095566728167606747104805572524040590089079875113079023448103222519721870033499996130888327779514687311605436753298359925988054923064664556203119695565589485522528502466556692877602125497210036663302772566014076058661615900164769460869717959674534465561226382176295798823441422730391109201850043057170706387551865478855770133629506103109450709289008531729774155935040150153359583085998814068960258651166746936558595226485665634959220504576822075045333837334183149489039711853882593936819593342697473034075611861014063633828750241425266834713598249168545028178557285689016833337220518388057511136693794592109114401438920260272152729475052953670628117312863371465626825724239674664144893714142781620686424460578078823260194966689597345613556509570095239058398596996934200563935052078121709774438943166642045826464690944389361445493580109967306308812228932103571846313148713197229950391085433794733156885980971439409374510309648746658204706631022031291431520590536644982789417473851011744805931471110096122692039364060448048219142080423907961549448272705515563806910373850422877818040445893523606697844482811777205109465551603143874762277479798691529814010926241356823371384852832692657310131514622736316769712219174252794966562071840508755700503472754534102396001449904372963215450746127368133406458599822464251141793563356723948970929160152590923464650939128744250663931900277667401648964391335067313493223720523506090912182657514969473673707257074270862727752290243798065518497838274683163824070915424076125844254989799887872016076824333007312826871596202333451870715500430875097402245501251060006739504615477759597706201373376666713658247332098148669740806731645531522497348026812898575198469713940614969208705790326552577655811773005611160943679252819668574634769164611321859178772771794925550662754223729944074290231197510345325127311361847008396527819628472196023792995163015124920298604663302226470674431677063477822401968370726818691385979017100008159134534007865680292548293141646091357259427405417028959635628313188320043724958144693001968052972384296904339513890904248630347668687551430146465054326662552070731243949030323025870481573790930130134014427085643153418962844127987387465967724935269442542049659405348885884757855928724032276468525507612717940560326040148606276970169981192035418534079206443216010883851425466518026590363470405626456654275048509915150861731624146585305893800273631431794353322306507754755521785693258052595700147899850560285418273750705727569823044772130673450166457229443814687838655685721581055241839433179369171487587632910584952085785057791011939748125898229654765810700998472746022182643864911648820160834969270792403659637244891775502913600193217732376713350252167928665315169193465114215102579827187564577746665105354294414282227347776470864273527454499685998448654451589484339487996855347894312161913667912536165854910080974618185583989189229564550328196630402601026755209404132469395578825947166266601745358861883053989142810383450484884934205906001070747288602512939900889239576671371920027792941014440548544381744178557521395719623341883832166253015994099574354381244962663013989837310763751680535027522282253512879173436081971230652936707172366055517372375570986268804168609847121949870032503700285867478747344936621484596951580749381025969132270016601642403038142315971542761401296251512675746068752510473359181235330947336101018170951631384515534073523455168439548935518996208074884576427020242806261423791516652079706410085187208794817763879850602697756683263100794157879776808851724063116988364352680328310111958301289952932369951381552391999023160350940977966257172070519364733008289254787759229120562537272491060934693697724435706450838376713414233139324338048930044398287846887599944940438566700850730976944945228436862083824731902877935343743645102471119883006865869777525350974871113972753886939260426220910476570264429904240998317144836340785537108423036716979695542643106472193604837074083379471408740764668545561424023707820064442785391736470073683693429260112934800204766282277581944699655231737530621048374127744035678744168451826405831097394459303433989226312623570024313591147127548131335543328485396267651259215013642991564740687921152226478331571525723987927251180500308303406562134328336792536380802145386544200136514280830068551845548057154518429868393817339216443414259226697083281095858582361702894713053430477528898568327258990273975459753867136091385606350483888694195558228139935527199605298819873607706118289094776067503032644866699059146102906953675807597789708554940129804736997515068215099823889531287003683713969257709471001214966256738031933334864175655021045956404573745946633432829156821197877006206407710038206562225150760393689848118978427495354838102036052666682547425465123739564852590141354013165635828210570801492701644806292080497845257950362590715294469123167761699763326895759795684003855311094246074076822679949439906153240075317198773851387605801072333483750605905323190127199109340271948846619192424114602415116299826359981612151680538286684705024247678198933364317383346321198289252123482669832880366831381327013859741591248192351823407489899919037453746651167006331701706550200194651089095682410635862010597413831450990558972502584182587204776899452710695388596408995776757268695264628674423005300437333904477006928846465962284764972443144864056853106757981936802510935618439090830904184150161452990725391829934714465154417143956629316552065569444699933495580668436760831431136522277006471812201250876028043119814934540968171315857908853182170497065384597703729628965994817807032648611768140042354712418617491521444813163143980474872637219242665822462105978596131638000613870817811940526371406873690051796276382452141801934464021709363537429110594725488466255184396223557267072435700593413204930103725079166084185631923799615176477807839397849711758351503137200091438680257968797385199315223554258315216527094151278376617025344267102843825424768070493809137125870881570543002335214347580682215401428970965665839597964007711247943471874918232624159337939453794623774778706383958702348346855005109034425427311489680057882210870303045797939187737415233106838055464515262694701597614026807112875961775694157891908784760173917958244052780855957016553495975580989218179676699004607803447116265903628564890865727169796416186308861488006229825899728739327455168990756496529627108246694259050099065228165827545207815243794284455985680523462512693302163848408439568507637578386968024205167785621218390976897908867247758342676165517918096428196623525545461950606254632080489932991746867717581541745622475527760948823370077962191029627340235319583396999712517350521342742990228683257798008121017714601951696715191162826465942687223783245748350826027564218613166718675765516458171580879517965914237601880536726220002727888532252757937222794015568082852558717386748843815751347413210071068071628531100012165283519801302225000953070132752090553937129790043223048635005821842538421141737568098292675036679883879115341117579887864673917027430461430394610320752919107285966817558106110215853532224901139458574046195565291381116739109956713441038545423224967379682531815690380271171791128390275239705482681560754143585669769399200190373678002874170832602137855881084395768067103775952478258318609230199829941565797760633440451218842500716120577791567498065827533555160595305089721252275048212970018553253995796161701721369916293885209421361237417102842627048552420242966660137285465556538608185399058745744666186049381703867852749581782907998503843178725400680682744103156727504169200980653414262050057081423545163648206369932792298256375092770839213743177731000244481162491900302239452620138985939536579958098059519667450412298038654763162263244960796603314577725243225613944870570939066224613991657192889352308282813003231109174431512477661158815243734110391345731492953876107969584648095236756166960415870344566340628817414075616856788646344103292930373700564576313446078240753794897636019182649300591011094918309606327306438484775057849126678395072571859958631317436745718623091726851874234389380841144897952684814710211901944502986219498582719161661878008256963758824293477089902886257720617691142504023128037432193589823159475580298190383505785997799982554929940419658815786187593284314273265440263715100190375957531963836046411184292620896261980645197166082530629918728119000934343609208778488277598415366992042296326829406371591878697739077291700131233617235036652966149837546790126184964683808501887070562532125633661020161641245132587385491717260362386751614330988998934271169980299324637502562869343256597841550766106290913059950984777173243544483329647132876313211002726132876356900206895653980268791950351164609707213201701774943555583432635869135831143123909344626138789614465345516129242902461358555166741023278956515610551598254580120377363543529041503395326559854062152972398259934478495110852987142785998261677510011699748794991738112744928366055719059468638137212158808151052030861271461193283408044312886277221601679413793762042297795942093257860385915552951931353097725053611961241080403286952371440487319791627447330046240899088975174870144826136594837757773759900935512489538640567597337013826560505478599937988873901015422319048879094893714407730735397997473068187326225717000641815814256664636619594599709985890296557132358824686975131899599100868020151381127229727929048537170273067631678736633681893473108430036684142688752454683388338098177064000756800375228683386698065504547116622424640121196763179672518169684322991217454999491474087115283722872303510402245536203419763050831391207092741028561313379941206046865148059192261102092917539908025040229762887622095937235149186682807269453142355091764881217385506906890188088594755820808984375730671941139771453968556877474383164956455586743611459132030939277727546803539599821225290199002934876177294316467215666315324404806154993321367776893126498887598599194821575510999363909741840869613429622037791273198411506665966061031810485579507961568962185889751916789926410314531764402377176562007505713736990830487592775801953699147659131047743923166928267416638460160213115588885629768157664438266586910344742981228659855006705107266388719334924474786361961364415216835435066710877236085452408041295950786848308597318739545185828623188000691701749147635535424857297501376072974745832339858349054411845123325604665608304702401213906939312999446114050111989446263475675344794722744216544142618011420742981468058420677902627687445073983877057976522917085620380866653317510266211267919143437769024572664170558263222029550676297618313781962584331715882295396004196768335114743362511431545272192914328313207898796871517482873721125921754088384075695082284508887875957659743218687256630724538225084105279921512908334916725876373614926161365096825490581971102288341329342908725135736594621689963980309751507014590327717809988264544722111228086492508509452633385020381240591500560436147950906950887585493344645548022050088066412170097023550769341157730018888733372615728875456560023006057822749833832813281832345971004926538892436276451944288866440233480793392141154755423483990673610495111649385881565740644120126660539680305636612395908690724976032538679817463073283524545593150447628058654989962439029439947218643439256593234744614261112966015001942341985183783592018375406403713318243580827605352815809015602917048456539277924356728672039743518958694051644601932248270751562014962359251829969390697105552332814810150214069706491975329188541970844029295242042544053603659764857276670581920279759337095053953819165977715847256984991708481826297861371707413909931870109517377858799881059320341104664311106493645560774245715749006455500931897258523988233474567105898311950415495763640756368287403276110186486909462252357451937626003541268387626172879357792117053118818471674496875777317625448296136255057158346744723277781598575987634443832196448607533966802680051595141630880905724314651015167214599537950421173672591069421348798755672503231444797418271646592889622489969730086149543506210467926169898953334115519450157560522393790390080423504169225516734404943170801093314190656472065576071395633207742839708268585596888416105159792642049157006283643034727729845740571207699093923870214244041371014642147597120606707424243693265578495057064605480393157210748830342155045410420619459076939719349923138525691637641814948716620348037500960288683246051275584230635804949488378632487015678111906727523223604369706243929480270422077737507380367745214972716196137564621367621415602384869609103626887813681883587780454561293742745555641449568154050704406299923930391193677304345975111700736915151217266690695331168333802556145154295284580389322420074255617860107570812921440325425760667429731423487365740324991145068597437642778172525453082573029250160718440864816911413960626220931859713776688585074194493627914813297277479713613527840306119672960504667883260844899403512966519728418112700308038555030715558515526966628570268543827791353468121931533464740659408102639588750483390235937534127039364169953178082734682844131882480959567229490139101201676218147810255393189358760051585473471645091796973346196038066733523939885484632340068230410797593342413317239631937018055391658138972484015987055317290396799541554207410479746174652776587697496278218047546591830612274907739034099473877081400867789268344010047608675948782800141846449163851665477208906664564271228910574198211708276668102200546672353926211834944164999268318680658607969160407623909951132520011672351391276926561841320941349985787969245666626576409168521539460186625531399864556399150917001333448249514549116046229816973417144846814093129496384637883364605539984249694155551650322009438761626809642433045185956782866812046854793911613235834420770616523184594093659465635891001374442976969677285670857159456494754476954530780091332053792583982495078236162331357229479721342395829431815540285534172639479841756969986297339886938199366670075307040645792540928836151429219784827645401304442662651184778273629546740470507181250770456590397947837425121821212027065362752386867177419105117069164823749844546610383751592420828707982247630294058614065036423301994416347315462383824364047396274594148215139354216922488689473053450163318089228060612913050013731026384988165524706544663811840961172972248048620626260733973244215625361491778973096464922343137794561045762396212866647416510568706771204974365220238536519586917383501836631532490579965919736940426592667345843873405666950122606564502365223204348406565004013499572283443683103810208771807017059422051889489941655630442835051489508632234625585623860047431216887460566688088478806116268255217412423670793814362769032839306207463451575485517564564080726915255779164776691222428564708670856797870693891558473765182204267777194438256582210946220511684241365116906606907777539524805509506360416739041663519982758212240708723535839469216721705143938340839445955494183834832795825595307659373356328436265539375819549451218962855702881641842734637053116407423976910872793174860701802474201245767739391388275715942536881519652258439910985487401065672042345760248762974293054447781873297389858773714573404494614844020443916839066451486477423562117552180382443135994792153858957841578828758393619675667345815258341523723311330892675946340754357858981333840761086508235282494597231385088180584942014089167366522602073019879659627337221738335364368123768723723050445982629545289339454295276594798878292204097206378024113763205759016097832053727543646101470853122282894550588481678887440863917715590786855337549277284305029129735727075286816793509113523696325458237796541968606332888400542312264213875814783494052901782426406438585163879774241448382744903706090866593734030161378795759113576058050403691745282721437271377565863625140749206912551430893194155545390835178882474612096519752157953842940526440668186603371259284797580030594282979165607691847964480389010712790019697593851362582628379932354771147746818334945812751490700270939449562496915785796644261625842353155540587304039980532626084292661267094195448269903108476263736262899790795768869626661541075939801914390405209600683826203134628992680375934963584605462100413665175637006094267861533166081964575318674147901483734062937486077666740783099060376873996997064571610775141408090446673426655822599747460501700928615418726764842313947919843002923140397263961919438886577413825625964240112792815825179728662363019199059704129837831351503479541188830095761051587516905435486954536222026130564135107772185343469378274601725105550191926293004471548915047053264730254432425697061814974451553119102190416488245972275984576342566682483834419825521529056690197347565975871838405734989892308209052676626855027305761171152428241007637801681509916310956307568051590506108049766547804905932255485055962562847261073607995444124102157741336522553941663753574032575355379066920263798611738260307531542645273505881266515001392749371777744412100035268497456380602717515687316417555345017631157200433128482986563712833441913342054533771480391432389280984730121518876888586223460882482587613785524454930434505838354519762538282182954316115519061552747126197847270134720267066540744202730512027091592036552532348432088420060120032771372897475821543815322857274700378212836158857311664555912480335334161634256928183215086915494345993178399913777683183480674830734383355392867251650655348750721276779253673859053454562814708084220349170497109490955565503435638844252712263342902597594653883754378488078311217622679788387955596466116812797818262035214764956081101056058859283291703608514146109107873586783607533325843377338693533746590526573582264999932781496833007554508648516757553092560525292149649367158297434294787432467258710539591048394293770833088216781003197333142794765993104116788896678874791639875934971105687281970550970297325551864275970583052262609217962497506827336095053491478631148531877269878953610540123427277720188460355283648631285315524332079310499142414111943220505730820501848126475863404854691017054084722534848801421511318385183418719247878352218173375859523823994929241784487879314839125156233153312430669230053544801557671802458817053794979309142583162729117650456742277607633878312092479700651170794740740921040431267883295007705985688409000998432690205693760779149763162890951902378183388792417178294222373856652137250082315491002603049848496590594105351329118036109312390921456903979147394688935180643143795831174618235065710040887705288098063318918571812521697761772447012368547887560366245820861857424917048071260121825793827904896787052976367759645216400767960564482389490000034731776608836964872763227814340191989049031677479939986420569681197374184629727463547343087214352842667938953716585621524326805470780874903945373490407966860541256996178338915379500975782810843385099554879606166926344201662143252095182883971197812333842689961592562259893787030987427122624589886982360601118069574950636187108334987916510030026355764659572497858780541732117590065440433658009568879976568213445006894279787249189444190476242726090483830103357158693957651547711351455697119280901427679732974688643734757602330188880933290721506992924953428825645069019743025753563613107795133438301633902104480402468143080559267586617255645090241976232927614560862427762203301748694615943334155409361186484866278187696766179752444781185267618064283226972486091303863215400585749171362055520237308550268901354214553781288683219684835535440399962231629280723266864262435873401356552939460358428940533642799237795837289536632977478482488524140442894603096901512030065971317027981279698378583547730923451297096478270108277280236165731467582953452563887264846641754371314129865570925584564377409168860863510901374072051293426609060879231573455708185818730456713673844783425536412548716468469437635506483982484423766524337050957640278849161071982443637337502242186294790805455693673020395735810568046374333585570304716733126144537740772266074995854427771804987045125602566873564194250390653771994458236822721159289158887772102996862681583541994984688879447740451703843676446941364305255271720808941664094581637427803628777683616152678771734989174171265542569074448818954850898578509698156242418936856072051490091145982627500515781062294035927123233828653218916594779846037707646160746666193744649816209101393434937936993968483224880650476656010162148984502778157741896097311849029584366449137383245304601761531630004575065313470648733126044643919605951444701845337403303124027290808571658402673018932817138667918898003572438719592728151572812569839907816078877738286760622337338808147126111368095899355436281661665540988316435477537795689922893809387197379564238990684335614589789580613398380183739180871370921197841937587515313618331808135072316480681843812874144100187622849119959200105103587302873557347282990529866075691706433680525242544197714802091493827693386065659486881042082874276196888440068085207637924346189201989762940944246733207244633421492308324101596458048292217031303202875307180269823609876563871987465789695961035980489131924573673188254394033850437797489547550994201898558264127605299194678027688201028797945158693814255207642302267339052419897995463687433149691104168224484089419873615920019783838576065511129974931273192576587025608708893181044802920255958252177324223375417929043738589729177605342206941690525963534459834538006943939993055246971763667032002355426394005250997757710295287299946728676810339864605969158260098429605143690420579824932331998027434601495723278324469754110189997372919334312360821578329613762838526182411666684270923370012796912988509179785153964664731700950715465222820522961250113599808820644249829486149346315985261271305782802421873559445194787121443722933800519107301145411833461003548606320522854579821451927865692397968119298730319528816135252948780305060046482157012124628978874853996891240140199048565213804686099009247742251169768960450567163645232808342091354373801850098274082024063578782079799715319305070072914073769918498615705995620504830445740833553699076426713889522727809106682102909992302801338504020525857631709910933849806439322534551113164775699555202626614617585941810498061854279673491015287084922836047032316702087779205990540482219478934960015851950759563368434060991892458841411326735930438089548996612093210482945601929303507923883803724358811545184442352686647180247788162476027868782514804210379525390737690231049412657304337810398701086776520498437608398595798944911267455592195048716795787899258751138296060815252153585937268583481008306980746165662805113765791500658851873322322605671813317803792927856908262566300825434634818464966554034747306409895842276757310981322513884023593053256270822082554311143068049801944551336642307181119429584873697417956741062948871168371418585700779165408813228850240696337588540657570509029646856041882894741137247521264216963016175032021017117288645414153218685942829899589738068328005341824779733100679426751628910075088117560986436679247477862261386872034692983805065038810532971503775883283850222384494068150980230117909794771978570768840961785094158928635803194512367396401323422333690306768786301920621606564188269734311375329816253111426286165155380343143345139092792934498154200261446225278070267820855257948534723610518576598772943242406046063283686669505691054385550955526366194044417186191750437430097460435597333595972007795971391685541191153423256812692031256662246857523513756425666332682389887595520011302612734290285726148747038402758838590985432828519823129751080540099651498475425161192005784322166792604076881474995830219608037917828082034422809985908480808551328127658953152223443752145670361198390527772255475758070153630598193522106031444835950733231287021203772696900825840868685052229197452881082418322658776323154886128714061591381911390882121002404787250730663150519078045159896679623834498224335731289692194962170578323439492661124701580055236311812693262480068839165212111154583298107962536600707445566321851706335197999513719030529666497988060323011223412673903556455259446644854478054605564321003041201104213637681184017628636422752439619976166155406992913713529973957095698482583255431213908435582054269484464521905789682877017623104883808722838955072478750434870149059119155966538379946412422536257381946335405063836670656523560891626749268202281239433304600428425730649029697325037717306591941835429207361548126767641510049669070251009460785098377154795532557366425939707769730493258083766335175432144330193800492131851902659705269129185074995650101345815579483294028463333795036186470482470020394839839500070460592956395997392195146603276247557390481914374132858889716153395237869496350341200054548520367984332973378666809748493157469679904448370211359205206471706905182275126040045384761218094171157398690342682092308774162058591903255703516566819475395983170756689471452372391436913237903818553247242739079091971795534341539020005594405782722370487983916553231810267046548827154944045115220353950098831691253247828291169794784484051369592528328563875855254528891644212265641589216845464753575326108104653637165199951441907279592751744160731126019760775331925654988307042465977793888686807103551455989767915018957805549663827217405481254188332260367760255172082504410798353247716445737445612839850364357750678134784497257065093764956895425032588880954167685582008456020014465512233909965308932262026730961953522711790169107191367800588339467408212964545595371095399536270292617112602959535426833996262044800105816480666739365427670906274992554435891023278759084941500768778505252000347544290086886830006580879139911379643717136025026241862649602043620002284690789556524666843925260613036626371753298991120150050662540979750297609373313661435306743035524616842362842250981050494568481873242044907441161995395166383360214135939115075115669618914802897460114924077913480596129910282978577264582268831973186665333883612113550813747834317652152605712554940076764279079024180349409562056752575099565702468953290186025471072746542803922872167848661937206189340861498115312376574472865604964141373927680348344598199930450049268538573782179555104140081037422417337793444714591939009807943981853797521792221806985765976151415829012081560936862571190994834465746600615991756856494586111387532898864679965102284468495680882531055995109813697629544443314602781307931059893470877426762318802175880492011817880508520880270482040131240880098221231801718380891029631861847765896118627391651666863670112062900545302147087102008131807393289335285906374390216819450407134070964836616457413369987535813961147255713536248231830554998039884316736471879943390415317096645251895202183347873133154119265334299153834050913300692390485574120295176623340828030354256064473638562411628852723115903882609967955902576651810168700816683933403280005680372302075755134957312280214134465446624612134253793495624283821444612665024205570736405015211379921192524329532778554221937319485536924574408508869066594796773871193098674875593340880978007332237682789980911587274513591555804641656335133134488449109877935554983333629184994246587500291832723386827850074972382263884917390949333589934544448127309686674272390517825890494015885808433199646214736462396609841499484513691881495078198314377468280976564709516738900577268324918474649149289912138712342255018775078311196808080866034557567958793564195224479656112302812867146202793021399674132553670917010409982778565711791192685482220003354431415119539200433746953638664008494560453351772016216549214380089921414223538773280745718547592288066082700456935992761484455417444703886736471485029097938219102428999142535006389060897696843654202815563899926169668585685398608663124189682046236595697713933130697298262862742631581404050045687175328466370543511397669421508659891293813877272187962488289989931250127774718586881034743577837803961947665642759373545207767077741257897380683283620932871452923327903626387845568621456513299546458852164679791954914007469744614107728261263392532208914426819353027589932350168344951582390778129055120075931902525972270628514554094996020659150818110308732660676698649079789342549019642230352454810118786053939238760648323349188733155576877959041884423337473878579847720128299643050229824154618799588891176411397817671587652819565514887262599211471372317564003868135464559663970980455128083654923577842464369127596150569290340332947851131091192588282275314203528542764812449904361377953264259187954481620719569810530347134511190524504166916703187984640915920304778426067760605499429785410688944363015573161571862979263039241373312264214764070727783805177886073310278218578302552076287445504310989902552708044173628024908608951768722927578209531183087185399150031824619824329087761925054649064324273173780746819300573420186554379872478359536121350464740817092192574297014414661400803845679510444822495169296810566789632798405788231748873202091226599518426187448193338954687773700257712197292538762080406421053122496047200302744087040868355337869761048825495009710639978072711519668668905354511294428711592153689460825563191363067616705172773239871572756056039368781931706506506179099522725077245433607218611320301234964813522625332164093923616655704213838825701785011188216688881805023927101889849551497219872651533582799311361593978102822425468615708351029469549895065237117809545903661065879293467538086038248149191712128905640728667547157386295805925584836005765304679231848277490571015032321442437884024078444964060412536412613204338260986196919358450077079964700975775900795772586605703983655585385300367019633361479564271333190351624574668265313204732603538105590322870871867550819857571476819603410131531557592779661016030227119945889633141787734665787432413953623117846792134383972320451168095074704070254721678901481607935222825181026467415219226691453951550043760429158168904860193490500199335331259613437944341793563844091932868914371243314647204343898457808447605898357570860206591697652509778864182790513518501699440421107034333035307721166013012929583677617882805835884874064190018128603001217987594331954754175391414405865988160528007461050377266620863413512497060800423556807570610764893772655118006836039169855812714203453135533397403765730512783693899215238349405338048423103166739855447215936403271301810142184875767177254990525941469894517844331536660621759210387400212332668971663868171653137601689125195854057992131310808158333108411328188778020263172501718139709601743204924870500149361757382536052334175437493880663112579892125913850981882454081184280275961266215370086612578126812873820313760630466757240916783076724406774508452120491121153169013306535018722941667338374739277832996096513424133127959629078564978038287438853532474909840696799951693670116813000921139207713119384191990323888119052127708272948876856407886799183739835882312047477650537057588071067890421299002966825560925710687356105777449722842440395277038364654985904229054618032212186182256823749548539948935494778005964852283469333775454994257303213288675010455393194367847071589906456287867381977121300799595936232389642967202987291464558979259447879606009968777926326469808927332901084010734842012355595386655421006155904124127503603726622754761599764926847367782083062849207634794167574709051101130476672917151006607031597780130482103383420045315631991889660131545016476900499404351582349446125081878988008239765237572823806316894997783675174974136316444088073973044344145066441676969010259380448932985256093013858173685629675320592372868826545879190707044743674906175663395347321917422802709914730926503000855692421217405134920371114594390037146681625406855917452214017842965164338573126294082306745321917977329963132489814383285604394010536579990436850326770021245254415740578319659413359064821856224249370695800423646611823624258931792604963924690542994254037025995584776800435330809126782341343712991395275264889586488127435596488350867335168391919610210108641691138025825227387069259505648094229950065700536877627694007444328958359134038387239782175784027104438975755937187554743005970605434646752677689666830879931545252390011997232380827693462979544578562688700645158989211929985363964138533069340435446359910454416135912088033424387984780417574089346117893761335063102670358685145242281807925917230470616754347652452936323889141850096230589303221320092154523462769903245868126475758459233649378967495469173402968392296553436234135185463684199087040441681638193405001625663963261788401292797968757265896986253340161535990375246780321140428305354220643289554444743075198604204758001575181933139321589493796943277879844170603196979199067461839718240601516991584814088981478604782937751719495738319071610296914596696214431257628463832114329949525402727587339200431538816864561682421652139736067554554811828945350670381337150188612205688349628308044767072684146977281672916796594319333301819898066455882374012569657374095076111105082606399007087031476939798815083200131373021569051231940564988935513748345418414495182580842702885125194176081139509977034676851998952472869021665571226319364021416719745817704830069826650695199355913205659206137185187956551098513280518039636907377027125442985468924732707303700974416427530371401538929603335468377482017051653459111779292337159959635409929770034822030207372473471803024909385832472719543939899207507915303402984348133536511197797162906017693018352608307118732391616952519139668612085531225224592904073699583187774773267737074783185021411845561413871402494220544969556391633944365716494534310272848483063259727208755908129535713617695385286206998055837404981654503492716674546766819099064278557633282523385318516315962638560379403683918067767268382669133622504742445119143805241107890202020863400471573226765650475321341896851784425912418462072055834545159445014667318013479724433071772851426702238065504337231628629556511218606653966411288524610887043152420418781166028619731476468147867486694565167454336662081283153577342610634785153920178357264303728935065297906528368761223335593075872816518844752226579127154217642478495951193718446749297796932290373421138626166234465806861003357848370540618743687372493445893042144801375673211662900444329745096118249373554407102215166881612205117205528909713318555379005220026748423442243171617516317625086023806739265143508761841414680454506329774804161746300243311098877304711167024279287291712900130868272461312796998152506659269623065892735161404021855386942964811592765687380335234166194428168576309304217405730500907340251330249580541146373583557709541929607904987279849553979918345128257502307548173082017321926984709258302675316685559620281044903739243217406494368066874402638443587787905531901834490035267977420922760967051966801358517717163747180474523308125222173257973249730327074895677291663587105223511643001450936744028469024254054805430274713801711516182617568894413713430338064850573463524429680531593780659005249310694074415930398181245454135296173784977368488970172590564680157364280931358942863749129064336161922035480450558616747138753986562801786799461509821632943489524804510993902758567651361164743468821828450239581977788513031526845042116199517957471865350553597680522934098249313699660664959522107808638599014581215155258647904188062046895480223264063057707649523696721280627864917427202402892897562635172899937490942069618040246256181558746677465890105854146448436210097879779617971102568063764435694315708645675680618366442750299946140893895384351308542239153156221235927222429990341559196864244731706344245545494167052741654615413099318086798943163317250052440645956942905591536800022165997116577370928873626564248909497715538218632119539648107629632610645934536357083663806263326574215261059053306111963830462183635209833246215051130784257061802268506581232462514007669231624270345848201065983714562647131282468987628980005273434882373394046484911223050779816216180806456087620878888168069799523357668548249447556213880953509380521263611501972000115696937119608412330729277837379594734215401368833101733622775027190767625638514744762715777938891355317522540128557698662487884298659851880461924617915703524705620560281252445572539110127081380770656431117378353921968740452515124052512584816442828994754930346114370933522138008572399597348132618128439639251181091035207889715699833693780476224959227864908638678341593844531789472703817995628117995457557996813255139393192749055084593512432185359790522824550651566906361967962872222747934961225822508667171397090041106499736578342339367465726378973273126868218607168371115659106381275651068901950565519548491380072168814971410883455893573144542659014151881689620454120691499688725823383312836992217631575674287612195783362124636838097763680737244884811327190418759537767785686832654265548322792754816508175677058695310701855023327711715247098220641957235596072613897611030592201829479955952551506338582361581030776159210488971617192521122824358525940808102511878745316941625607920680343636845976152271400657170175710590583183312555811952818145089729282214546170945851082774986653298939430360262273204850951268647562341986335660386050322276280746491457102985342710570605225357117089360379736438390161552365962322423649137021163988716518404928040798544289166262605420499629537113114571325907729306981188158482914430908236936535451239043650940521224767096088364201821501798178507824481041689131692004384728349548690291109781177527395600224979225341226826008549429428367544610832355344318272339403675289331714618988863023377281999265554431962536626469116447200373475026894012825280425985818248571608090416985846229750780781584102869577284141697455534346571120930690955463470985231042010578462856137558519594918081158195977581777418698589504124308269314683051337480034727892969874123066156545402346640684740920747776415644318228488536617754812259885678828824176425080147236528380718460786565744036908782322420560136218900498355603060333149619489009650199711801210656274273935426146579388572864623602971232477237634571632961161379800710195765118026599463507999947805555935184764815989668851894175787788887257876005747063109459227493236082926746455775995858496382861105998220278700220394752540365352486426077098889191960036946668754196335460179706708305750353482680774742245284632337687646275504813330571936697325274449789507441850755457439131342376686025060619027871513480394951967009864566149029670845623339740655175866562193779555364580521123633937771663388452845395165972157391354494017478365071550059356688891613143067676940920047228017310439486203199533896848590293038538492265099539266094124773742300059229816078796191919595278396024575585375302932495471702609022749834637171239955079749792804461836188340883760164574670365730832332682846515638071616689862730219776018824527176268031624113795233980755145899256109443285425500872479748241065606161904479962322653992892966487920394309194551902418036090758182337595560780367354506699084757747242044852962359310022406445202222144529337827961544856324786611386141159627967496296161642999321853544273551471138441988182557508124832696865391216671953479579915209341326518592129194820715680739631338330608688336663101464100559360959143985315746238013656159006800011109319533339593657483305363081254609505664070120819297272828019035442010693061799983822305456908334123528909436425301833776632016733811486479325021718937767696820787423746630304565834583322921798642471842016747605485911954530430491128189873145837559011670244266548467324967123067822177938391956777889644923379803286065077753009089665718761636990132511647191987211185610721394789259509760061245504273911405719231257384282569224531661839544691823148566494623502487413815831244303059054976869425009566420200065476677436317597542760559223516477002057201194821446434014057209703201026040124895571312831953680352809448446740622631707071166253581437864479820063227909198913774343654824607139370690939698208329846975431320200809891091752468023426183650026123694565724277447206354925903299156695448760522740705910748225247305926400378535241641748136006738138401914996950155252473769430917576958942869358679964254565191439292017628519340245314204233680612481571006637564174633349692820495301177330740745903720643529658161390006633621682835098015749641246890288895440928343006332975752163030982967550615185701195908698839862446381596552272136214006031769073401657111257884214038457905761815211436438551360475273282456702529637699310316159456650082684323639477975197705748506072657215913590965580381108795728432497589840820675368877343147744907422830269473223895233419318966167762487601622003812916378417998768415469559599791807408592562305342296836218640052808611751818006032754466617262880761378107064815827666548792222226862474005844126292555663969016757730358640833428665252799459950455685528728510638972811997454558368081022936037313614854515638404081643694181703227152238333658045819181777413088164655858785676441361428879598987061154405319657230004018524903152847624725380322059916167209948234937012158674859241107331354437563697165473160162100044808466787831672778139962544582586682607892709059344090325378890624757064457510413263798042210502170876139113959450662247072235754285008366073583021543262801863603044422179589890035204528409496601308023174009641298350162864146185845943147298805819990447028625407970685922521370059885736528093981412611516393030123477958236822766717128946473768486243217096987948293795332303576647308291955718801052289214144492572072789482284979529365893958388582122993367453947278527827411230268971360829774450890709626965795474546428333359131524054338166074861449687641695441372795406374134600930594766194536106659160773096058561598017565920563429359417369690888901363913728387338572128562081936096609412555245245892194434305326151312038276974965227493969873679543098650800836631949941453662973730322646643130944177693180854617750134589891455469181526927983427632638775441992903718136595998663638739282009940669814390915052686245041188254568438014672066718901824336867250637741333500383242122166327727549161540080544585716750319108876628538887752234828006675578298925674911003664931052879979798057961610349363828877847870721401143406638198608022503511796051339355462434237896661320403355670180516608362462757418367981632099992907923257345860135071346750714735193045968180151424467217194455649278434165149490556078800653660287042925831677868312253381018180469029282817520455415597601345659569080387650032054240183427410169742475565319783835337776822139115549617145354312629421071128718657709000231906335531913783457242508532630715109187642038856052844305850151603512031445771733570318301879362948354118040192083340387360172893112307960467031478092297519304842231416232602004254152115112204577704366958002720998073001916141385965848417236488237359728151835770070565667032004193316071498657235030723070989045673440976250816022586158028944341791633295631036427394257885468209686520396704114222549303456744006996233974849413541583625187877934280971590328132195951805131092472036932176252231438331926557324099834725485871008242390946429386872501800628252525038857478429437873151552996450786676721983715588315353435811473108966633620083173210814043937859324574442510319998176560730314394502486578862373213628547035686561768985810208878398743981098839231088669035892865470199451806170828375535321836892762667162732384626686772616661899167658246000620664300425637041828169028713803738490502113776208039121450578094547300610931050059988332921176356873508241209482188180570373639825064541380459243011340549120647100696918723782099071742582026224058564392614976017787047699061405948627807761292117777473239469454841586705011930852312341597418307931203846500037335647773724899686538459864657184392311351821524696562753586487856882372596338440738700683903716282127876132798140615891746086660262645889948013336670849495974908511257561635174040629731473340084292609123219396470476675164654777855065825132779971233330151895111037758238046703708613916379173120648423178025902799770868813542411525068889416644281863159904480692070830690041434594640671774960999984567909664990999347874166088840958274269012025857786886725634088792172343106589996597250148545399733160974606740614586049268310301189505296909591109497803902340507047098874766648386980704220692112813490495728908314124587120781550777835323429087370495298537296665929873414937766220283518566928757456619616127378775082950207553090276330537754362907644387375261372890313347905559386733633623155145139349501441770275346633559611536885859640083027156230970742534185599786268181657735492872430091494390567116780106218579490590386503174645367705617428923029973819459686315713756441007263293180651900323487633140117280954080323101910069660656477053706283359511814795185813839796079288211093510478690782876603546992330678391802909281205796202410003734294827671928202192320045215915850598135427585294990014395541450505518102376449108748472410511826125324233248267089976865766118185724259885638127077885814706011277603372510512913100776671008360979980931783921415463209518758950948313880409732607516060275753055529650071479896128184425197833167166447596664507618011514429612242099522599715964688238345764381172317671814201213926226071951161241490436318240197459715198101750964633529427749513012627575867571724862564984954176160691655901617382138998972702212194273954903155016106243899860683292036569108135688260393910408365885701671888517800297479635568088366541530174376612054861579554181329027615096189593394732295134286279602108374881447585537967684121225178633788848926437455627642292260116267063597797941254968160526429202491977229087878419604120046587270274869985140420124372742255674381969462031569964569461545418826572577406452070949388668054899271836684687947456118173938801640744173990353781811123501371254594428863055235250970557594750854632595961806047581960817364213683668752917477903044160014850123426348301634392284774094555943055088153344335609709045190671679840564808134055797363869669704856915824367466866271361122188523207128319292926072171784661598946411887294058136017933198631304938873319394984869874195130804738532074080710711251073244942641834327411198174525635564059295503586210398125932246953497123037643990385280139472115180638125561643883918219001286727493779120706442644753918646359584201340640697055437650428096756125754123760463970126501719015261199782825630280284045030909735018310238955364083499098818063184912441521987232555728810193616906088870695002395171225943865558265191778131827871891138302606064328077898712286378787778573188751340955283482674027789230891045614245373032545937566233639360829304114100250813114918359342981328771142816880737638053298738406957708343606693542845392742557175308908348345383287524771117920812563543846323943073006240600894416083463300809543423517091182089878365011813283204790732392590850499576582991827798063667734986672848875928185156018373320690791373755129988671265266488515359100429449112676406996214774320999517512339210053342737360372455744140760990087135847813091031682740648231469798490387997059467571956286260396429117977448172303613142452890551204142525258341874523861559085442941444998082965592916007279007754698071251754886762446897111585575099765896598243572242418977921866394038902233511333696308274053088238772114512430082815965724042241264328631680532547474083584800579513574455129315056008169038788899370549547378612327008476263382894309108575798197136900047502130433525598580839288292102885445919174074575807700290063516541547468434399529369222254351019701018691489061145152028485367807411487978234886972405457639202168556385645899206620932008988277244290101382490393906293184703064984109397745566966288023269902297542337982287034187557740756976785273873982721809026198314841933758181151918216592218862196480467550803463535335127797799784353326167562535952165870932111579765992093590799421589291306244893261794947534939141693674364375562271997446223486054880328634827097323633813402429757507906754203086659828095520892657503045468500222560198560795285094890954668846358594866541666436169304465675192820854364626805585235704615591015872932025055346048657892807052459487212484089926732681133553401311271785332604116872129581115849200441375091619843609843890078219977693389246267582697605014237822076724417821253761671950562443720299633420741486779425770633790599462222701361473751294192255215424072130606522217536414165210056650411824990906967146450633466712628177245200035345782845006174148302804556366707610088615257332914966063365846472316358689936427744973529408482134045062407293445585948306486967057117206101029248419669692768539873342568506788466295165016315898727765254572907502717035125035455796379455396823033508653848628685914974289740596943278917472543667519313597004183972493771721298848686836434692292848816673236952075971765711946964835718468291823572314209850615825976180271281905129935703068294758827226008002722914267400696630675174676264238093708053400838977453369083284735315080862550176263915926776335531462407587341840169972867294628169407926721034919736063781720730368132392595260880066971699077646952700292853931597776453789540483301849149681961442685227053038242761010382088079030957894020673465424829778239814131085963934128995190506218822977828605095974647396975970429831448946119956472605537696170198012188843814544092672290911222961400043374711375928806712055564800086748632335579059169605412679882540871790620378451183782335173832329859724960685941960962111629575804586434943254564168365895513319822675146912537518878616708690267782204352930934192829655469530449665032348109992954791464227296550861745512094138384775873321292121153408471746554514672643305570388541884605715916308144234540995897909537626318722183269668648563465364530855233065002846146385719406115784237384004726673421109773217252810757221134937879504546226859248558876591063514611111095121003816878600346057592611330262849368281123188567561167313157876570338880892643030633976656682261439934276876733270099709314276128347383180031978698760323071423033575463533337023693826992684267072540391900032073417978746865034142962628932566258868119085830552209874772972655720074128723974725391729887495708973696005498107394475333152029217266009948477572635907266827362988824992220358817593913196894088322833599475757963576210373844160366259134322933878942765054347573007884086755333703644893645002916899972261698966077854269438416793009199925337840894826598421756793597574958967817877653941214265650735081555740603996900504080413423380355678587284962147957720850915153353636511005546179311171466893033648350995311557622822174982664158715188230104408042147298060231382557854883134349100293144748691333403744317727155084449266983551534765313452252045641988069049508401079286067791132844872951235832254343725090771675092001107093989086198323314237656031253638733474269155227440320025840198624401324002683277923966265020190112844388062863124553685786967042335525257307909365907662688165764862409041561272751294772632498214346566882333325353213708364230717403784756248261760652506972188529162672359439263279271848133521689322234760726552474070633726897599525825505866296973945972174692804582378004833962578847184632904289911571807595026114232174987871533444044139823568728000180678479196532977090106583932343744483591664359251496904707258372368573633097726648957281800275350817988373172428417573719804823183331919638099465570377965643342917382414480644728303664510397553711200328270987816380437191162263375037376991450346888353559042872804031249290924684560824272309966159389770464064429816068745984545741284581792572324936402514498465557255912320365580992264491837332387103088340438762028095806301359259343381819445265565098476757129514214215520788330788459206044982369961908086340844400808053875580711818338670099730544216276234672447897389038379340349089888931999279869445599736869359938461690416448920703654047067412829219639242426474086302684858744847951516914338854231307813687349983654384295255324487772924999693515856903753772050945229495350604465983956540480604644145848028643081337964086754081232176494777784758104112114245462711527158906838095753488805701054638986266571856662385407268715570328682951024680180724388668103865468615297096247089907005767556334285151923190969791401709259871236415062415297518159987181397583433551192645530474322593418287616514665818875041623775785803340207355859165542291737909332680267433009146999552790693734723590382945038166659778868316354961194279248257650065037286102689049972011811224830465472614147660733944976600505908642189280707661396891136411922604522761728039925693354303590822175551917867116177581199255033157163582104460275070182645152150114339823384371771207509520467865066393361811295104145262910818845259065801939869767565229701027170768241062610831494382440980863519464696807284570257665099032872575067424944007364507447638833149523907991130216653119518456146303106819865335057677829224730206645129632692632964281335597822335883029545273588831416673009170505165047290231337788215278735086626668872935385967106807787060349708925540893195011505841868693279721450540199160086758854569457876481398674299504038127390018938283416861794306388412960175213716500366868976049611523017544934438027519145691907100112395059137560448767465977057527135244359278507955297771522218850472868255344949794702137578824894029541643873520181616157303855302948626142914519539298412985334858577508771835332282731323254185118698670689399348931113774113746172312793450895676763056115966984528069178653589179442728061724336578384848123955342899386336665423566094896336665577971511875324455219111819197383425677377284969722954192350746862768340435623781336317792328470127839494175085647424105586560470249634684401500650867954721436802095861392275724181616206795817130373728316122966238127080542860593483163892815676890976161848566145990658996028215717603580579275899588157953707044750015764955739195094008643415139478493007069549043614062432176992082733007942573214271104332443392066870227234537911033132520098834584287084154420808726312856419281500502782795245505099628354896635740512904387913704283416064361022456195136661844506312621960758935031395370200628891224159448860745859032542092350855701649393775676110374881274755348988228281212623924565283318018944760948427420417159311763212177050030078863597055803069767799536582370134662104950385471495635450802645329035158066952187339498925991579748783900244373803494128548508655094047718429154131969426941480366404436885064155848061055573234524555823059203997506811227952130087687517474266776264867033302741630275504561316281205516107098193850276075329703451197022799456216008034066040462546948423102428216685711530262979305353425204291740750625120779180083099998224092362899420488123110485864651452578829893132539116487189144377972673723108236113326980591934989659663317024865388428767711532317055017384676328303752546268637018341312372439564812815905408987403589953166724996872254771084636276247902494625646283723270507402704790725992851519155243455071326629166789620681310920231466556431581029574541301290803389269122137038594507819590536746621761803243794306091256571577971589206642344618893212677701776111091001240342153790927944535234671860399665404002350517572244139829058292812900071363313120466404484214492572982784082798423972812704368903618831365862144876660825409450563579257960029710808733106444091353128716150048604192801720336491859472292201913394519156623468955013768346145231256792223433605546926677389738509476280934662792294599540699309690208331716037930910114668967435064899040670588512755931353052330636762572891347707526400209192924299989461456299127523901259779422160735749376107791112274968849194078445063813765255186050781951473486124145238354523147724711571708350897060470880626514543146958518015993823369263658160477024174221542330965211035917927884071958484542632687169263360114205584669746097437875263865841331199546970873144182796741719682005249142298536383656073224091432368939599949887623313468812076034968053649019515692786398464698489799228015910621030203026776005756316278884244704834365982352219583202836324031055766963724351156843849299006775248751298245063091999847514570945218649940184011323655807471195228127958949327276646790778132300270189908039180319727895295047971976196434501615688620811964211308811593769110618921894349550209617778246894698108587720506517985617972263069926829592382609580078883550230607116980948965961279658701527213564014161656427031552800911698808419804584330015690094563573103780155803259869897091999457174281787841127705470569055086239529858589075075005635489812136401526531388687977313549408083259383289543604566763628166155359480682445638850732210238702565786404837551925640426085883031437199642347778954127741856714502859015066499497370243849708004726158822756891699383125453091950412662198667564289565628592642338071220910040034883680234506387166323540469181662156543070402138446637290059759700815697442552523961562177565980847796721724794355656965564457208315046189810504273384300641267243632343665498151559019052878701281475293855073735496542993338700850647337825558890907022232053215189832915332271481390451549802585172830218294428521581554033595449162078404997028691181325544070060858512521695620362941956744871019255726078870833119142646342550068836857223665958837535080568654814986136241883667008471155442848628680493839852173840143824485907277378489430227807341555834605384400334545826529104743987633514236856492729954468240421788815563895226027825045274124161774169115322698952574866605428559715331722581456196991194932198137915490258378950898916024754509823501887251474448234396910195943535496304019000280620983590741922407965248964710828424402795215798595210474391342086812997329684131578347477908732482443823565691043258860982262590181649815664197627308594805205163005673057341557146417789966473921529309123271728922242581710346430529765181481756027231281747810982573574466163602684556506456360671459981442957101670081966760159198897069552653861977564766534651886687022623239113499426048155193802533477632067599261085709559090779403624849678425860500379504202625278044955081979084450307795449032110171948499049845003905841242427771585851193812120666637930244087919529356290554845840740457347545122252379240100031078939123812138588503738037151137410277817183531620008473254794583399197555145176258014729607310404447477605464145087336628083096744267488786650524470020620531221651918837760829039683755427685500514409903569315378866986595297783526917916705286337758667624739429390355652863479058887564071404769989249314107925870517361004819146777387174373048497450871258581268605325376868974417490434320648559745541626601825399470742504983181263400443635836632880233927411187379665763210215585772262360255393383188406849078012976981949150585036331127550976768366522240062106506986822614626458554504595819345460470518465819562740341160183482175047838286564855850524298050158817328520147202693125612853268094680991705916972900715060535798108446797921678795322736513936728767657183626877184094122487920278157864083699916991357423442083188061285962486273009888589830797738559684761058229377845319019019654114562684544973557400152504219823608411849556065789569306745982773553096837112832902240436764339929755915401782688140317306886010781162323624422636701224646594670293042210820226801900823110129898157911837001993777339187860542712095143282191225231508756100596327796507040669596894589253288697408995877502431358097773574716335684971985686206563403856284768567417941802128339287788918592293624915404481499311288980248944360194716028867543738284037981899280351543479121296776488672824454432308722536575890764432395441857825875209513841820851273842430689806921585538981013185502764668262482509943128987391292828939263859168543661383011069063925817667769466592008535517360052535200543030902675534463005155470810198548238390231447664474721340199683170523054645962912556679448258768757299033611122561044505925502095937414033168510450538822992008102843979074517231501603725685812414944322303310515711670213526169912356662330658666059398639696424961416522156997200801473112503025277516125106763611935362700969160124364072126658298731135924306550454387104229526353252291142238200692813546514457007828315082685271465115364899961189027206895344214921831051922769871464844259487666234159257047489575261297627653175979616526966116653683706977836273435002191354731927410652662084954366828684459740002728009454899159442806106455615594740522600214810362887297089773851700473763473719591137632768662148468153047809019677692028905916578535523961614592707062183190588652268059197416380927170644410384762390225668106988464527102644847158502980321146193623890811384875285276304579270286174805826659366964847597754338399124874282540825249226673103213469152842950089575274681513299189664210382619812854436952575243715852950386227871567272954276761320703126499643853993404771578077861292756435453723369458728960909529520950731435764859897115197471394020437194765429822950331683886841849490170987028211781422872777677812512691116897328454240049587627244252200685153112291205397975531297631106560214588954044686285942763396043474380491522222075493532557031249750335647464013461941529897317512182294337555496789909738987625889209338309807109059153706556554254753830999563093658790312793444917734636585992859914983414937625742489636648618564419904682828974906112243856196743759632277621357507244865285921470721893323002063621973873094949733874748824086903989773440789796693455401339350553775708160113180212873965225927009265262927480816676494402793768840088646691873707197802852581407498096880538094734169761885067925749353888525832211841831565961177896157656995061918112182876427960409437871806511904973611572323949950534594607101546617666273383792760780594894334226600070836352395479475094018833670777212536603927832412232737052745890502634108517511497997341062426342562617720891658868529477417214544050209056876861799597886033952649029583084211269117412402315549341870226367669462688912041001273678923019531922215630846669705736979831707640171689074292666877247813464085265203011463199508275732500209239538397745057108419379680359937396333530262293408275727858356326868338123062557901500476026122655737576813552009850980599404367313470006861312414771180445185429745677151676965945777416185543365419372381184054231972863674572007265578428640985538565445699381037372957361419262385698521936446331636028182306786691062999675758582673424506949022953860718044786310401071501364324580301880520651716259129509602718452726637988601211035699880337614645357020780683641919311678918334376168024161663077277204225762979000915994194388201051819439318634368983129858347653379119874906133966438012445192727615502012653742310557518509326713176614670187413210186845553160583061348490596776222022153259223493779780809480149967416669636894945674223804470084972569990618684801210158516860892928890767183936869686130050995978675895672803718139701764155091369906023248810882198285866140505327785463290130816581485142100381333631909532005172479305132476587336042620155074424194379735338591010501734298815755669408837092120365271148962129623835513987831782536420869811200612713163320475085398590877998885181625488433404331401422041992154603868389024501804475598237888163628667347694600682964851081572427533074439986890099655894408344078096551167975951210156105605304814660150288165217961688254646975979800760314366137404995759079249766082613594730681451417683697203843506800332137884156091594460634534800785510461059935233742832747920356074160167442126631440443741906100495836524024660973243607170498097428883764174217994183905150167759325708992766908968627128689984678186569613681623725232824256637137264498116776065524952100348040559691512235817012357417656119963751710802208373313345639040804520135309567821783060962797829562181771056539889959573906914602462248713054024321068277717813587855506419109459868591500900503369953896222308585264499197326388918466195405385601772649658365217716541722306016724512842583223225478651978194415600440436641519133703193258373100215132368467818103627885126286560897527099868603893491297195392830918019282073634789575001583881435231732040711373307356070947715566861536025696787940675668738892037347428197887907438569715326658144297193658737398213739672702519277728577204019832350449697353387911650994961364427060416641288100076105692961588657543186586120402801900458363468903466246031791225544695583300307098076142217477670957435060512658989469058874076877491639469458668438556052379990764001255932592380115683523728382664941486720985749160883095495856043537863880669596236525171324849019522259709058963576676233572241316608120613169473114606390572369703343738148543002479402205844171142826002779508137869427492794171826515885364936947771867219554099588268075099764280261115094414499993882413174907866285571482792226779603661659373846107014172992644857294125679905961993003984904798720135708412061455288790794405715794961940312797830400713382532876852644717006206797203053163644725777519397522002367137925972042585363432894936496192505139427474628086083907116025807282266260410765380336779398510058212038030125989981163296494596019518792615695860831902270632639484899502125021610769125198836021219594896254293918042551754163525504223563209804921091201991822665301370003199724569156385965610854760239562274432964373389095975171164560452827089231089977807797045972947600864699542761260373130129865250928613834185539652406694009698714020651320545907496419553842718204459100949479440645048693673834765420906278844823196245843981288700324641704998306676047353368529124352681437219489276810695018784738280647784422797587546851420729287578305069794366741126078273615700771458976145376203862948066587660640408615590693286305057798945982155000619268146261216354946219405997609565982203540745948549529524801817027994923991847506138446982817286183063932946454638391156556017431163338200457092832476529316031652197039165716037797933680680204409763007370009811672829691422418627612189480116064433876431127304505642986659776611290200835884654350019562723774085258764950024492923161326041154329989768708896010072518550036507265634081865214502562100945479774135866284912762197040101779433400427815964747998336993441832578586029982543760090895376230964340278977340905410713272759882248843391905077468752508997794802910364323488751166291094315198132979551880454040232957315857270523205659730305328112979116594238747180596386309021414287786668923165110150480917005005036300017805997514992323351850495728937425084996882844506869735150801019376944003114074737387353957465088771280912294368092844380813393735628600407998542689163848695426595897377630291200149196337288040415136099876167907420628843308329209689250174246891183735061934821887420584100601651189853211321674762167211156238413544285516315834398634109253569181504872468999771471915454489773359580072859790493507006588870499967337501678053862278235199925066114023772353964210963659887372255065220074491276572735150844128261372171621920512733494090055707324013698188021374697604757986781942270843384699580937376057470921820939789378791805586799816957013824200500936195821394472420898551312347493678237809404027523022830181300243880909448164045802485841344770778740480059777762301671672632566907444172718661133512639401632400119234431066614863817456081444213177856327198706384732802905076595839226756493295961321631193174650607920560049613406972755091112181990902949303593830404127395094064443486704744645299938701162757336560994360767237365669080065603476184987661496639766711487490978315079553526139760716745025358649916142516677037027959424769994926276675998968621160547311586746733916288498820950185286989403727284717041963692537794223884932858646965738385049250766610124946380605118151544880583798137527250856981974163478161051571914808537848562941548016716788029320240156321164836826343883783349653040990929551276968966995371701239046781443720665800902861083591243299062257506121968562498173269371432380338928431812902314389645590397396916409140686345024275309183577856469811833976541924492717902815249274274960678738520318046133369431250348623360027324890701030866337026608206027258934965734530206353948656247739542907047674510466323071801332361249251890464607555351644228182046679771645778029103812088539294177418205649033701300583697028799932034991290960195831753565900704663850395170287169469231585174135359027242738253782870912661990584809650185861254323035042990535648730329032742135540393471808964971193740765644119985806604995952195270966903618174684048526137019171598665146919709306526366397813612224637239706550919279579117688182825673735538356606635098698445225909221450416219269588774488106822422733755549076083292638747923401565143968826511668493798272251209244422894937731248493544367009594848913829619568649174013989873022661751283651681527055209417628441564863411846460499964598860909209923217615708255488984276181323799173571981745993928021700626257811637876902200764276682672165434860223326353047712108356112267103759643897384325750862103672932077343583279450921729513965453798461076115288801333213208127627161861986200455319118025604224790055155393844828727593122818277333773997747263913645718592358090886881269667707292320262535359443839227669462552899833143173132943165088834658056284184503591761970926046946722761460819204475410412500971646988973863271376659996923299448573508803769844032568539578601207504341573403907462464275022881328889475758152626628041628659771107341568047551032228788672150547535157469384026336418604742664231304277029196528391207038300214617035769859024262099445560216654399031099020749093868995908272127265966842090313880857177735289856258371455462740755510470860682501681504155757140538454581236923727723304982874808388127027630069493015811419616166188844401983665939983862284406995310464513030409865652839923837809920881509231052593831464113629665662082458070754653029827643928419454817987894334017507220766434939228983358301041019041014532661375506432440892722407502098125757145752594760278327763867611544968157619971537489076161929214266182342163713287433050187608049042612147601721754584372871984703389292733552161401296113424595266741565931396499156411367715235501497177857291889715014950941298415806278940444834923723806425996191037617894750552635753874799922903012873401677455184920768648673041496252929988674957178044108917111172650825441152492794402054652283792298404658028161991921772475090226360370000135615040974839476288870774789273613696949142964851657418110687930464901368206915960478260033887381106079376788277369954147103613139767776311667924692263468672570164528207935304321932241783319594160239953507578868539031732923987221747292758553275533031858332302940641126369082272391709790310978876514593692720449197832691119855704267852689626424204642762278835063905360271099195120882926237852309295812696699954579084459228636493454910860033495225097862170627265243502964589155356035148786006367613351096558934838662352666442090802542784990513707636225379205766118039205604704021803060535522715488250228286286196832308885520202552018646962507315218443974273377028650748915106422685338684923565537084356833167421753163900645015060071061079223139181577768518380503295363307964091325398458349749675354233818369471241608655861995607244826333876827544654378090370354338997168905518474878470332186184427566456599113141933991475122959962488594982679817239085475131389703995782747063413496739632935449170676713614458970374002306519268900684841243129490047222415999752103236250054768159870973672497488260742276608251975176175711879675255103613302967068103564002672068279265915660489975276601717528258865421977579639611091551027953476831216213548446866747536639756736571728925238194909655079071830553659818757695932845117512510295227704206328831242307396035210307363869776514917304643313587452097723964613544921329063912676835146650571029230869979936295790366894581353209845450122238629565445691024340336795063729019991594710250732713653591940920633749473708070210656593173199956037696980307792384489163293930630760325289158506912655292212492893530633003303219558849128699816218282341347635761184148697325107419790621873797880166912802649133689010260401233901741928722666176425158864659174353086974152179588087896900957245520342574381267435756961358269179356605806481079655134747624292544173956311352437220197465202973247401532120561160341187469683526074572347627560732621833629113015193243816145708666189948862910231224843501824448073537316057614144462228993412053419669684901383662036186437094580180176861406048016797918208962354608516536284750877782407234714259528117827715929189876742458434719462108559993383873887536443294536331414357088538467131948409211291139183294701819287295061959199241692832326349314387785935935124767292812464230314074111984472861810070261723722911639700733804724750535928990042888163802225671065084806080895596896731335382962717118109333915265067214062628297057422543062385716135223793072565766673924698728566758480130913685692412334516712913560106373329557779331626930503552666458921276845951815451262346152858075365432026591433374779598505707646071605483453806193715358222106435142509997608472928098139258088975034626466303711137504921382192893035287748647140095795445929009657610299576480966939902691883596874592294842750753295873078708880965465098711250377660634070873594511831547556016774387398139571930186980365275371929397978732161448552071239052856388379150346237688326703559542593694052061194028953557594113668466194453469579448451378215650217631418857060004700055593226762815001229870189353150647711846002452552975180647452225899149500873244556384378744423594742910305011429407622411190993570095913078466586699601890162342902899847598303057260738003291129369678669453387035926851466658033392733823050847363957808703368117453619976801373033256818559512290738716672579127022278909155527104883952423416561317768500509652232682030607826965305579553922406019140825019176514575101081475055407736811749194188021462488548240506462981611486125021378618052518395424076032474031668742915346034158662396598263481108584979449229194319587079625587606433014981981253541091896770188147048499967700202021753854504141333395597655062583806090930534635035213112878577270139021431252393829467118422986675706965054417480028269059628990315142016814152899060302848114103028852685730038428435855841068249502147205798056478620257242095430478903617394542781036955229463721474750680907085852706705323310519651119830173128897772169135293836857114341379627770194564390777219627544779505102895613206848428211653988590729036334822816944105076664809292093390439713585243792987728044243352685860279310214483084196417510184113347373011264792090834977402504761984462859217715862093751840568168896544834895551794281208411866265498017497520385341946118372004304484838388920710705994034559562477261817539873734113096344200524490930024377902134493171946812140665839593886549442265754581908510699992072911571511019895833903322395199943637342608658124662747757669467049142554877849310023784130368883754384660518856678701772236031078407845673668096822350694392421946024480464504498852574953076340657034094645082969768873552993122273587999182440682667911175135607642599960507023828890314273433364402844839227809575227804711457457847747062366556488423772055451818487014786275219445273890950173495918649739638292614485182594444124111292938525033851770788940763055687118882650497540435662051033311904074813960698467544454379703874074762813975697622858100414075955621992169839376546903240002632199494831477318601196580275124203254768762509609213364398675144855875178619738585452679124298598715592569550047532165263840243721935507107627453577626343240816270250369532070489061848577805633230501638675398207600962257526144390982154463710412325282714518174994212259272615835671100743243033226346267005887739478392337571390436173961772165961258743821112863713446167556943650086798319179736540969331188747557396423280652812780826835047025287419968565955100787367914452499588124231683435136385696075826724968332228868814435402328709607221615763372602638523685567764760116783087216289301350939818564480699926163343070613438399204231963385504943876889958514004385155762629949908035436015317984165124498946836743024010241233371681546303817170893589500905382767885653154596087327529550974949243016145322931804440720678350085877049812106203813496646749958829009095145735279335136725259277502809119693109131198527110688009877122581967372904239707227570920361320164699994922942316216520270083589598562499522692299039367674529240147025298197178909967059255367382147493761304781374997336974667922692820895770416409665177701060598470095165631890590259064677268041173226028392724955531230027359286182299365036557737777359156362168609601826295511589870674308589177985624277546388336222487640426017916075633622338624448144019618876507642264505671337324859748788929411779961951137280833379300226047209697997160357908678232996766598946299591612951912843627134475820990969014163887525278587040714389671932822385677365165470771475263723352845384425093661292927398150414142677249204802127400312987123980161651983480815275850275439336206631661566243973444966665161319325235265361798612022490026221589555846266962330131213355391131073941848857381586441778317340567446056351929593136250980860610833785024165827291616824808571253010891013111967739644690435402483334230882925866980070786778362756392022837086642318175355467739551368562510676342043534077716035460580170914425612648785932891885806791319486156746105202988409788870897638573514301167079510326391092334581571639214299393547820748252334787745464887874749382597567093492194070714843946762723699552522876136761140392019061443990176401117189778874415353851215530824766622888126585316739063016545506630428510672726232120435972438136216753866445508685624661585291525160186613861776828497819192670595655270838483274534932669142943805951747983740326527575988196058511762921564769334213093804024135809624149167045578238013565700443594167923210154117501215433789009249912216254028692718789882437884508391535196687866844643627195373955848813319924755564938059907394160850389536609706747154574164403466575815958528776045358656311987390444831019864438057870210591035271718120276098079590595167375625049031821360388061147750766833650010938795627411134720943823219286121804065762305890685059118907469982073522821065899237603202699493886240840270895846703584370810591875342426011619118716139342552712115088921988669662614053446498149152332382826896560927786274699649992080338430475669064234446317033179925563401342615646512447217469022237708175599582918385024405741819041979052238509167718250082945729159101078070997045256941985837659109199548454663591726413485304260712236848320659226008031837733439812277671564077946707070447541107586776689090698912595741724422914201523400344746283131543210442263034639815654710113955072056430816318793357546604623107207651673250151290499090733116974537058654013620720324140713178934278668169682808496303640906748769146539068425886806547139559985781341590551741726639766220977593313365530724779338454096131567543507382385223426908609488825085976990724634528451769666353751070299138023302163234829919921799249803699046125150719349903593795451317692965273610332288713508923995608819985417024709227653239480467772096898931310197914761673814191041462110120765743519105920690113683089815533510537255822318717462408048287333216393314142518103189365963605368704613012135063290519205868866772816600995447790781770389743904724293120054649093696777914711695296833210056637951673447313896859772017526231357614572999375308322003208859505341676949183217096096330051305582402265160970983314704258995224037504761452076901327298878044375318863844529649199623537532312068178056318606253012058140426524928841978209696441842743955164126881892067750378016574919921506755873568619871046057119718917604416446837065664010811294790679565405654559540388376181364488901777195961052137053249522893173072593776080469862434544729425306440880536683240668776035589140088540498549303205262329096858508334705965953778219130325325723614236799701993826673996718685153598273720521369067442908454845662809089064874145389673967432242806605535719638970858254547156232520968609685186966839194065120304096694846966251503966547923449768134462271456894545413946155757226106436695653272148814120210319241092790607574739844129398181070228596044611904383293750807729055275179213294276636402801389354408911964184303065268242791956248255392152967044759450549749804157362021188481499871840779236497479648904102865959932768228011640470075205837663234170424678097720760741863046457402148443209837253521222473680658284559830070586526649094694865016058623635239857753170485303139941743923681046431380597630036362483793324386410299809553260289551224597087597954429482323595459394366839614968443986801706944048206691455981566878100434639380823469622867597054951361201015711227356802534451119530450972342893048430444885442679572361122535334156264642740855141881554997944021985863951699381876738104375503440753774893733458939142041139446565425103146911006051725481178490144977986051116556137148068705268395552439422772788402306334027880493734958695394538107860979080602074339450248402891328171073795044724722466793951814532229762429672347451224640035841755513158191493837000725338321465303962360101720157400503237001562170443639893798442241703629921861890339177195020872492056333165119197431611188584085224883564415604559803068632822819721044695685296406836429551944081003375580317549127345419871306222303062567650778113809335934840028992685726912317414504095005533380585405190377562789701850169415215599407795431837662639231175286041151638959141919999011272816170057271602973676231319441031615679019367909194342525869761222062677466719966715433412269739642850061526605215871212521793429054457755107298474548964754277082233814833806636200786172348002644719908716331172557518761083852814481113784063359389045339327918460701755257577016767189982314268675009699552208699711545828803851831650618919688583420888162454875991747951273813991064830065203954772332851902507771727271733429508878644356999159371419262997138672524369752452577189398594402792278281346455550589404840380440419691304996616677910432911094402679743034766321832769840296769670113154687491565093507151074401494563668924673563512034909863153940797858535061431444790167859549709445009522960865956968939659976074500571518782979530213503922334590690717510730152670522247479662196764771791307818921824743384805893458210303589538525694544683364655913236176359822744626214570603676938925381088254040773755444673991937400037073756257152236528550410416979356896663403394628494560308563692976591894645847439064960586496137458257640718932316319457823404932732056846395982795529344621417777497545843319801472671641842617756977601248215221863342409447503752694637008875502226249389702699287351867864743651741156132262337190752252536603941640302476783137176147032482603459314777021642048527833903569238241327265919159226144769320617872588307992475919439612422417225950791118356810974837083726335041186430683718504220957560632312404643557633603683240124855323541959891526114294158702913821374439756220113552049537444472214084301159804151886783506989802387192433491234835314466396776337885738223513272065187189835718807086472265076620448086789544283666830689450339216685802524081283858027226006695840030114696321667658498417641971740104840819638165516703083359780002232741378609896654464235790253742057333252147988509512015892065794827055523248758744280875252682296366902761827557048821333277670611044018514143049228750815611425466106965134329537350996331843178127472648416177494575415593175334782353374666285284965029035533797115057350636608470090447855901459385472351068894706322795276413906246551018177798639692281479765692769643153242539093120195789533064361249514554523775524011756988000850984018172181754655376504580475335157399336367024968219585081288486057117192549800466531164114215902668618918936807725524196346021030980812215883836066017007501337927297216712759312090223862875064139560363357863592323396209220347087256038707953530814984671027977376122356546950614162422304686572332161941932895503333448094395185011114407844387728484624378816328182714700667823065742738126535790077994962893868360599407132970923201324892179892091958788249171144180100883608365211007733381880371539727212521056303401929649253685553699228961740947465620919185836046399392052654088939012670753371855730119338580833414857548800859923151399131487937820024255385866782973252277535072684727106479687968347752648273760408982165125944836895040640059576915099689319961093898645215019568523236016529970475311592618215725021307263678900670458851980380247112403444408018952989768945517406201928374317601553701655773454902101464123490328718510133521211010455202092267977373449893035439394377907430370947367825065619976959216221621842896926244049454229491473076938979309012880488408500062855342005881059931591992774961263076703200662364182725422674281051402749810210254252884979132947862329096804627519557875928524037784335620476809864513272654752534303263109441022926596314070056001024128092429228307787803157073933993165153862524963094808114581525444099771683145070941089158513086353918496399473421803450269230022533538636554481744899881971242795827746326749055524177312515066022720827088396805288395681819226936038779076405325678345054987435545213134913712887564412194299447095628654820467763853013145324587334873664023710020414059405474201383905459422047388884916011095470826954405073828758908030777282968310827915289264687355303181704675665890024709201725429559916580334097450025256935899945877242363601537027107235712132829341053230434840317086407598203850782416816938736561186195388039671966057727691639031921568795634718430625694231842784358135418324881779786992138395692522165102627362145810054206384230398432362589815636629869975435830847131935495936726753958994928755723674921698886975315949864674250247803742617370799847814172502032129670949105407947747174338351975032886926112160138229123123002553117036222208121878462100220890033283606116019786762581331453527122348523328335413773469854912932726114871377748423698195863116634423625743861692044510809459691792397017515969650549339503138088826671479605539280891454160684460207857897468825600031200027308935762523032747607659795700789256009183370046274145792723327068985023565760870033470821337831322332456721343337722681165616615539996037289655512219712127618366034073443788130011943789768563875224255622852134321227741545777163711414963631132436871490882161023734249962341461091579233412042215884391561758699853137861224556840536642584921686506955858309788791260363151936857979065118808253275151197068629839815716538664560211880152382753933134275408101018071646619068019603171169141646471589463648200402239640597562324473185978464461023717717139259000500678311693529820557322584618322029240330648040855444332824897130160064659731535520307968092210086127434145856430934059769734466450554810255796294667769731148484973058337631221629093140910144600069836021169277308865569902178434109928729224219844506047222963258493044145217638224857696403634673345182008199356684354970554497250630762501113642030961605075523599275827148139422994919303066421494927008005700360894731342278697072930777472929708589020117005476548542976546658838073624362643640175047004765302342807983636139405827376278645090426120897185907360192402030167998247625275986734213636185545975899974799306823913482113513945584867356498822887355616519932732266002644697771129729415236674277312354597694086594294803886308396490120300693760255912243715853332974101700583892444110502153173721031782297395914220440296588969966606666179331348066571942645357431005187415401566582112259309881791346441563000619293426676530713326007979618301877261975609607245362604159875997136663499709021180589505526089864553222196167743306449284821343922926415422200384934913511243262104718875867082740538776206789330641728110002079541160312256295889845510087300716171180867872897030273534365829612347143745910850853609501147757663175019022109692882421049156170501226876811504924527762822123892603563167901338178393880957622510672871921392185408995836370431999443456861834538266867162408036809683358151123725784236822318389348930051435994195970427235009937815758131344228405036941183490292480445250801154030735115236815488374947918450622852410923114013042762381150623972755083313742504949318582203057261875407527143591875426921091919358156751719114192773650848923672379088873666795532536210542084600273232039927128467838032916873189995657881954642437506285348897140148249229583017175238773208626627696097537012623771679326686095328744093023776642048552857409443343132570605070819942416584371987048829830528425611219164017904636783467548861235277641234807702146806264299588014199344116352896429664560889742912574295297613025964556726227513170047540592171190148961646587524842056692894952249567133236978492895052059681808586531096764939818495962073386575146071381821232793422115508710102582609254093614527784853952972399504656873857818521355892227896114235098851118514087246686537514453613336578765622658754782398176276472232200144017643143930885113667308439859967105808815572055808128968502890707719473150819675927497810261606968354075026157527756535929127787979584064715671304967930744254448827698389811938988674708185006156777262806779660176616417213309226571889739508428620369747320533856808078263932949799821999032699456002953747607096482128727578438948090471492603044443987146053516760545183322211545742374491157188892492074545751033475640959091281732946407919521536036656721889528796168968229247363851369310069414616661087576542282562846213486699898683974071513487794786337041216348901976333243728651062306833645486399801428857152135029574973568049795753866053102356212166118551487934966694770493261238229257783958506000399881168456108335772440333675761739153013789032757093478924279322089839598919738187337501896628901242619350237303009112085998567973020033266891863930684600152310703272900682730983328808655873075372516811304460995024267064132624188725436118760745665990897704168280802762003593350274691867518511352669200521475169781555990644908570412106815224276369255753736271743890565022623394873259157292922793485695632534558098153571531744073885906935588006878583440415418944628354561622830254266571838464093403953573229084782686691542875877513900912877650123322163833767399807266802311737995434700532807616814682835283850967664338460789157410618465147895421975491709603372829392981725350513590372434866474348782229970481626924512232072478507302499037029110123504236542469722444353897305030872962305112469178087423767653188730795831867591669713607624457364895988397321178842722640630566941364510241574349001442289690951265736782606175573729754972325573761609688960968758576999541144520491224931912056394341506200556356340021188114991702429978381571291466225022100008214896211631711324143814204641333062237981624153522022244810705319385632538806773059981122526824356098388612460321026403828701508091674043765396893816305092999723103916034293904943375953435234875828621264355234627298196325455799148806615844411423219268950310825986873679207686145383241431076070667687272895569895207537502335223718105494655302536940040717724779688664016372992532656534558241127498241455747576876464549502428576598884719000931403917707865718379168544007160864727041345496064759677460191334799602663302312758170884035049769661469849604876329772136019846163956589619288796686270481203602979727273706509708836296404501606742906112019775166809782270897660634322585158623545351777740001628322518868762604874626499174957351928536703819375676897868446833447883017392948661321126858345690483305372752915660876889210014861660503042861795022627145720698488710804724555000650436352105402557821330912326162587167631163806098050594808223750528332481374506934543678539406545350723893625213692227255858555144002021059670558687232266077403002492697007611755195695950429016191260768782970269239817357429268109137192706926300914526680137575676662948069388024217404251252443118177002458438908765132922402743907523435777553926178816810824231049077185068543522775133172625013919041971391681209319865353025067398035552853431764114548562471526274057714176523408271500856475898493184829469735426893025495234091077213232026046027632999948613628654026468184698607074834801513298459718457863999802418650402515616681891409293064833166843065029319902196864964089954686287038225675698261242120130550868109181305631255445370185725138193591466990142120328495895706173450603643487356968464306636748885489903219147177494457815893088558228708397264351775528979899142389118483859618276239112983345625844247516473909874178611742949727538263265830258640534523640539679589373392279593736105766321662342624106268894910501655284471573004074347279346858486327125086953823924547387584182844400254412660104556833753038719614358576884369174252074035699700637368780448694483333919202951057982098407065972984003886726488810540949080199164694192273460814402910233107417006046886507816555192029717782306936782810263218823219070133033353010201884384413182036020539529300979517577159189954332749430615148564262503911588396338034175846785131330009604894916013183324524401448190883598168019412359297747492798818509183955078383130736491190937069064134409913435942382671962856660631455210719919364712455943554900339550107058356420118817779578968608542422879470189942575200928974206908330869485208281441269417389867952688075472924116334974365667142178756299611911451479946163382007654816014223554555600660464394393599988913396872661345702422251577448823788431737227103654142616796129156775864016838498414468214182527499908416416118893210108321218068952056333504785434677605781627026365813691279459715539043294956218842065106932385508329729965054107259348263095989924308367284589006563663799180953389034248263428207403337974450029673644242718152914756434111415992411826065720469676643908203006476170322741131470175694307509821443151144398827085359302495019639748101372048018117922273696091130618562011928047222253157799300847607836882632432119552646477726550489908207983721973698374918122999128343131546578443143320507136579702270556471830142480069620619219577036333577296906898010449036766941588011658671939191969697266114355325422183385128800127848120742037916471677660867097414130609935412957789661197295434820317635898270236198333615160180077749335927607815317195901402098597997557927265770725945990232074165740218377791976804760581760869314435047870967505592407449807346290742747108016726976153924778092730969377696381262203431960065452193416566897069266012476063381665697635722879741193371175157147456765311184626821698138637009643659978092328603530228521263134546399538441482768930400272976304692825785465531303202992455664056030275334054166575467920707807181080054094615555480810311209614188018084788536244544993245620079968133814717872170447412224506343457841407454466169369274430449562066656991959201759664856580950149117325210799633288775338601102537443877919495916239824843890187922164727819051774707653214842986685516730982106831907549563059453267876087228523001060542960599739868874949874703308365599726398386853996621454120005387852004372261337557004955517881475213579771972548896541987116947513897464821084737230218193623292938404945639639601001388300523990168916231160317458793842420198990757798669277313322327186156043735421690962601039521781300172162954195964731780997134305312138714750391048186424715628326850519348630461149774383375011825424511956814425460945099840720701972046194932547556409361345481185105200047663970483171300601837412215862940059166172531992229423533638225046799906091517653085293578123549613483173222313861282125249981078414638736598134636411159840084430271015250346298214937239660058041830918022350999447762907052899141728562021697284862677759444758508970771517693287023125407329480408236927906793890430759725877248971217854930407395751232922507722802411942028775245850384672561296087972847227972992997817766485886878954267517252820527572814346891798069503585902477350242190808449822082425128015532954681017102144362378362712794164906145410894731793585905851896266217837438797779339824033342078347826090859946688757959731699727355268233339285667980786760506398913273124010609824842071874224606044551313925841824288748340033024398734945476548998404573483525494265678544715878853206196800371927124249648122012503061842705781026259641947554260102135021776993443845040109403168597274320866058827344574164288100166623579615448047981165009540196910133518887213190900838648393212748915611101082352178241142230834668996729445330968931049780641180684280038090244017465893663982978789767975263307117733129279673206726322919450496137599795003090461259951115350482668226581107511264375185021890020857055013020556063075213316144517647484051254257994459796021293661082956279196634855006621444385371770013342260175445051666213189636064580614157588097108181951671804930914094065114762613007099417586461359969599456195035681606735444473202992712607595165798192597655638277698167692098764142537878212621962923639705760521940525252460906293141385711773147969588017559610498472526928161324216723076737344380810865035506394350425876771962488767356536860063495313584871820947339416449200334584784147450824481203515507691196216675497248647629919728604227819074109143532736415920398383439001533211484875697796794331266673718937054280967668347110845239234588309766275916009924840682161003366022482172925830243033310218663870654762007199843111072036912987748027927869469955858968582513902027700642447071458745508402002702950378634524894198627033925455924646717119777916456863587907985506005086233213464115827267175833661403534627474034199233327793922696718476437685043506632022071327219127533350701076616323742412772174957927735950599113805828328076330469096235980856729310266955526953305623531809618324710497300114559936020425152615360658535227608438724177016475804370975564133468396937279828713884099880880728150999445651246149446276028042096521942490876305662656433139471839168252928894409904718474853625471490561546596277837128921849621621901852362036729974771921844082271742628849329761775870167824483433428330902786216854304746022054999327754657323000425165283113711884250695664930532885722052224911827980792429986733860744440445994472818760798337154317820971669356016835940664065311866340062680393118359989418538349075938349298787291655150007840390647166609995034255535258956000852421029415486514352731193721054487418470342184223278325083232616012526066769266024456317187558651910461854319496348845702929141108891631673396135564642150713167569185020858073887186300288168412859068153313412116884870235835333721681189864473222466165102644656258075014505562444883857958585267622562468091420813244746024041065681255404479931496870361250971855109895791289186898360286514964944045265761996569885672843603356636434357809982224405688650936759772416022417504614670936333719343772078397321127405402760415284887988826692623531864752672785349612742120720342266182452051742477162849830710157302072474972239043083622848815801637100520736506667757998902148819177062760565521261332434595911237407140553546609390214287466293884435646147959770042319628265658963087794336061681187052447593662429525412785483571457194057201446638806338911850740817359758557939474112148785856589852155731488960248549022351387999567685576406400501730818111196271903418703224207202539141405311703745641912432009087706643748590233397032012162855011186261049199208345937368623115741705640292772040000038245075223560342572109474531362499016013039028639972236371146088091896486960717597379260136267090230997102559468207745127129071365193161544290838860998275451324763966723367830000099331710460839141072993299850684093127737251137020014061349047814658015270649362263665855209938218605620662041676152628540782757032664477071163974113355135833028048967858395362559088219313085010391552648998378541683880717258042536640033370345310777018524745913779467351850091536444672975932325181627331389166954329277284396377209844327173324208332663610646650304986057098020745997005570620519869766090219071245007957216761667193258571104393257503613586567372300591096663546375553790778863316042747167598075980690133499066973250703162787933420249950243802171577255738848326714694314966045614547739687435882470990677855315888394281563137344984081185916296845038030931037466821949067070337362149760609609706476911782434410479691066425128262001001091364222273320304154496984963924271452939667574288107809294156958809394514164274101703608988034364563479143935815224983165456146353703253204581304476243078284913457472373872056429454959049472068649521167709532359503154836561863933071342613557106750273453512931470392094303562091874115122101569660595490933637913133683835980290169980858428803754587052163616472461824200674294517841988836798826555175164338147044006109391149044378155840514861350915660785989656301649651930599173128651645851499109589941425319155030653998242238021757569119388841655924166519294476009801700260732089639489656263958131633147300923928509582890811830801567635079037049371073911907838445911430008923872650292485996519687934928557898324991274614898367940904954004949031993580452491389599287348547988842984379408078249055607068230257287626436959626149476508299661814825464938217890502665431772087304956816602911898340605922036835364189009620500601881567658538901089525322439317744382788579776753483625840473150479195695216659134522533068884821668895078940550711621670615649356574747696459966075084389616287147096123818846177292090547560473978724872572814050673304760093379083731817613867886139327626952741523593387344456834184832917711829706700632686109199436899638243262680382877210701997331356713452116851170219306782902614135786870104186827725620846041187586561094594240828391690373390022131428957810241800393843813863918957783228315768370923015914810350303868467778737976615380900336583852607924576432822141359730104666098470860314416056799780898676287387018573554459333294354178341091226894444511122448946884126415128238181588335540573762829955119867595248422776171322722852668006681150193614910557555683068277705623492549236658251269604114025795693658421861751174421145410348020034521246150247271229308579103724153173421651907231730778978340541466328180048237319484108355865980231208977060618898038150522191157747426074866461559227986372910070355429223829695576520442284473283163784148267421438758816987085701589607493404384615810274595289295003656557035737540768449239082329412000327994742800878557676611856776237425314702702309518579940044018171224730722223951008707393730716491438341662033911704632988350696781589591247833103953054617978131708432603300163792812005106350275820721176119855473147478791754652271173882501605522834088045275719597393803951045675283568191980918767318904558312124019852760034405688741274477503619882762259475904636350841531495769854991682344308735702621489883919853472934778963682173740835685621845704962388378889864492827894475366593736670150674563928621251403938404606045389409016539492571809657685156282046736447584139571972533376354029993364895611895289022908178555651292664174236153013291990665936866084906089431045870192729791553787014761660908255625378616735699096833347744753182793073641257008377602450705860082600865342044166057625530850183841414706015435471344125296069628603510312778054431271938113623453328849742441476658199653761283646952702664993930184627608582608593056136989387030625003751481666485467917343818871446534122923576837444001088075483519611019077870151794203066785132376309060445176263178765615451167147481372665331045383511370903138858559668272955585134169691553751208178107967970839022137690898561848814280197623010456584657527719377600211516048356805721666502243024328382419639759814919523721915230090072967998100220273940599460462561297433275739593297732542468773096551883587620540951934058502085831644680963711734773453419370586964871001546599245235648984310636185423328857895084658106112442745586478094437571417529888811267240473143356621106961130918890718184640516675890121325443288971714902241511411308839230156432590083864026934255200185009234014363618646930207976608116265902793559181389570421589658681684513749018577357087621490468066562492903178617164821484082382867146513103558221640593545892552599484116802266937038150721781733699790997753521092514231180894416330371894067689902940357018484012014071454746371107423305614976828505464101304452052383688301244221673660259321452168094849436338999677219707944591647327284661771356476742682601361289124305537693519809617807128785234718632504878906793586786275358930598647871492365877830025039717388217885374741284812788338470464822443831502902863396171132393210734210814164793116572078258117073477938335733569335492136864281462234594694463328138811549353859486495973004584077182718416738597559395206597007449936664557077652865822727303269407797489239459806677526954098225585357047061857579417860765928277911885215064393032015669374591600436495946545533279495805845270564398115263376730736823070974902681746748475371269533526447879749442180737297542455817531071568335019213256075229040914890154094556389756017466138321381746434800104540899421342022240425111394984520074559337402330957775120323085624123180579540916548669929629218649133977254723597095330350565794827545009736106565820647304597059334587021171844735877469034082998312053615101567207298801013104303471065543485414402347279245436347052639418546881893463108788863087172194378422411572543125104153577868631692208288598241404694872711564456770665403472199635131601198310586709895246448096401358229183210585409604902352127203428950345738090344437253865238391048292175356214056970894163293238567260881906385762204210173166200392191487135322083965333491393491092926415834900318480668555057778594160594301170908234132778875202067344010374660922687755435655691341698938293244372751238764250063924871485712486075577654716620197876509124907445354900176518527849569582284558745092731631871048690224948257032321846651264263229973039015217598785713919000308463766631415257478352366196768667363756047543921871626437191956355902707213520730250139617725795652188991496170653742974892837115576330023392252493445042844181132005215962088523083270662235152507624618579870908233692872773977975101821157017533872545685636558439880442047488811144885155820138220479411067475037633830228578405427406829298207713305769089001486102043584527954252528659795622334191342938116701084807303624100896021404958353035095489776763734156947458258132582716011436478468934646310826904675744660552267650373683997286330415900213007478173626488060834817695157984718930315121366563704901899529597571650819124555229763885611415506156539600529521998908003138377444470857864001905571421535998690789718424596814856170975632710118309729262072444179414079516966195476138976789970862955446089586653118950325268574432246278397593680606245226962830321038373084119738773022551214769334976554751217038219187561868977872715490974415431332586660420516733573558969982994177051870530278883487941785964035556103400030250186293191506361350807707001136544465920985222878115883347974161930487821507278860119152232537626339965946191682416017148062765004753588786607630514268859421643036910988082813527592565101674699985220604348547281260666057032779136145866190288123691890256900668284940008437337892384438670598190989610423826292049766674986580580046489090796936828700863069010537275530897043828069371135173391625902998319703026942717576540234420962305661965339082595554600034174239907261527262257662871285545281560012949745060013166240051930130070075899383722560350349500771795150668346062069819218872372423410339556520216797131608578958231804793923299994819689001870085532126211633531002112074195107344040681795575019081078042695281508558828956032263645687595792526036597264772073758383581482249658408230473960121587772903142882647043076603256449956588200127558458989317197955672197106666386963744749146598655273371008349892324183872152295618261550333331612238420073282802892084926237316367474618343906673770656842080307609884185598299713152670362235978132820428148207687657637782549523012416519075000331178052717019988045737092617418314895682951973933638662765383612771489096134743869358778944883355093349808231363783514886616113568239235469660383672911873843541918070960961346347242416430233095150236868638382020688809672516969094620713056456670433162377100273950856859330775474801069255608449312941837010252724903457226120101354929195481778025060657409261104175112903063586590563116459328770563168528343449122567129442100938103234555506927361796427735749435650872308347636932539437466999718500707881645272377186057373247193781510948283407914152041541172662236395240103551125700781393498010036234612314970287265155277273595532179133662316724374927284611953270163338599659968920211169491148601547116808753213813712687171323412781226330148955246643782063947871097554688505798397328903512051494989464951875009502604491554504782598286134342539788824413682887145572758094053364847867849605044673297807049566511556050966764049181217157897662671579150222486761753703416862897991942750884893741308136699713790762453048408172625684383768719736624918857665065594821842503435806439508264938435872026987540111770641887777386435587939429171347061634811261720218709398574437372143008096956174334265143623646971631179967217086791671890783823220402164859530672688868952867970009136797020082561023388998893266971754940446376118971333048368366940980569331562750833917107378758322312921501587247048726456911982592918773247752417406831003960895933708424409434340637660449294578245732307212626274408874044011755315540476855508851761977959366583721079571028236831786387168931492234588142499857471111239885352152114852159352936045049756811793844630358745074558125145678061976291730391194694518116281453673676353955499426443041227822554482875697130860598557652547459462040132364673311937964539815454915286725286534584675722680753519908428449712792083032206997156188089987009148097618836081119984533719259275147520011740453349432186021246312263196356463243277753795925815752751890370163641959369404807520144073980840019727895998414921686918236886014450854202310166676018456811575881664926181447029595992972177986249676672763182159020859368123217648398140187007908601366246819986508502521579879424471477948149008542505916526871172073991577854940518712515465693226786443254263854976997979202090891873042026054706363806590607334652518048492172754008510357327423747920725491292034776679374097599790594754664337833346842254489833831717033186961318037152781570877970916095835974783253813741055754446226009543034217459516969018215749828389222104826632245458633638960895162388456151781309089681810290816323459540330220931037942895384311735548961459210888147732091507899808262895782741254312238768345510218417289372308809175345816865274566486421153919834858616540495252759387820760756227317899204032713371109840080926885712948953099651026658353438193545648306464275837041391621766472600925514454188452434394036094193709447805208190236551326419794209329077206758884547225345267880923323421876801589257934302646660646056293842862222736270119045985720370912236304425354992989957575550729985752240630088472315004191119292285245465395990237514009430487172358962616141374095133669717299617013694612837160546015596417730231819236023905631827894566494870112683253852406635933005441242753008308535543978356409924970627847929583117917651628139895440104942962102420238821713746861508404911788571109187187893698971496766468450033967972212522674409868392179384622476222966506311668344844013638124568006247929739529043408486086881790805177467156282204955063553456193794878467445045640905614779632108407864408429416865530524260552494488138753473740538771544135947439049218630083899375710298025033557807889815819361959461026852714708644751327313034157486804941739917845862726250049549934446688233985215749819641047079870066312990185681936901491976853401536234109935014123155602288900500568130551109123905978691697250871073262020046575222656874745021762348822269365445109955267541576928938107199206443694807279397548840719290728372017003323047721348408705381108045665600926484971843046527895395000356837593237731939741865182385748892731406018030624475107834825224202301473065497430040492886042526195348681159597792166401741936267505530082449595950358109052556252941467913903396838130596248075792183249108464925829746642133290984331169632191116329190840547686039783507326749187399073022520970058028213915845492712398439503955133791552944835669682412181444878704798936492294081579212990368019460555287081782564715079599697171875620903969358513030469736988918043124068194858997583077466707530245022214655527702541284573073872861177686581866767698505563984259495383552486333261382771809442071250314118286385162888609666246888293592104274202308729464677834202543250650284513855568097322063936195045085514690245203194220666131482253060600056068981642299374778355051234077827321896182932786396263124409254285769082972652196361766296640951742836083511475746125585516678110957472587211887055004980834492272005436116137447237396521801896641024117662743190750649613306652550093434496148107328253173939001160008879274184335699664924652941526738895332677645183522075945718191266874649247477087774808738809412861569414078124215970993132884880802300410188451216059260507821911663615402438525622221022238405011214244754231487558871654314420549880769800964556502493074247879701067767646053680378811255171051353545931234875383297661361367755030347898930780251563402844701500280243341648791125493107614639416643744825746767175701542340340942953292894491952567403276291908149134444270095581130020870055913752691909292531845433792064923940711924373705433295658622222302373771427462044574616881899977828651264661226445387965918884876378300707458003955537628900384437924481983726765599383891596977102907307714773074441745833836143524483480276967691962963514449567996772530037302106937702277159149569905910840923276592353209270560140586893461551322887966929872463040611823794456579648900806618538784767751314228142196812812171707898896970469903719292766511328056552255874735988211672502061783280075103216823180662531486184120889586881474682597003398587697790219275161928684660559129617433280180030662695817968122270192546121050505443299517767357820414006190065864584929570885233343045803715523977567693024834629473113098856444747567927185293163445092868532619526343039668176992241147873114066043022096217680229913539791667182930010147114479068814256646983515859966592004642360401556476921825230996711042958124682103678483680634372583296455586597123390275335057704483951751016578049821782927123808747498765346032834963983077029520328943343134075260971316893748894427583412975724709345121731511694365061581095620754148410117531699682899242895863358507345015712763332394882033144342074759025031382102243514251546597412236949648029553784672392604727315967806189231610917344822849503216178834097494322073979807300298210757764208494032150671372756082606182579531848567943103360728104439442635332448771328009822828984664284617537326096600459297143802174022161599180330101918831183245113911251855881112249870147619093928747405091379146317515420854624367302773824258004755981805694893032151392780705745008694701501754609642217050506422733321699824636447993010617876313249149698801404543173416197505820798259259517345208716008313888162745272295357061632778299310950476422756983008477146261392985597972651182424085193854543988133507467837374597291576704660934743392535492210941438780937914685538222233248706821423744541004585458680126294888150140122647702551367881033933480859575194497249336442590926274707078202025707905712473206654326061389050867310578670428537100606970359782177851244019781502638378442697263857838068203221134383450888725844809242508220572168054853252337948857134322395839129921225384803856074716865191511426857993615968925974404795750784539255419449359487828664194041389714546475957604589077977339307261031573781502719410535857089343218113772896622160960588779598971132531347998399690296041121773136693652709662387282669100443196178382283610390467314284842551654907560539815166227293997466462899463800686542888252229372477168270430240058154157177300093847320810445655713548175141966982041328650056943537147189962032110906270855337602094607538249487939793088854239591605749516166287265677905637949033175954837498476232305442209692356459356954859413510570440698172064939712294935347910732265335330420591508697662971682186653974931028130327267363192212794110916385429863770962681618114673389114012902045954512953006435676666603501047132555569083209853671364859657218922792493142829523068424876520891962168436499722429723011699263568772977670189866697117255071071362531558277753222060007471808430749269879476293872196948490466431026439490078998486192491582702825144854611800833889031669629494884727936752385664732037058411350050910873344241836057594197922176107150142743233172622153576982804736127240630864346050823336461749196224462954285994303188452535927272253286912626326422210359777967269658316118181331971291625997817097333267420218232568854022872339830268354409136843170238857070100634926896467616215368698166725615157727791190864509447064007596756026903603525728458846087460148944718087453289187744683110084315420027150791230699129202867530539250015306766221443816833254017685072396711067734915976764548540164098060709345685634351436738531883597885082034254987717537869209249547179487328070531046534470687272597915446819429146332681197657840175313776913528876176140931921466379989899313345347515742122373174525943329025164912921190715922228647958785929892246294325434473284282352168880560711024502689342533383842341393334129331253353550973677211942990513759076126131974369835718531734111881658957700778027701674872142390858820233396175641030379163549247643404398796460237068888950725440212396495176221657533303717812471600803186842954029936308839498462810009318447129601704991667773543857143285934629364277900975531257142907018895997503685609821604824514745178222356846588074109033205172429086306423397299664815824765089810839117785295252734628563422152722905778491189583368034287047407002790016196724443133033934622978358824441596336409993041276596365746133211110595433113615502025655608685712933074915634381530574612439202420775249375196132725103606097569081240184871235260124978536099499478741162478918428453141628724660442877774567378472623705311720031152798437693377432379749742660228879757549361838809433102455974723594984203831417807217743603527822883951982714484945193943188402726608865444039640335287276518110404355802016494384676202403680141241368809092359641994371975537157642393635088575487228302842138387074694188243777046891145188796868057796459138851354347555472735114023898114340989811253328115537976207914018511510409779716784483140757878683156302419504726512772349234685817710251026422361428574575889203843740534418727259002216651852871989720725118768604220530800974543290602556274909121929247694367103005854872521251603571414590859628794295746139159793907173015166562108003650797712565828742429468715139698513541672113858602462143763053614411882259878258585134773821535622277660393924801473128987047683968910135179293015268418275325978267451260560080246634665590197867765734289415521447895313074825971905657813463741409391298514819051494638207796143204322222655229014413556041078162828788845656111086571600991922615838584350160513163551256124122831436004288727453545773377899871426535092138265373151303928225995539521686588254710446358736727575159196710011788817694847633891464784167450808511193566130067191259230005016929811102149476997096005491716359218223474329872671136881399895705431809227151742029933996411020744434184741448818878205695626653591770531754734979048963777529967469223500153556679183676904887145667133440716387856991081182142390001766690658113208423500366897010197283352028733040364513314972088812051687443504814545631396791678298543002330613955482057128524692589352138195576464692648644175802916735392669943685050645253941376475447021149676230154965963756106056437535767845838321390944475723005796306115110558181496410409728107086345088279871745666572654738083368602134732255971573434733199279985244861583201071839306371996312224236993227704242813883425830474068156349894535524493523925733344166231863926276158655294240993370429502569012569622175920363725490677407774014721786333316221217393433917004917522263956727230712528135575325326205296118153371394896654087683337089440416586217418427615548063478078204711182859329699707041231011091320568376384901700563266532509617535762859041689234110880528760610659489039307991319233396563177184140318613701600653447523828930974227982017916538675609474292827192709383430001003895205063509409663574801374029737274617803945947624203874576217632180336474290683043251572418066643375307863476366560170391630772525648288349220118382566195004797691977027530958085234939276974515049364449376966000205374219091514637009790834506836425049738070644700608612538752879214802386990969503307250582621854634927400672537498903756102481299812544676019333860572350867722899109507597987996087870715527523733362722755411737304562334609549801032276852909432055049785839202288312043571608756173421049692288017373486210913537187655095900137661229227022391253193405618334071127703265999926337580180332947943507363732031998203512263578257193913103637093976429346248468498116596378611736093504069032999017443717782640150028355393136805321771750305964250775499862678883350653096991311065758310936605105119139652649755067694393020221051793129536545774099969146755051276868892758922057665412639218616348612795086558834623404694559088060393535367823558174429260291521387754767869233200019536291486771471329527672025990289772881569986964222649289688405496475050524831799425466535685828660018948115708499099931857674734373910153442794165702238663368986308874375911274100501281430567441455477758452974646156638313176517306120762763630493136667416679006602625817915738536825714451195318607776618716625318134842372092260415001285153685794543580425053254231811044955618774304235032935480669976671211856979621771719652254069900207945981270982700049401687199003022616995154521863365399041915502950853169409182419397190586785298587264746634690373035438126234766688577885287845205452172733472666992649822537803814727695011493480170791493927426408237466708093232728350819804663436166138541402480394824138296558742973028688249038500384501948818180391550512642579310643819715887726175006022479284200006129333230842943911838202599990191515609944331251516203781761234523602716036393673862173667963614196610506726428850458711232008980456163147539069869986553023362346867891486643581415344145254974755261026808465798047665332225298761873812011909825395099813835351977052365941042419105318412811370214029851707517951482587597911124965568310250634747239455237731753671628371589053918280148789430554830834006055211296012053569349383487645424083197592880419426900836222578142158925583813716488436018027696987909439934330085232092507173504507761383021901981307113675708274158500151341810907143327664875159934267391774903098431973618054588306325792959087234329088392428295926074425131505405283270065505759167917984538054714599041147825318668985692393583983615857812479268454316996743300110803434778298196802693821377122279067747220192401957155048700260020456267330439141835990888923714387066356916262792644324038423026584679302737423725888271525762660690069943361351526086888316326753789490420263212597698815303061932999585128692300291627825375031747203002079230252249525841375530696827961345211522336128865948945185706985012522105939424906861282159589191721208659369504838270101645255943105287167768224624663424202016388137069313276960998706446732945010751055677607839674730928125813097010466312372420518790969851363009618158247779772014400160684078367859771715509170191211704036078958418921674682741657135630387664429840950509830622782981939795769654188391331515377533619783232469122235805774626538098345510545684949042536410023595041225597070016940176771395142901729421446495018239010033748538031552010223003915951999611386403941680039871252492573751285863506024052548440372503944668783787362041409727168645087629752423694085840728582049291721451811786643625316180948435507180605303311845634950803405083019362712069409318853472912348035052560465313087742658440579981605039870040643619159678422251125804464700498626918272500080400707548286421200325141743173266966018433979000904296140883881901976338069435924822610620880427306565191451394656170555438045439482156246890869558583000142900798043159031810666524200673377763819820964216215990508668281740905181423280679444009274892398793351624033498398388082837638432914536616036001791361418039168358678064498883311396135867055100251165679053765781067449188862127398903279644400452592753597154027237153043786238444755021556499470702076694296135578747595034475842494648077780710932347734015963038299219951134644459664249807906129480322033024059550167690267241108110864691064928555503474726380736435775677100888203041733044242115729574488691436043061442582319418319857597852796381967434551390153394462151137650930562603892183018768783593016372714717160546147452866982326932397071451184078324626044281554894661947992076134506801502731296118066043554152278922078592082467381436882610492986858798498311958385117169626098315778131130846278867935798971579572082449676031892001833519618583095501814614667740296175133576731506835606608888105082368986986620961167916934218093526901632791508859424182048579584176415401865497723925807003529876994889013685937892420395537524685653652892581713241759411559181268912303209534204123667921756608168309908853760241522509493454015168901620241339108691436134362190839014678512637635196598578496274418788425171588904361777379027077973615700850727826888194190760276211075369693024872222667165441227713989123667928484043458887426859960482485255204962047675569720924786480058291122588486508835470449419574744791513452810931322348129327865573818081178703417571315398902297402678614513523491833678790048219417514213514135752928513445471532972858343672546741442124010743312108469461183516691197430544846247104719454975807672020663421435122958022065697057151242891655797108610815229027874277450130592867852512724124411392930352466995231083289590227579302594590417071513071908157909489178994181570114616498007748136954691070858792169243399611880605726738182941621079838949746493444812394607123193662074382961216123041526656533846086740585868081623985306879139300381652585135879407256052792311399642692388504344037890929366481979336355658023590052247276290017455704143856611577690031348992945007047315745171381679084764338741177227421944593536579857923954663899704735088993848288180456876149862807424973640316420505028529825879084277317695973092925250499889711995917857313032844504605585393263252204859990966562262782602228920298085609750676244429631775444184587715505702470266953679343354218781208972800353851947177938684234840514616852634246877704146604180969854643525036895850830394658962205195370246193646217696523705264201341075429031085374752198296251529537881681213095742953215111443860957389637759872465521125855978303623532681599426005554686804506210489034662533833831444187176644404939241553679247253523741014581389745580841137809620263612577274475509553413264977939541398396837137321498114027777277780839944929588053687367665985669139868963113908404055998957165395003717600106462147690048853601615364282043620033078382136367241287282622389561264348401425842792989859501765819506432851956177380442032635570188795037520350265998943489349972661438425299332506752654446446027121225688199803433542952375478486522853894473243514728346560281983326785134377055357868924043327677190201355247439507574337408106958548755060525623636493362723851253643881575490270136312923540873620339376514281503576106467970469706616220817607882134673097241654343888623360197346575815967136613911244527013889606356842778998321822893843998995495041191766729889367781251221280233143885733654775331541463274237658070902301061713967744284889317941552114947241102631004443493302406326870491355882237786251452439752451620972691607196367069725626369601085234495043776156673773705408730507985294777881865479183058036561083511553038110510361290335674700580858030066463607029981735209568018692269756289299643850433319833218191205343088310998726003640398317369429229583240307526298300622282523096662965264577329159693925553994271815660059160835189856916239571991566928350421346433394721971191133023914865995148215252289531948052630844838370827170139394209266983346971894226147301726809882391738440712860623426592232148130937691463710843560494387150086536943454557051966538449027350281234533726092244843827440475196847828848154346429614098729066518860560225649968874119320718316857645173277050575046493842033446089400495580560838206924802992583145853008994329445682698733365682218411109187236098947457242435318014148152168363244480727902460455785674099168054640498921232722773241800530093166517625982061873679011436907746777737098459260587226110868426648538915577015385386422296181311297456213631259767992954036101882605032348731993227538632068811313962253086520198438696884231466440880337352495957024618355361854196968073635037178127874406267474846540763705036064490280859592269195291839541705760112810682713356078934747917911651635330725709087929600415627141828834003470302627906464752291776787779153583641489154869575892484653504577793925703760796635738007403506072989936468981488568127784504663055693446415155824469222521227173061007860281636332983862297196562274447309858998160973899038936868068835685732771305157614313343138414978420735677722706948507842271766138163929505221300615516079877257401575400983145378515051046158383516519294002891813372239806857156068531812230233215911880399709703577059007571821286619328106576005050178319901929799221908359527312976965013399477668305075922167060312604692214352262556195131320619108318098119163724483838608689128703299581825275672686414667859351085237515409043195639528013338237022779518706970587384488518970603159442223551649872036250820871302356279368517554710245906545548312125123144217025581070612664444130487997928280188911718576202699154228531224924961526011391640634747157314193096509159537146307858522551880661708651930976061484408551648325208582520416496526974136573309741657738220407748587450626330883696029532485518587772232359575452886099710257061423287497680801953489769418502445155999996566966916864557600465069382949925050454528679596282674709400594334485608370017328848298720777260612882619102631873779613696632025180343550657659897752590854462170681624032147027997833491666123238591199551012377521815917952988216797080706096393343326795158684648444144980714530503442591292484946064847189103631067500672262001447917524078461155174955615285592593616831421920987149220195057820456593827194752865409887988201643815821035368595671674164948779269138588779535108297989209283891952351956308563879980726554496233469034453661684166917185256179402335389958068328650152146796866901612190405803950003217835867328143755576495870739380227158985608934264856801988543025114635521522426035331620463452817199351820107092078427790054027032824800899616916252862224027236152635937365302148835436754636587129643925163309625763337578845807616321603958882505143176160403877340356901661075423640014337338221331884168465452856532081381624368595673805444760262054111190803691736717100765041402190631931255887228804290614657630173587710739281471238552285271983510286241422937313064008045585144085660143258375634568590143474293357244952987213530132284226604923314851268331885253719417757703325635506585926734440012749249994700901453876854456754148318976962640968430195980163979757893616393775077399392170906740662744226104635084708463261458062483847077653472594523698332405582825953553683541870004789839771444336672471054491862650948981110792185984544348758607385322395958422880588513511263965118338612472277321178148671128027728590929374252981918954501781022382753851295114237558545714722682927858963404456344626361779857132619884619983734910525471896973403994090465114204350175535878583236766262509175450341403888043380270051339360343731845435594284463441059584447789779922815240618154347182326673939541735483836239493624986771791915689510226346479053535678120005641949299653634557012449048047270284526375976087209489448113758346879723582228465880951373780683830435275088962830638909588975387315028440355669556094584851460557579767260758507636485840089790650893169081643491569946834968567146745881271028169343887164717995873357629582120232171655311609724946232908914718565018647070071682414943377569360374151973308138956870978540486075811182258119352248648672071162780984494769763794579328118983404180346455057811876237689038768607272752769190883916989501378475578981898015830988840460077097815827135482513894520280565456845992649719121791523142504425527460501625855787418903831891699980785476344911882013744112419511018987889863589827023948166728908307125110300649565811347576864342138992264460401528941810110824535081788443553951488734746159611616056457522280339305853392993850023098397188009638689073794297155202931318101847106948254367350844419228649399247005182542548750675423074389280191619917094827692825173681179101398563970819293898118115085688938399663891298149366643436702109853876649118553720490156790864584963643509761257045352341183164089823446753222388706671083454261034976792846308059211785136074009693165911802160110139952581348502620231036734765921178184985021606695478294184773212131832901291060136851964186185233559442452500810069301753091707146733273934904820928021751090936633203607932455660579726843556676525060447923499955340438279588352540174204665809898599114580682132100158248746816680143665406626038162278286227654954470141914686286122340405340717716508935911799538211452983787032853905607913587327843368148322286562203682988421481608435604439864866502564443079337210875469556959596805259113306005904494969085662093506813750767910295562152787383169541662357210591354117603271108068801973945157817092270323066819033698695898449845432965099942607276151988898811932956663709251004853518943038353019080466387995481628577649709626408005699691201917752214438214381153438723157093333684511761298869598225159383502661466740676231348830677150022650305688738755554770491346262308776161665668716433066548439469277770068234037922494441497402627415390305811631389951717917833948173146721347740518445340132049341154567261569536632099578908339284417105345311933925374853412886361174328792837077691491738123071186994883008505118367687335606486541325816790909109953073634369312857240184797133255749392853753701603623258277240080515504879759260114916786715793024795120135967173449040391223508093098594291155034203065203582218476084686226194778772458160576087656834961602893090948772917233959058461326771081196969323203047292007612403867980995407021714344968041320208038448259398150516137795834997606944200509790965181052558357565113897125083497141165798832297843872908739717000215058024386375326843029902442760851996525398608398056892408825536322555336146337042178670872177769106073978518677226968330770597278452329919369912183661520297632272035549098071481859663239931640652489997406888298248521501308881675825496472612339882218869366610517661532799307522854103322317189511743938391195941245910442903916684613763404535484663883325459933528063410982111000564983112743405552939545530981746995780278953580473262049596170276920231575052037602626420284081964637996959165193740328668538403890631949855618700769017266352434627796434303361264381934503945199986892846397552229983469583582897101709108893299637271627222170348617936556134678928089572688277624720300663825863635508070857631157943087062804500612111788715717405104550104545905123544128919416276445983724442299629928117187985782777555784960449391389089829701276687646319623723699147671131312212921099681660808018659706641231742780083607691224765322611902457573036497832472203323673277381360601399446917859654541409608556872737635700558232697504488799045747172172137034453210840999066987192381982205557734523964164296584810909326154228006794603637029542176914588878045069389191579930185252868403091510882147351611163440258069376150128301534157433928613681943653439854249943910846921397831139776635637090761172788657476353439420155536833521030511299986573691225803814435930331348310162102128130079256948244552702299393161640927203460629370494698556816580200606180273022824955931335871851667998134378117709516899796611021904498508598716045562131081731715768331168644568590371422569789502712784465201411378992684911983983775924528645917127060882395881570542210391757490026915405909178809502132786633120382735231721982807503251605284777620136122532923239671005811712298360376508806167640473966705055193753740717466241583104097686191107046817697461656549391462328429292843434496258783553523393014084168752811076037388739651883988725025938779793311893090575749511879445995886271363406388614928485604043340825693977124388702590255054834205725084490727574220595935918959490845063025738007419187705272728206584698591086857997559300548453049145432676443276621805764215118730060320818818331132330693294885402279954171548189054853347190690709296881144382972287326687693599067300929652856966892404926398173825292198393704649949359904974529545199003744765837246980758595156431993899746028829280699810506839650399587111431536863105229446062445680636941453255757676392529304099614489614822777837365522154958104661584071593383594888613070866795486282103200847816211364472789320630591420357484433359423543354544344223326119135041556950407341260712866688835668940668425172596775715786935120771814111147871956961005229936775340939745475702749195961522237995845930645789033133606660737753954105322979601338018400218510601692192493635733873554163151876670626477659765744362643561016054928408333862398633183395240931497102602503921656967775726629331517443614653298878277909235362168778414824492318278435319493040186619465783024921233894564468634248834792126426771773317742555581804073544995186487328182947900873186632221288359981794494254216962423343465113970265713679654019512718863610320817888026236008510333460088778114884804054546645779563463629618017630824005231340401507989767704684245774330818773981762465974967107975444040913427278863401794433380451331037527199309669394898480322241799397254102996212771971591172882947671795286820792306275769196074475146506946814028095798436188558030158074100026602964542698628873983605546399264596752496291687211941348072702665131678322189259032726977098598936046721413022724182205945731557244220399176215906297251189869000246541581451295936508276345938949020878059489863243003822240571639101959582847896024399023741818803747150116049007161844663318125613196920964189163170630211800259199494991050818457739375291116096154711337977219903683244924992024380849183519694129748531936680365028547303649918923124162413780572116671618041211576919888941194821789498338515685005196834989955220263848383468262783128957680594141855183106840863049427487251786951538737714599617357578590684159751463686845854446552498288633265273559570334433238064551604669279503034679575395518872260318742995875045494421653537653441930682491547328792258720642800251582779891028171155949966117166349411099310818868231689194446879940705083841061456158030167193511498777755897917213030615545525678883465746745577501712055628105462236574077923744971894513404954454766898599818066983265678771560399797748085065587406595493613003351528038455006198993949517796250679442516112687500247843816993819075254277155352321490491253798028719224326394352018396301542062576125721271597848876326727647562005427700217102244106442996803311276297108472408977696829866456818452201043613572482107304093058177739138893975626174584423543418406974841663932472085928328806412144681340809669585234592107765113781348420909070915363409192151646302373184708349995837963523045539125196161801869965916389852569514558081411865692229327389906487234733541483204328130129344162452970442951412805323197545586147807179916973960413245726065531940175182066062330025763526539612250660353647854431993346244136682753487768200893817418559218469676615008069376955227734885105970864078459386496473577184713340057808479958137221481324273158042366594522272637093202094773113332701035156983742265105583102490052997847526064250021968539034144031987487305784948425982606944252056047461608842806810981694559571009679869160447405681314616389584453312072478385189357372865198466952595744342805125488244706303709696032919955739566791118342652436338207615301310884534492214893870126591504917124630660404915892128020264132971355932687204397155223911688993444678599767480606436159660041320168769743239349264824300143718628583882784822122037711013473185031363060207286187992952878480587195786007899049325059011052760542668740426130035050958029610389810221600849640480206879690214614492390497233008088900254303865817842853083537220142639362150678236648442710368556782598425108134593644146339787578176083108443860423129586652518325926106610869227584449656708835319419690619052847292531888881662160253968280088297607266707495354392822084955731814298526272377130056036567684286219559091246969070060877571149967201207943889097735970737105022413224807161086580746866351516458724924532156612357518702245321234024309408091122432122232546730749237039677696431546556263430456942335572951436118543747994021679730532313918531185238770608258162553101444375578319043702700510277592245545047328778479426299982962680462997183573788795692551348941589556982728239315109794093328646692896064712127015127200459174754129737625488236841015345445635335980083629146485693513173449536085131478956833432370935784723895014466377012443605360058827126548051420766321713400847512640320388160878623012664756303297336046297327956464692016948553175010203323409322430577711882989920400364903933228430174509736599827556492180498874613524235626955762944307068286635494584985255868816027194656438537632426351614835746328965521950348764394217734082675576803853463891883532889395716166020832519619558302661820225594872730936283248230226374847489307110986517051598701270745777085764001376122614173688761574522591417042047979915611190215980967567839316422544829634838615370682638652335267608439895095897928035919464668168061891531958786512465221921126032980274814373632650532130082213218771195014789324915223318215611499438262337450006007164629005105050956071955334613430229266876769090767734447519198672305018594486318137497124853874156168146784749496781221897506768977143181440006190683276944890690401216266653359310309951167497931940670695817452794807946219076352950855320897991788446844864461460496004517832023333846954650079569152451959026028665859908527459220094862649405230433549660491061512432935737570099504458487677934962794438238079530829921666566240035090694106868722230401131188880961145465855059621832350588105217535054971398752297635446409747799435313653485310595170410652650284439251604396401280397528868716989448301405082426450606002750527846049594798917669909945075969523123867191888018720722735459049877020332966020970332662917793824788209097824568405880758904559507891480957491019313758725265676993981607857221320646349007001005669640981155587209664135338478582452065489622338924227794005003727801111594508293424375798476146984483228088896066555735020664188464116407349289922652729230587565360055025364842013407610125896149867209838101841255786161510307053896713573044468232032044429536701425051445799918995177354563974039765637496583365159384702326757823094396547692552289944681094853155454051607766598772666148814271896932048494009252714514768018076226806940462784392580052423004157211202329552729137091255554227261112440810886567567124476393144060213266099077244172268223036238582069197261383923427807513777909434391663178411878126906661654980049329358060977748221211169520583829136687801673327930857643534489654640423952493045248531905210214473696156994661942403542237979607208138788351217844812204216140788423284571142213447433087259398450047191809729055211775875178406988568760490809466990927750339218222634378246799911088668535467028080862259878287575376213091662728944195781537366492182537236718290469065666814483353813298724498469266594263276722429621412909033337432784347535616461482941484020119906859313721230971106069052394273890247717556475016493398244875486069671014595921885882929753156197644696694396838547583039229740963289100519844236508155745418399748256969720807406880216542286621775465760444588696345339422506212517581973976756411810667466561502644546297381404932121205501701558090455216507553677637266605572358501030249399966529773737634743362554357261629621182193905334178977433000456837980423546137180861544251619107019451573805281129604825760321554941299840315021085799528601704091970984664963676542865770264954085463306481238732947722247464545908440928551974666333530859719339173035877037356679157399993054495590262642193128499212330516110581813249126669272729085165968206865418745741689796166243956112105043873027500840273285220779531215081477641002485985266226508220279079188909020718555560097217595698695089082138756858667794273644783217001550067031398240129479425239499327273770282613975916739550591903401237295218527877469382173187855691348606046457973826559152015883227321421678351309868084291741817827824110229517081733142419053924068325368422146376592295221783398876538306428856659165236618617881570597243258265873816161040848963264427613171783599293919657582252829647475804949733503963334360909360098635668396555012860719855822050540418274328012683227266332000113727819963086393043301336753134655024875881682281504011044654671900302875033212315533601110140924577096173702514822806050666665375614664324650493389749404236646046904830748299015556112470261274871256561378041005001642618448680248036928554091960833053761783464590688443696595842342942935270890635465320494464059956498084033826314368974894422447273847407261756893074649355929901409112848162754266039706839485851657678523354130858578489928813984031567243879186358496245881102725017547840037543043533060802739790964326920497271257789130488119013408161236174936524784250147042025153367347325936253555551501625599878461448622526028481743882594716866021802812693555307595016919891720674607386638746822815560605849298234573371238476173987861794641554758830626799458413047041208611652341999411245206518792007883492869709506581564423671035826139135854998148221867964549482382064601555796848468466106300582967527826203421054688919463199515493081442991208098214340204650542769456041777469498804362925993609965864075314012515649622428462253348512221506998807706712851480206550650396613410315837811052602508181666599521676859588297337878097551967696456859831324363936753342083180045574174793667153687331300672586726852310992781116611920903251455830154316260591133483009187998599882869721704682204252349453889402899598397144355996353311262367958630834376919998733432515611774464167492618200622389462352401627312141431804961731679824426301713121078857081731648457463437343849827670189738711680797988836269313098423273232403476741033754198050522290981207750134722736754420291512984946083230615232308173777260950863130055149461796570779840808499272429829045769812411466093126146217398005586637186407793980496294601784235241229781595954906375985744882659496279296871906785431406344045160660528001885982587412436484070530603301847688881354631296392801769395080228861320318048895455326482881511944426544779255416998609379112930588446344688816382919321724985890233299941861897574040236766824786484057674452309437895354943222611166500944086540154065612549230510107435172653053439939520691626089531014042174486896978439708932970632524910692645946634560593065735498039655280902470853061552308056151579177960326972005301709275769199801547273630503907280851020765909224725378465245069280794593757914213254254241070930165233888889714385973293032446292827123628902478007671944564075928541661122779406655627364116316038194490005478307692702647821421840307630265491517664456868228275715268733247522719160840642496716835635495302946194686603813378832173243955741624886286117262909674210766562650475700517644604413187036661664360446157710319059250403237172351228926330978363737018221930977725650688727649394888389433163318346485781107708777067356982577409746572632932405579593967091599141647550521641059620223730521105777869184448391102427640981902984112188678545729089506184274432237228456778988724284327094934515705955206216127744589922302722172281875676799715480099971204457171040725127796511242842657185459398713775628801070319931588835368971688905660363047380406244880420962581137972316981957618733373264951382511548256857070889869892592881396484765767802276425636237442220323903744931114912611751605818210940761941218941442808731959218757549458144594960140050818478040150093667299435579963711426370640607386695664089948059922556616140015203101357634588712182970308365199405348106727610022387117182118604449668873916330278137986497468419123582419715085300066343266799759475358117524294657410019499061399488143550039101039635178665472668946359260876335985019628446607714848637403115952724538665114648591474259975059899823463331216008730783217488929742470558400583312990432012635670296455512342767356748549367357896237186131008239185464119366599401226599883525245944514765871216705997142595236078774423864985635319516503149340513377877229261296617100812533396633533570420570519633664941024214061006922237544242516860275633670644372749548682881747659056595083185370595564996338352745914839646501502934248580580353990494159593687137781458336511286157976659763673279363938462890363886470724064190540106342372575772462777790194922783066853881405019843007329164954677708776645103021444019622723171149992693576163857615955383631804408762871777950156836486681328475216152996130505231386043034488834833224925132339242225405053522018527007503874762430037686779206382814066148889657372224415101085943623840618119889257825567557572133417627129004555440495511797942553549099246832282566954603585573875986940005864027704004388787136863720408490704861416406090193886776585610718863665412023253859923142234317632022991735142659600004385808572827016442767629066707882314387742910934175401980599891672385400508707042557334674306490541619042313339475426547220828709012257988918886488559706374328784847791424592344948869566644868468827005168494434518928664805811503830781432409667359075978266438121713284059242993356982149228976813673304160172809654852817532546081141471419231507141159873243989290333079589892144012066147505438929313969022758085449936249551272422769271050014010169011251382033424802570310369655589749875719408107395716452504977440630240545982911137746128068759257695047821383729108490945016946342877714431149259233009607485695313118083587158845534082049682401631114993473104477638494055053445884745526044626142930378895865216785652695501333471258372053354908240767591206328921830312185079441011859619220514333014594713148554570874145021160333649414139830071925317207083174405373812461889100251795304940972878632918099408281875027993311016428944990064276410918458989756777758423265461271601182928646292871782152411334073769835878239119199252648518588955689427247799666231387858346900673539901965568810465551425270306638002974044921495954470750960039839646662795438561271850572628346904869335630169360267645967757659269945922186659407190397099679811964652093364925181538156994721318041491279624337815765142442307177961035041452247799183615584693835206651307669381963791467517000789176341200184573843004214069471584447475783354219072167848668852192859740519717141873288637304470464803900646585864331552977391454188205788700791508746888301351278236067859652055157460950852413278211041038697903384260920909851754293951200095560676233444848904450926434163809271396476123905176303180261183644783053765428816703621939436536456181538581035816771970058650749145411168127230437338393326583962134109370513616209407774274500401361186359951515738025779516922788980422852592508104731358258444258505462439199239270441750993256510767422230079331020676680166769373054788882275334434473755073429875371638090604461087949116057311546932186821297034600434419308124309692225315238443098003810622407452472915691782201962511244587629030698985190579680241743741049318256607051766694832121392710411856447128722250804528809788562736496699223188998227480250461314674284134221121929974316668643590481948899434898751471317540347312088057066521427654783603809917847871455963344611327900747848636025942078826181214374169733274142136588956383494306156250186692675004942028198365847450892664386802148420700997465787308143018268496668692613162546167465961650924112933521630073195994058088549555009458805702346773133689245959980266595812823711942135101306367807240223798070200969134301122485191885885722968168814573979714565510835731647344221189859204515478754174835494164816223485079207346371672504426961433026096207358085498303802756953720113099310212493197096434369376306833814252566223523895511773455649659448923434162289840583500095748916555436688961121187397685266159949433338697717908431269984404041546296976958418651633411756912881733429624179853748362056045376427778663340681356650478227625623444331540754167929272397403913428508507774178743945230923341871696113696645775409132450435566863291110991053501935534453268032670869437135075314054449868798440981060490637612864839980207759123804334015884644311502843072076198393395204383176398606853774604298249197777471515836886219749856217286026792775950895211693191402042069819226231961887877896340573699752535800132921383260129985413531073960254195332516553015037633981643762604678462188410450957949970221046598403955599465566145159278163567095077834310542564118637666076750421907025759632090758624761798851614156748826764915735979610722488101929021803922127120582742168903077583836847855192717512107745365125837258987816917502595643019488078380152463748952783653722666424149083558249856767074986091978110605470212740004290703077026290555218303056632989875223983096069191792830829705908193947354376065120480530813295232333109008253629802788469582958024441618660094587060740017377077401428686437847040737289260541053812435033355544727938986771084445173360426825407069405597170212900344181857178951975495951887294433168427493349435579558639759546209273950639596930189685785145394077117780599402967844734756352838472606231108370032687418394854090120530146241834611764489713796967322535123561240852924790775244266390855357404161728601946760801495188176247797574563814345151271759176484660020204755296850381008537107905649741739561088258149517740577689229546758260247677668162594490080930185220441858092273876575517146269039097733383792524937710827023163668130626542601984061763846591511992839569129561133669676775773508418910401973548799065518813896790350337527756435120292963480448057339172809606719249769915769738080036091451090557272730617025592470133291751011806684520442936173372182866554586660853353245983309545732778178610998739453554092244025026335439663221877160054661450277174872839659637973716613833216087894419328646883968047383933288123660415019297611109798381441134959402499794574016442988189818053397521840449552340603228211674729707093391061639113952615251043239818766661577618190765643903802136005086582400286060670339710353651353522016313473599961308085098726867173409993340007055655293708293523470789463752956692665137584995843022537429408369515122834586612253713516801766625426995476489625273097449982000008590144589617348659934593895022107015680487007123032345276678511830876133529843954825671120424366159274887013245227690093981194150771546038070066054905786055326787383062459026502655424670762730284588885065803446521716119220007159569407388547215906493873239358632842247815318067965084047266589516452717988158008478930788286649414081575028540608200317093156406440600461377450103891646866993469660258951719982403044181339345296374215493450447667280815491154366278293942655621081794752891743376508194618136413641433293538985303299928237519682864985809042761604360781017743386871545100655288482996500185351352143812655603345362886286272438120366087191027771933014596014374992885878227433683956355563786616045613636614144343426301224594926099689211712096081814959162842413575083044918250591010692493554035362282721582608107275510404550064233629488345868674662906255239143010897032740685648879443077796021190967968064306491289370232895033803768797751708681977865497943746857144522579510653158663741849065296871316558279023179060286380226110808129934422436050924315810289072696840109376968017501481328433078709191158762067439012712679940392275575570377148938530605120413155304643229755170674627695625293828619225710514110420281825888075933029824609323496696370367899529099971556259191516069341914666677824335052394107226018254781952852249190664835882360150648420095818243134466352185074925461010513688489535108174102055468042065714616904196926566572115250563483447884875555294186061464798267874867857258022218201225518867760608036962977103791034615444216922431203835396460254424205273142014479977804988513175498623959140343243397832761876154990337576763331735936159950725792614973035159817969850736603835443272553912456780545825633701092431800691072332582570938143733652249160291657004246202984069725644550933651293271856257136793017180246142455718723802452641182653920838483920045494326519776836884022173236226521177438006358270664642462201228471620530110783551352463186660158673564283978053815462764166045745798272957344592269261181858059729014702095248832620736536816812379114704928555744613117395524195092089512822958804186470108868569782990226272226960002434633995500974518476044049072119320784827058809214031686503849663405004446307741862363814603128962039612874649741964554442307683690068073691561037270522371838528536507746430538125155075272905337059041117094119187091136806927563041520384120303636854062668068536358783076702547365588565449741522573799786633065828931032546032463471081794169956823115800789831660298774122459530951811347723934970157179238805361908538810237713317462803522431612431053437458310690886967034894951565928693453276589536521893995054200087997669839538998386198670225725561789713018226677962121934171809282952685446295717688136153356279212814889174729602760642213500774694810104407362359750448826514650364092307598967733504136386269681931575078113240881744965206841229741664969940494735425814813217000427111207511234024722707896464872981746672859714137159159397714263190262515578532744535885276688196718724458200937542060017696331357031931269649402956130897329958043953107746621471945012694538104727912091226699673653674592177231335591187290011829808649601301437497318892658505743376250127030520861707777495959473888160192533189434162466336000910262221001446014971676670287845694593987019382555002410592273724632065030560084614437179914480802568127477917850566851026010004935333144992571423565698759721255128464469703350554457486085279182162324219005732346409932022186118672987039007969185586939443182377126135940981076406145141759762325844476765635519872444331863688101567863388246363924540468064906881315531066550670346467839281150147387974064783592439599557119022626256844799535547571899915462792235928622629261923955446638197791698276372150519096191163840882034404921051839397501044177222884415487989463685820522360405152565729893329758140291210103586043748609526399305953177000125704721173425822380985865194040452269028432870618284254713449811400592487575459152386390721059089527802213235374826865790675352654276778617719030594112769874794603171080230234487841537814307389036308236647088043745570306380921533875526238955113033800043772855300915051381341143871412840869573751929473696950590935753588402630161972520728124470834801629821028017027383864607035807681464428865310302900020640729964739211679980347264854022534010264024415915824424239851719333056134719137552230999557480852173850471806384456384721268470174779453690837564121133322917059165925084932893459547551908333991430446040817896126114623356442743809518327373883692467188554941748455656128330939217606710798463983535751700843941263557616005321341860456401558034234902101125364499416150041976665956047193404539576608266951899219928328393526017331725574960436587377871428825317744247462987004040775020062319969898768364994225577226253389316433231914384161503133450015653062214527125320456699924123129747706537161361778376936812354851894170785809068838034209083148334192420071957580454036002809200071565377996275522555449563013825981447337892324940534988124179824251161310851915426458819254702067800672647441214839382876136796792375701282685459604834815857272909259448342138924729534607829306092556175421565097036743826668913339874554122976930429834159417003108887608878034367748607709712237044154264821034819046671679468247755806840083073006761691646769659652800289328649414773931347442570594516079910047707538515838838247816228953491675697085510696115035911182236694427029952663760507929760634544296065097231381848572745042140260620402524192937407934166827101642779007218317011640350607808382511813960334038432959839567751094221813113198269668013009268019330100257555980133429157349070876421617886481297373986764966156676197152878281886489447692457398325297311365894269892954091706541365043326912672520948701955139644776121878063251121257939343842787129425426932067156566293385273736820490263092129680266680566970024813897135722971661163336702856469339228322058557969002618570817147148216872402347695997814704040267117485649795768193271580038025029145437389150821013366048425055030163193771403490408275594957185329746417022102416413066863566828207255760727603110313604155366356922597155233718457746415233337084800175892557185635777131829278135954731839680899440430076116277276787535836481556421724164276730321038512888075462873203470002409759301693639075624020920272432002948952783517941446961177765869298607099948214305396022409526393980740748344062602546921847595875294571234150059476987868126908563468867721423472391967694340037369946842631831079667909085889566693065558147507438399995752538978806117845267158969802998956981590170477140789448871485391845449626834232594075847856888768235010230171721641846901602884050928647400387311413601877797279933864246851642684322101253658884827505340805870967977413412935784042188026981623120612925670380920851918842909813826484988889868960468911327120399967981401606333152024014866048899567411239597560570537402688148745007893410993827889414507873816304136076799834624279012245822676149364160091543283357209582501704172754166633425456525703597262768582338638976617681754186231451775320154674345646439238820080077982184968806477747850437290780698435934935942135855402552398548788375841174664406321376707497727290409832641297160621614849596974696403078135026378029291912631052954785106391806378802298618469909173868412439504635309574299444622491871398290534506828424382061646075096192592955865723811137141204258241140053714402782066299991186246266121553421854040891826517316724616465449853334150178043791797230221567189529967174565454740361037876217534891689124168145665973549255292069232467227360884432976339551266858525069851905730848325775116641199183696323943527667881397938649296393564216991642397133898115423448198716993158355788558786909835612722768470419853189811380795490912183058868104915029596636368467363899589363442598604858551314541320073967652772067898708254369255466536559936543362784121966031230503976541388248337808888976781308903920012913305330723426159604387506594249747108958102692484970469248465984571553493563824830369994104631474584780009207297662843902401190787388187496577001295688174913761989887922873472445683352799758118529546673773000406608697189754024890919584759011431221293484218561695622416015415108423513350573995557194094421099551691935110676205713493506885405314839284784322860111647395294233343345508641634843900437625844323828337469120917588252839417433633700233266195677441687159342480393272211916163029417763274918559080677448267897801899300106413221311421566062370137145849602590734472149772442775980381491739073479773939680974458093537872917101118719768768877790499139836363310797200323899533646407645353258171833097152679201823720479420434735511529309381455859778193392605138931954868207414873584195504961169163231508693457288665048576343038587258774118003458298994295459424680734798710279822921515961282144413348920251555428834437674900843769381482088400818313816030469719399370894735981285349439336620427233898434294268664109829049137345864854218183871476959504322402857987537785430170989119209124618241841301856771324665992965766769261798732324935415422575296717686321592567147095841745699452620657171058455423876728654391525587775523895691130074577378230744422493645667723271474547087156111428974504620348393070580074515205136585888268980820856530536705546124563933377442108190151497127111149347125733339158497727349387484689267629688642716888309991792067011413097728281821653221489943071700052184609728880650688830166082977642723866516364468945779531664894454140262286533239032749908199982708721765597987710278171394946017483441936880405851122326209863430164077252570299458215488322487366432218488528115619494983364166598251431855161646044893618220052265976295603184341617835359740451325069601766768963378265065356162150598641262557705482655778665492392030413446524986355619439145032520941062475401488382581249973346112951084471057619946049248932203407255123937650633059467540695593655578121047650751224980835692233717378650123791658935416929796427559639910649119774414560898139850689301135146869154559486094263105757431011778346437930945737407271826166908996496180705491228946276421559651530164826471985447863472231791214082711540384262862073128106886733519434357169975748569929597669984220074006843877447985034990173894067437305144345222034173319748101641890098611020646519795421489252700651068426306406265624118806720722944159592105784530871171550400676059162845679832544251168346335791948974503056686813851041675488699686873002548608353766907230251981901394829801375095880057964584731469541354436215541220965795435889851188937663661213125810821218601701068866601870901319452815849492093391113349884140926976714084787093081352733210895805712187851832405626752868457061102881382505948105665936051849103047084860909804554247120682098419004674655311202574083944302466187108874548155433005462390344920832724610835957359322492070782028439936230179700805302539740819588849491218727480637606550383990754486970848049786725984737772821360946102549252206436696480137892742781932808549919423558493223058130723323151578997606562067950522233264183878689387774789667349581045722851680977405153591750351275726472246860071552204754634405242174214786633459988509860035451448547425167063010489508094101012943371898436314165342763462443096049271199337736397567168138657289968286560040178767443632333227264709701548859295308011872300180506355498100362364814339663102996874178326626515476049220004460394492241395479022095637920712660907164774396910896195744006925405267736635526713090218488688455517077493124475721352365140636507549618240196654642723955703888144219896553071584418594311103068069493947776057940042108612268700866936835409300998929169330839654495627113721131185245058773963935322288456887888684040900708930989474440724615175552851468818576880324392158575624790829559497494404375588143665398585222899432688450251613548380252334112060487428005495152656734436258708545124245432914886528954679776469442963178304332930830283063355062850030521764992494571442897214248821924469085333425028033797620649274488317994454309855005085961393862408772071745133345116442404220703380999750347485691512268765773504222041752658368395301318438480931069581399906265098263166297824086223264479179153887320455887370211409399822243740400239537670682400953526992192855010717604665536221558197801094268526875964478025176117051480258874259025934388258891171826110162563692975365173301145005723559023589977808649814526003595832867671914777852030614397706149518178574679759888440680744878062492262538218564592127798938990859636797817189366307849585181591034861607952098457390233199044417052217257704610728300579250526458297641817127271469973785487995224266178411281368956385124064256516462389419515481611583820451593857744945615863531742102800827178269599330237722702014256652083163491709316703094813287154819422213010157851818096482450610562115271168853715128729648187176111220982242991313875708525768076428349711026619688770913098439675108020264048737470793679272213746010810829340947233327707874592155328062333601829023436833163506317299957596201011627787165976906376990584295254344846716684843168462723505789436772625776020255523468170123389749100734904723634422707110404557965029985971618954496221927014527880926387171555597468259834897015740944904240556191668433522674968615674762870686385061311859042139991854821811354090137305948311907779034514153869393126486886084871975901689421908875979380629290467733343030047967590956609873075285257412816221521557865793230586654941617577969923285772309645134294045546784832198437445402253706935759095720584064912215724196395984451493393971574759428133570034267946686550799830410199204991432445561632082041921037129529276237992640690303326708100595068218234301415380542397256837554973524986578101580521247815283772426222590354401143527457349171387477719632500835037198707915144887856524237967686395676342522947243766134959499027844634761008462223274121246694850402507847675508022661650383991900348890091427677452070817875036720595556607433912169360879258184528673735573007686103852417983285558992849885208430011091999333432409532585514594817723070064543408342940612862596939818697089181588809689678327801708883493531724722909688224160044603133998134465615763941369915472319873839058793392574474097354531931383795800580010685236930628536020274903760878817475554142019166835025317289656054362157658711537107291334515714273842312704043559230105107789551660136781501107274479807013802848539541831944255953344124440701374253988364169808038216117446445078590672677529899631901887480926326229407056832094651935231699758038806936420062828740993363857095856051355955116146243438466863773052116498021544021137088982203385083579591531634262341152667145211968559019263111473084370085606208645070104373911271625940407565832073719847692223231055150105974229225865884588273344338317470784051550931126616466422194146420003174272579985185908403905110243331191576229052873171103276281937590588454378971108201335618379881901264787495886421446959446832888864806737179701677952872320912291882262976331506663321509226087627735635903788173627705994821269743899814076332167716522130881828931202820058638640081758253230967244890006958807660599840640597668730642624953471010630340626137275390112133934837622843351885397447685330655275026274455601151598433560920441580768061149087434900046345231617144440488738360946692463036377814224740195249007390185018566641689008226832464810258225712050819348271480104927992365291229335905758859717067290706109245860694460388019916982219341822937880509687017530296362517946137707317073244115708601604006778693276639751219148408884627334768165262911786448227609140073956359434939620239758578075022291951052267772340140996798575495881010157618115674025198470148975859160699540967353310930274039944227834385445066184990469217107173925090104932232196131804184349166888762117155387031762864429123159959076891643204069272559247952803481975410797738774847244465669338183073500688558330830006217156704743767253697899218897047784555557874491968130949378996052466297050613743537875275073156665764633475582864993332766549936245256151215311034046704437153132963054050319238459813514473610489377273672721326106515657060504190482564946583116812707308948335705148860450853484867205848437145149500673653891728243241791724085031704751438068097727570728488495620197456945812261507454301086659865288248290495153361211896673589243255054698846443496588718978063300036678610683034246582890720814473548413490608997901592964239506992473651009762953406146946530883677588894992949192835401272042135884999422995744318015300674100907376222187343316311506355914393528253533380076995397220269907220663498237894068623425612769892282090266153581941955856765911452498288804006868818102772617891226578168368396059131804544367747350133759681735730902817147989927105476153773047132560675430791610600504244058455691149754751127656110387054847881410110644439888636095674878946857427933790107646305522640881043812419045917210958861597936484151464409955637432158037708408967577038362830541842840706330996891285629339249878443667918423002354130552488906569606619875601282596559537680167221729091902310207998773368330386746603618750545277101569926106453935100099304657047845462021861798510941202858069597454050327653939155705682586153329556569125547735788797058278322002985027295585402703141157795969574006373633783497244442574398883826463905362668796237627740188160907957686338824398518587078680376098188033641537246462809994562419556994378229606827694778752476282379638275588183443412096174619025367375862949569282715556497742543158157631760121185372836175293281416481911888038781439661535544109650774048686267311744393315579599821165245780477034796049082397058026265365852934285906018408829602242473067976539488157663472495164291352220047988290327146400370797335435069102838694977832693690915239205399525030831835937583285519568284970367560538167044901673209749081109597643945258552114830457870035128359297586259555590759160195512020726006452955470312750496457416584242933792010782478779340281678943186337303816520142992879255327132758135952312199790797897947465409252309957654862942809713723647746521761090493177255321106816798831715488308572510275217080396322739569024809687743790963694779172776753714260441133188160471374151299942512937562242099980681226766804263008354662959462526960330259307566479780587790166894875228728439793388906628292281756985617863609114053750155617224910131965924940899989732962940593914397894265187070284266416219010514334772233109333349475352682290887311224967175016900443992651119066634817682052274332808830911287456508622759484439674757109320232134655745867873678084941752650851442497961537527936409874736224635274257394757153268064697174463950322020168314877990482732473593807682427087765467029058309790593253648487427458773229691136145938274333688812940003080258161992911703012759728205938890737425121044189870756752204773327943915056698700756386298237452659624360232003822063088771678115236610552708036481294070432298935514982459171010854503275096546332913762694986422314740568375266521651780255950409601866901261168091776286088759904811050115984739414226791686304934792054294004686147180939124054921937739619977422177189743382248538317458554037794538655720317599603811604411888349318896410257547056651238971068622166768504794683773324190853619634646233020158451925490457491689279341544564482379533788244370625122138244803502817630460701684192623897827429330547638890901059526393993523795025186622714729196570871725534343825799507809690341082868583818927782332659926908588543388209983953966413128545310951271325430625700882835620037477026819056847842312016672211343295978058118188216370027082817938718498677587866335054127768018182717783890040542084805738922096491724034550747275706852832191711468899419220523468460528136018149019783711056958357451675756607451935002483109083641781498383570119024674750133056657961234304414179207352798609712741303364429215450681987972321036540089464107222575652357110835371726377193900564289310998483053457307625869515863291562446424804150575744495553904977164944901683129130574549883364335735624038361853482034648698008671487021504412230214574543761956065678759074179038933978819042478672388656776522009033065128298879190395438055179870204745482190143894723684253743714493859060641804090718806400789818176332709385637086891894046259164137872911331413485869471408647396937162793743146527312423165372974755224258789285399630801245630514960397855615533983446113664596978898990906997042805688133074966830583900493016374027149716162947952280734932494309678928823647483011287108007047462389105807059540723403670461767610272000503521715187137016837762019142083860108384034232721217506969746371660697031735075551334668645072331708035601791469149001926541286043871985639829286579305066108096395626382848940117009195140493098729858819498554262206736250760880819022778399978297991777247811436084300229345159016693543491095478682436832209649586963933430276779418812569407450544900303647676090277793196746714360798450888127846423192235657496825362872976602647855850879544158803283250884026566264268461942677948585824203051093599066427438778008104059488946433117684161153352002598709404822884325764949433720978564875243033542570237535952714820589668293638721197143912170230832864089764909983452259611101899564750841745787846034115234215638619812800179162666599311931174549581414376597303618468383636428808012984388544403316482662275621814934140886433992862743861740029716294754523287672616373689472347246766607917679786720419330204244722907464721578591128125486540376521290183002357895176117029890826027624713199966701861064044131453981787316214679404881276711981089386397982980766084217548825516973213168924907212327876548341750533922541113893802094272044562848245219014784724710188078432975507553338554047157443979532125071079176849748817922605547695341752973529918179650916010260288819780763975475225326610946360256190304213063083568641283589226815967246476615434845502347509810220800654980426421102176040156699248283435076583623720050590626088018546061460277810314612425786159826344312811250484344874540996582485729155302316142757974918124540285760561063054993414478715927383079125596907746604287259943003022108993731326336443716959652594606506600434821728070441530263728240527677877774751665421208314890621486031154834354033951989774327091083946524468153463384000014211849544488804804426118902151920722916299132329643587229090171747012061376584405713282466167439144112610407130794938941480968513187039727944790676254239690738695523835130872559194217679401322214170729697199281112815286304393005003470142243741306334335658420966434582216148038938345776269584857082103832726269849899087491396910233145878937157151564893392032599435250155554411902920672484526007894502255052928263488399260968006054851910639079586178602292725549367234496543986998223638532954433963582810057601061733677947750100039739473220991503385029247891219714707666536761092226605307813037972575998448198127445292041373464408265280950542908040293716829380687397692721773434378625240405853657228605437511845268751119551811892793228251420395824084421814773292936371147234870676989437547194363645848754197257767440436045473373906592320717446798988791563838154342018515750642328997199567828973167646240533225343464826371801769230172527530452933302817181587278570962491803696739334430085547907491506221919669272785231758121765264849730429057459104499858125747944544598262698486620333624040658133936014142685853512912046297554147224388337314479135783846269071123246330456626996747212650201491933721222791464129773017511364185868895849844147003142053147137614684905593215457522802187654370305468755376836594514929445156495703624015643858407434921042514391047014722897831691800927242801928818099097211036030870197997989190555844418390598839925205680199763820934659448625938384790718140430241622370729268036361692815775316688303796875812747277686874360438190377343337854696806413885950599265332532622151557027457551712849064209695358038550903334455718655909713836742079136695164678250714489783106956654585086708120016502716056740514619376783790396004526125980922789266431448400513715205130278653258483232376940220575478956173851468671264852844112687628738217623252754348463013483914416310180151484634517214244219113749116695867490591548558275135714386683093836764161218214466173810568268553213092543139574476527217639285724226698306090381117418312510118972806656212328971241548435125266059161960921840987416418547592195233609072347807261142968286403506554480916830071306346943779066952249749202928890217153592836149264418486784314238663677494818179124830538064016157347141612632459909902003534281249070178412934552595655880190277044303165829446706230202112266324678632929638206782810280573411755503616670430127046373667903720074455596113292462848592934307982908529883700819000842120338859265885512522110429419220608654790805502340467361131799259644705432355070133114723179525997664102357675079153829077985390280135970319007062743917984134891999326881335247115366349033246069933650940990596575729203989291580741130269430356425909378908211832210978672886167403116362374923059912520265725819188196985857487033813000984586730176256451503143120872512121540352841774733664488154548100501380795478047762929984798285787406527030860729541710750808494549485724964914930891736278226327274051210784700008534225159332853700808730825795465920599097734529588892599156988585883917296997835195742322096193729860391714138228061625850323936029055221192086952332382391511552655295662228643132268564814060035136525392928878382205910916832453459742614438518934877492251223891394658143419137462358449249469994163094568531905686378551353844525054850533775661284745034116123419780990134155750660682634637460114571217749808456415095562080417355094464726528974565727674219963337407938919314635387292674866525531812050813155317824361696515181268072912971041976785384926401918715762894087113698842490475191052074483653510043455768263134924432191584408296864716179072651638064193833143199026985495562665435596607895320377708495924811146553209447836953008950725951094879011305974111678656230572509087629308178848108123720813051847253555272146301482252996836370639345990764973619897007592149632907106451973230623537280458446873505807372541703333101106785863378004998780401622367703895881824084449430359529662377541159559706635658228470931831205819453373218960235648306619749427093686576512148828731791977912343342276818267360047712954300065708607375655616762302720955104540902889146323433695774064992356848025998414134810021693439053841850038005362892093355158310937613740940828311090071928199646100233290040323310658180242662137846406653936952940546975473439730434328290482129356847795546408128018918222249744976977048740791293496148521909689593143436716611440545204108546936819817695452900874378212984527551029478975068537897328148303341224699778068596967993703065303819398150522056123742383109944018654360890358242123021692777972222726915370928326877837990850242843046879487978982804464715371589895627153597077735288155433701630864372189951632841057922383657952214142511340635616798554628784813622567381601443610981781144942890530885355242562553369215393570740274168636653146113924063166031232267273424077138225809974086522747322626514046294990407663787995839398725083351467848592773449783260371028203508083486617701664212665887655150115452666655789693045456062648226559214999349757724089709815813849898381453053897275042001688438814822106812586600442703403929786376156665973256905177748237917239693533683883084826206514945968153536636668339965186023883846342423395666385673881588441840712518906755144126847184931987698217344951543299674179731163930253041808893466450125354515889771986052295585924401421755701269402704807469462027506991768039738004333299513436355072381779981016293069749685731638791406872166955627699543904956153008362896153569385583783800350387773021240322461184741802808501817963782729706563517379177432080052364392250284479082975666744485803333844763533606569506131667938152282867960207375010415840117282088240331700080197483615348813786411259288102024013140607357221196664769857995969789685867882533058106348183710541954670593583725161441996800316249108983053436834326139617117560762256125862911707677869132997703443437054487514387903640245560335202057700845240131119182652241496901833560538531175821572346236527088122590715762718455001018555462903020091982583143884080790117384192210337941191731801332000020317306442918907190122598356702587609632478886752951825249702389270498332852872112889100687401505363362341380368600508711370499721973281171324165645192995562707704307299534893837306654476511711915244654122450309055103667494904898760765838384477248088131969496809318034454175151365075261271747341154828495087153070912776520187889043207434273499825084383915859866473361356118403923172235133579690573057808737414408658192725505060374168641605609779825942444188557763712137443698931245731406286998117795937355161470065867606365387545938647303371518904160735676463906808262169205392042823646611569506059041303489303939805312483865466652753653532839538038077257464894526303673001705469321595404343021446233930287284965902285658532212395148134187777377236922706702808402200118316508916187346570137116356447534291044714366130514879159354253659790705612980286722167653551202996633495041859067244429328491919800929889418173542672577865245876250393344149701547262464995248695089088461832055934038247496156386332632579117513518731315790040844308937112280109616769077507582890083201210718723275313562652892923361383117127951871604224972692248221280130046544671647063629765683993795491380142196941199419486932787121295119981567331790189560536897260350425443278236959080776539940475075672374678458574950752094941485476905357795742818996517670197340949197807501144454572715052194947225346931525982312375911187033738389841528678983521203565393773145955435262100538981654881169652245865315064239415786139545573125294975645339878004496410515819914782320925875856154583300069089890184971831518959725933654398841107421677824106051453314439447669696867194622747274026771709397286796677847964731240978800281435778997438157313706286788013271254271070067293279481793676222615945335235051148181529669840523788399902392798265457540486189117957795852846011691833895065360027106987354163029844640205801366784979100109544374822285181815797693755747653466737770291185627626590073503371821774311548489612616174618944457793148139994447407680669523498774290370492380874822420413126230136382039888787324858650438501591103187022031228721315721247349642931501680461286441304551739721739870312975493205825538249591557606442209187772047569384781795159944692261549869265667792107760407601102053955946025804806078397689009932176651488555192168510790099381589719622772476268807769136317261030144598894558654839633735208545164440112539566687689895432907248966325772692833389851116826763042473687421347891822568585197632877244377223943184809149601030386208068952582564086505382606764873073898475566052452799136367873930387094776628996825621869013699649878420012934536435670280746406000750587775818389001214892501183820165664085829624227408384724378269809692246188784373175806251369497523222283573254334814445506106691364276407177013488802468571390926058083790364334511264652084702927520733807096610693747817632133385786887691688410556968550961624785536174409808461600567171597039316162634672994438528462213751913088741497065178788127342160356884694734565315371432274360291836711536807628430929331912805926543474259401961598585106732161170840882920048291474582503690700500228765941650332024184084645170505291067394339024937084458925540031950729026411037814422242663001229364041908400933797287471459306900730077261364264796489517414376983976343639921911906282845204713639400879384236719689233660478145939098844693846849559735397652606209106946118053279892173090566774804825470528190763552596796249031178438638220721386818108571637750190076391470788326077067048716668676089222425313511233649173981425717134980082418023447597214297937546678053077009023023694179193753192977922313664285483633758440836779835656852532868083399624119891470951547323670259902636626733933607764499015223540188587254211730668173320254348628784005709099517026714096527284474938283796439664049387124921379036575695809027970602203736782375983198072023989885905400712153414417849515061476276135919747233328479776552496668999510846052592807278175922253872808488537083614018088763558025461113777602501862107876324758985352770461283307525947575784787524883816585551111524141582918998187952164690178079694200303507942969502861945287972216102038956715124832616032682492281479324517759372750934032062432801166538765532378475621328059234263475012268568512602319570634660260579675345839782314593219127985960455622295891543376771793655026109318329781557352939898385768741159242630148034864262775854766902610977250723822252284606573473992884049778786036192760336856031933526036343274542913348677998134543765959945487311832414557914467579670400951440500712253127536691622802222469127051784112197314322750437767381856558039358076163690799595070929974721787952840885297269623001939062414610088282595073739299065857930075287717391359840696979882845734392199309476804845677125671856379035314225127333934735765627871268299068220018352265429715331199537932564878408698770328763012877906277958605967526138623209736582930271477905638657637126461948382310303413616178778068684161261687391523066993842760996338104718686352939943449266550518875233323920322486825822247306952358605335522016714647949978707151892928080231429900997035026009971682035229979504249750249100555526128184629885691532200296796722179314703351234322624994991998082537540924941103084204885633804722418557382973398057693917394435829820501475225826758781531328533903071768972065061165559612992229951730032716264682768313202303483698485463457542726271659768906877101054067115848281409710323104536268542267502494636313917603293914533428076575608470391281209635010464751479093780880623490358573987164961311519316441627432992310048400997345131548874746023534315702755986546419930381983240102827121529443936841926633067763688019326992176786492974632598716276216828502567138817575328497854418867552617077734583985690495894900415839281791593289692256349942554701158522788491132591607826251393809235600121156983127464946739457576355167698805241813711268475870101198137048084278165828921250078787356909729352098951557615700981391818251819951390103388323869975235405302369853399029272102084889480569672672729560978956768959094243024182604148749362268526109460674531227057529514925496269809715309197936524978312609520870650627498410248405174622026077918272690622395286210825393577009174792629109073059929567594701403201917781315594457466124493197582738514533997513977873360061341755094297084853080022903049659741734648106305770876563018772713203213533870625050479732106523902137709191565549769900122942197969061870767370304986686342001352716554161718577078481305580713731141342746630928889950585105933116878012073863374166904510430903735257356373378136977442814954459335151024505598333566888136108009406782053966630027898317108399815236545861422801996639061655490678234506915462901065425413351240298188165616551257566329392941384531741251762074505466384536936828762122606512561687284072048247568938707175736801265879156921976180045998588614503623839969964652432137623351748822394327616900339793201596131599602563866687687890578723260593882444444301511921552449648448025874234655118633979717577390402661979690507670865046220309545885903925670909742546440363461612508604252822373751526942647762163756840910875232918221432075196469079361455464281237034149145084920376783563747448927711796266349861652962141590845722985558453776811103991362534810573682097047671770321697593957709192418346698957009716832220596779074717041328784736107828068092416513667409358328880215771628687577966039890285350485310527116392056530517079490823498977798463694118977544368139638246438587732908989659821848740343723530555567306099652058531968697311959599747209804401041551469077985506952433445006202278077946195134999938631726524295735308871715696097904321538003147733582196881695801410730694269044355073369877686860888873703711387390847700298318814940768095248999615001948790186372375925342504016832166599604482528253554788281641366400434636336817634684695882220054515765260456683081463890691583933395275215207407963035239495412122882161873790827172455908336841624589378676327548347445789974321136121736715102318987135693384593653871269764197811447613089775661543207032361109598384908593135781130415137438568905507606735449727683662365179279730005020449772316214660555517249980596068181627706234593414084764702080718339621260475109620754018475451748071342330078861892308047806652757788928593070798900229275146493491251596000165736413326270863691772093120569999635506986315340489821162872835491763576525823886037528372925474704521698776031882727733484743573242192121553664846429455762801463241629757527749768038269098910661065608700293915136253403119554904198245696801852851919624264856021525243837546524918275867033904710351891142551476728848795962784504199402517137247966838704242408657921563255870821025725681100390187133637469458297789599668717984970384525486609314614429707094528470800758229206700145388336961057605771633332311196812816800423531043217512030872128378660103725549929095292847857226189374810827650742256570471549169693844847079871839711475282130880099590242278166231282828932093604247913205360250977715372289424940921170674193805361518752341684829987063033948898490343451708767384175387871697372078393291614427903714325681587094426757751899211041999759362883294191735520490782631513679705101664597680855302043099874182725227634352405599503591166672598771672928887394394040881546675826628352806052593206145856566337531186471344865391834943720571081702350229807536165859929430263739818169917523787022634418658833144338225609316560455527192761709003509686579294870754937941869689526700441887518625841478976202070288114873005119397881078092832755630373260608413635509067109702366077091124450830172555155648105669312586320301295079685156696311020133460134296814402422559237207752051484018266682691990532509699818490923513836143991493196025051458080357393288593917360674058729554419896959462666912981998507027970275870245559699784069096070272673404669979037159604482140967551159532841890050495680221424779438861165963120566768400033690727545801958334164627493341485772861341203267056893625237360596595708898555769212495972484703146241945001501105395767435317891172883261204065169994870925003262650680720663175681944403865708534660836799511850638713638437262137036202454810229784655337454901407758408806064147208824320027283520842323030168211885288229354136923877105460091446716099335995610207669272169351967498049068577091691007821907961789271479824057917379225385344391228835479422198699353325844518545484214445813803486248547587960119914943569828939678491257863501791478185621006137115202827087033733305783650200699061221656004252132817121584065462650980297657064087654701947628569300489975597622431910148233153552403173678386784293279719164061243349046081513252041347584295573621035301976782695580009817440853487901335844695282345282990832956175621050248482047146317880938159183968690372395074837594538466518808555149294637954377317330257166758404769205920705115887567207605463124413138505225375213730844244659865629195977244877065106001615685339471763817692907654881764517544958045186983549430539314899309963918120574579368327222757065982853563779318915808404471050055694948883994120243081179474750481283324256758215343998878896374154653826894426408857182158477405064642412904809530531663422480558012858509771344676751183599023375243200936992370098208929806226595692353063999885959820742167100084044183812441960562480931706550307493748432940282251311143203606373322332725565531500075016022542139247588048722003863337939449499384121606045605981564463252961261111091610227938545478862884703843326941866853615444061773920436135837304028661587974297177180506752880181157458163177327979856729546227290842574053639255055127972085242541918656810500088360562790813449992879809248467629184071864121555651001196701820887606285539066661455677747002578971827245472089772648309781995321461941757058930502972217038851972450900564357147289654030905228793924031475534679939819164919068377846310686913791566462563882629033208395784903968155620159996955420443781363848814296901871415187260911624468506443921990403161990429901462578782662924400688400993569841914522915931602878633068340650939620771337406881919562023565516762441684136373568910941047285381203087312596205518680007776108298932029933690258700704820320055493481728142791619990463618413651978865792656572963642018954477333048075777633078855055335641811561089768444309226691731888887729113647378108751606462191260779497100727925911627376844012611503801844369920678246777194957218237206471187257063698129685631172770317509863751955701184750020666170615611738948030635943335204294119065060018545758749589750174685566144847829515692040927826274335083764251382590010001744703291653658731320331138529372201395699135488268238838752240388885562778213215160393055006667206986611379627104269688171537022766664162337914418695278740084887967188998961329487097851312712436807669074981195084538248149004411457693931341210230291414261278074863664083868199146188714182738217410928100271120352840260319288565752643023375291680249847455846916971534278941558000913032070941553095793692654582914295347287845199353191564162697458125234841091830201535286512223563028389636393862341720793796265153745122697696198636287350864309875089923730064524161489616998177962560752955189585425753730492501936161503977581573211143636392094892848881418021135072250869902734344936091583842086917312048153895883176087681803007598679083868294942604740167367547409505267305841474620555750479350222435231798051599800295857465410776810281561266390868833936302139401949244334785117383891297646674147755302966962460906443798941312712454313437341666882587982059163292255637412171354473009520447872798761732178185515067241433142886232169271636600382152721897180722863266181578418381247435245025837737596128776250036520903890790425238372727183025952976171277180313400242097661801490811162163617539854985206532059317303929835858783007898571941746287421889629455468095465864007439861696348593956401330923120276434953830002153474674935258946710892689348874179403363727367879175051266307641656717095671716713767106151066867906884651969890215407588110080361271030170573010128397100136764757768141699898918167155244714255070467811045481202598674893635306075524625300879223239372162268251747625287100082702591310727508619299630974278493015894540524103152558749827504929510084178045047186050234266197690875570202470714178262471346650091538629400568698149144339472611389375625048807663823793637285943559951491469664809081300523647544466222825925963751714846572569696874640331295807680348726549122072795054868928745522440889134810755181240339311932440810516046817706096503816958995704283431305521334915338671226391996783282789076631948303175969515800877768078003493336009906821959543765903034863924762854457644976831974366589845189333616870528511989592141257541835614272883607812111409863098650160872736022259549004203426411682202959248798011529017147403405284044649088878438753766213947545548573660442357693908583936436001740161263919385915517276644647104212646735849341503777941471709205606597934731145972587886891397167572804473631582914759083471465262343656204535219159816380645898040864471357739010977853603152767481504891239200188665605215105503292293204334633756918942392549237501101935715955572178481699065707781691739818076867807365041889595002715190064148865558529502053898731068649785669978560611951891841782553442327933318923864070690862146888123963839754371388261815703106659441327002807592959474124365280048199681332040073199001016329116849779734604707285407361442399722368362621262099302428950383895010421091675640076854089136269830753428406938565454497171297147646194329378608896238542450751560329888438171472122053218115448269243273314868380053303321920416844241372328229307603367872800068717541162915863322743354824568790794227873884276601153170858936478094602393696911271763999412309222126340992606979565976144484945184433210268357989291440017572322230521494097047792308217648939818926341683232236286972299622655348681323536711104132383663775058849261233003753013180186653642239340160658541803687698948823541166328128403403962205419660952140230129085103130300378962647098288390014291928675907414515041575005282205956238774135314702910403681985581329697711422090008729011667594948210627359305700474455231855838625495707459987422262094095232653041486654404643922890954364823666254918196755268195238759574121067868353843235901138178955374554182088912385318756071581980370746793982957592752084662283420464003177303888250989627858956502777306787842302163035485406710391404434819644135588679182428712625291207794614910272156409014557796387156212702183628203782905238408097843611350447418008412317077932506116343533758345613079201720918556588989451678639757135870220259813161119577284045212399617190323193487413082779325438873459924623342980162168737121492232477425769599168978960671938014475767936420561871707627175729132850606997475494468319799468809123795431227308747879954962063870402665321187488724378307583083516228467693768452831244317438865436775483887698441986772197631360088640470717790181577953386330448070080428587098678918163286725689394615990689356674290064207727727818992306987151514910630667961781868737501593921353780203837581694984484518071187567768595516324817366847260790127118326425906768803242674927039450221507728636740774545643408130498302377127980972496006702657586372062091406814882761683573597339935948958090055696631454885284431452103446070070085553907667222938776382367748165934320963778962886699998980946350738094146744724114545483460027001489309255851117143339168324899859551803326487885382454259757184871760075167780595342075308925903779719673308375629323669126376737898849462746473852772181118606216486341762359198705386710577189864414537258758387137085707431744332778387829986409967989209391676650546241715365949577629415955432643243879426234868558208960739809026278270982465584823851406000529841883336579538149722235030466696886460692046535223870936939925078410056661835369831643606888345579586366507185384453355228801044858610880285925288029720917449177280503999818072755477258257196443804494947062551337810582206260449473723070607170778353528115870121425987343546244915570110870199193035523194485265464406091636651974312898586159359301048189839711818151936389161035704781742454222754840875297931140335901678903402082528448705155478263865440633617313685404428736839336614875408004352849084202454811387125992672843388709783483686072323674133712920698576814103778449339685428443137978609397247283922652116072417043985927081233069594350773912135123576243806414533296339659071869261004573596596359808385071894483036207211915970787494661042799877421177386857502002512245201141333340692393899626166300839355219663675797963082299733474820004804261180493414842993535025107090980408018449581284032987297227615540818082660711221328620885167307060500404991542218919207350631438831212594800746435952250962423271603173982171141627667056399221056328046392855169531533957739645400224740491492243614598618234529577418092337308769155884568464388029911199176794497461281886905008584976249327182891833448457771748312993597456835145447655140937364169265848746025813248486276159794103457304000765476295294627996898471594482926936329086664966613136569608272023481728553393162217685535787780861123078554744850637042130797330837962262442196359698515077568804854780711139902670618365905977214914911246871034859030449526448460054689231231228255172160897873434767093908388434617966991320603629936993507592590240410110629721306451796309320059628037312449492375796280120266284916143744167481485020384417719474849836940091248337181490161783787919656979942239956373675199922850404953636369446554582348838489999928620254304078197736273763203113454050592654095961454169196273779895120991610106183156621889222868106960537048695751484758144054432519249870329385869756873275916493884307358117577925038117636886709035565424692903834630801864953343251190084697095298943997170358941148937973226566312048503654620173744383549047481273621204290671482194122307258955122333984526411799066663669129670264364777265346863342172866533026803015052108108883236235022819626347505379679818251895344816845655311006200371846919342196669839588807233575961884145054393130315593937326958731834672463762329620517713137448710235945472402209497921941552080877184565433919678978818872914232584004871134550608658850148698380223744058051958063758584520706793366527660417490481519630325228238019760061948241311034352533072756782323768890645813424315363361864605517165583886564400738271467135590622405619439510192933948286617767814847712912286921097364516091008801875921743832032861089117885490711608799555488583094742835146484846801980131204008131640710887784687772669892998452898975244524809703748721667649619133248778742573092637738429797026048242442437110016311203119531656071717057930462292253243464566599938549205720360475581597930692901591175492772449728663575226746905636869490979519115157355742120834128052090920422587078840260488119803171537361520338748915051796102907814380921439480305476257906501714009593755125497682782697610627558571722319625635332312358544158250925718296101422119928738078031826791758106869420399877738873342743772924075045546453917732147164076008861341485179285059972067782888562653257957516460771653451156813519959373849827584924258065066888788082785160538342973608343760260252955395355922798666894167590954097472974443177000752702284644445218422390617211839546419671893850361261630543028408821784053319099210438081882797290013474004190552420874788081337595395989031876988792220548724217847231153351847030039351006131683207822720214348375455415533158004272456783848444858002203678713172563676692186411506623789239861683433441835593891182271586887560804724504637686340964602965267543034130217119883879560587791923131518007225578448672356587800949819397062221126147057040687901388542934499013458529440297404620513630581687689087463668405283824016586989022621389776690650865382886035832021878485439764605790831616221784550868305531035957917772056878641616082402177507621225023477929041576513047612967611724841225876622613989147791266160177099981337598216085587648753587069260770224733013292607094017164140555497442638331683239846495994720110187914425868597209774850317074004646790788438489867562731448546246650295314092615438535107456600929755985241644892931941533888491021302077051902021957278912777571385227449934947352306116548981060222731534752494337234519056891058707622802308739129155351745641590692406530649318165840197550370919493369570660723090876653442823618235479781147747224709599172187497015524824428609758113578199631129863988706193650203277235632388028149333506166917308581154243421841836446755307847121210563863098137891918734766388472094593311505908996898689711333842864350210685282224460359430392425768999265945750505123729090015868775971356250605969884883726143123052105844927747794339697642039586592192502109785004011536102174230937444150009958709115057291158586821714882349620378902973520528131137866170905358394728611222433521691793928547947964680915079649636177595137101697153221095961166351419611559985868173439917415774531309581170982636337903092601814976755622303919082033044256415689304511343466586770745767329127612902320504655367424908657083637290671747138573807156878239822687510995299494064355330793468761899028308010598152146019794602206722474385559342389480827611593111671337305445038731580109550046825741373564681247993859369741067638312570228472893181853495505601173273785187990836537879319760092443142855318865988839911525229905516611758468773376701367234949210764353697975751739514164187233524085024955450913407016222265607682027110061531133911397349402807769603622438865481811143913248057287520672277773414914371594360187806179534010483406633583789057702929656253859694268141435842195749305787972585035998401283185555903281853349251930708702858105653121506277587158054594766625551548160772560460505403160023341741267015599562569313763479457361052591829946231813570868440740230780600568851845886569795203514565035004723738704324309417259004620895606096334885114757847579130944455395183295794629244940728766201475381260949121119967591959716087687023895546434263595594733706120362951970553330640359777662707386617839737982021710503700900045164721170388654891162044086011861352184713690045087866943612471569464324814790864088405708510666821423763499225986852674904329117659711224871170843468197066253039845460373521190033254517405182457515783854718531933609283958972862433600748244452494197194032828838620040163601804859063224515845567501231246240474415280274448744544511560896009737615378476105820290072407699644536134802798073724922625864061191419196194159918366145897521975377784462044858096474557902162180750946044962140339782108477763910441221835925840961033349235964270867763965106184467050293823495351256715630877287468465595596255522762542911533252047280371051235100749495754767295762388987159119278075400192188537766903435853756799831905840560934451028818962600181475574629599418612199841717417319276000935621114063583888795732099722947260784123924548466475179763401562413577337081293098410355949067655302731922272789317474387643729440596595799403956314999081519006071903303583793812054479328392555104728021849369704286102319752171715698500819355185370075348895818805078237741845190835944139283226327873035856592696569920929125913807217556805682049762644910341326380327243945982862836740552765023654705683139480289631921563434643861940782521909209974548689765870209296379248006795810259725047008681673035319456815814060758644886557977088948699025347292947194114648045187277546568381278950225539133141384221354357706797894056126455076516042152633642373576680626164288682271363339904343528464533279160585744370251432427084257938506466354698353422231651843399779187920988069598646763251194067192259519733506244401980431263620014326445762622594276695621945493469487640045789843238687839501331913792212420370058345154449998037008756635869418722793610222071882042844736872761575132640240676066845034284672823887459138610244151255939166007784945040557213745705612352084157239011071126009747554169043637620514320994447058293199343357604097550508697360011774259450624940270840938403612923476152373983268340276274808682120747993732301198008225505092502897338771548602052201863344871694681675246087141610993929128995719823135606252079925569449786415861652514666386011811175440265988051437201603965831322446884053653051192584169751198518549311681386075292030750749896148242787754721430715423811226004169283895102931963327689691560931960436110466663362131887746378509336092182644815330865578429969219899710240697556591011110781235974679817503654998483307718498176823337921180351057148594566516095555219845385337201547267585813999641736775550196404743488017349598134144619980630383797178540689268208496870048937908923141283317617070367831374176716150420275873622061978518322215092381302974026599375430370669356500858028442646092395820587320752401489354868370204731357294659074992635046251469101083960357439242280533542371291563364394620346449257119191186741695786816648897556310964580476377877452631495834403582462464829497922232432006969633034234528996702400508295443522220698311353604758903919683620786349210852393230674427704471478680918236301239090682791535729665374115279509865172806873982415408483975029190556762842982353047565184171887125000253477162761730417254379924142541518106366480415630496070539032921685820813898585436612782815025239707243533408890885805156032503389700936062594943176311870608468577015652474708578862965616747564707156396782649365276120542571298564685519256374599272439444192921824411654651904938107533936227225032966747881946424030632038250373427098183079180164783253067451857664903415536751295057938845404326207453748623013288403726088448433200784568602740203738755379674184710694799331243362254269336374883840395736729367193641268033419844039824486390777129565195895946045249246450826890030571424994263197330940871712888766170073772898254921880606754209438043233662994636293852084521299105364624442736582451558267443240779229653784229691257488695205667794875233755783153208440730825148246911835569477958169123073712743159868167154599531775889166421417715314043008219583058223551161299942754790697700880598920051213387301517927511653995870263443672090066077998639522213142651806093920848557485991194477673620191163245230538842812931159398378689189473646380148499894396229966094282677150823471632468685553725375102055652389757195532952147609547754012057505051683700361851440883642663803570743915446438514764039379812272625938587199545470276886824331598081072692208557861962614661960944587804486009684371733061265364494727464409780165559017078561217434740669450916352656895942094275268728452306080066987030044745817484286722142307981755177852320840708992026161816668082010279084570815804569956225932958833457459098190617213222331596573233821755424852593904329694456184574081495634750135934891037346166342387787028579228944726784066569952717871359040151269619601418782609991601489141696793870163404465188119481404919244163419671854950677036795352563017981135579959278374229535729073728344397740018135005339521139411169885000064604987269942767521404996305671461704626130655134501928194374188490937119043686285902299501435186908082252114821725319270033978924009811664721942194083775513539902521217582762184190058139215433238196322331311904308381758358228722323725967927289556921987064420821008772125087998603703755053629005390897959015986428547060807893399456837357875348267458282937302122656043302155104618601553535619579311012634808751025202439018145383029975363688862879576091381658144761326152560335222916324417971178835823713366436428291399471824748323934264240635570194245188150778376532873383547893140340021992871799861334810370129756575492427309820066595635381722508022541471080060076974841559438769240788995651789415317043380483506945091285462756611229486023828581069737098758577121855662496380059942694829671553877771918421418508990056345084226071021209795117350640372662649906970394511458373474902315462490476620524273994310992643723857834911369116780799615489304282193466530322122195308988625912510165703410681456168737383158931327790473759030466701456551707557131521819506876444170107660353951741626841489090114817937801040683358713939928688777245831235225114231791780671758553632946701346789071349958725692932545705525573328904069964141832631443955598181135460698359781100889201925486693633191718665467719820890514327268435342051732795155057597191987489782319602526632467249371044480677922867372150917851418034725749886272074704582743060636335259582752196951691470117303341302216930690574794212336537656927534476607625167047158868857706336452635644430456937393789258158077249408519112943447508706439453569890604856517489642626229407062136565273769794056637232417056301437546131400322736477663140456439637869892041498191984093778863751756046589520861276242325149806016311662746649536412799368031128070047477761688431072764499586750653383767970427129272991376074523412482181151036081279189980361739241522669454234665933079851424385315373165290837530092419292730105794753478816774029932474226434922580612482193225705104701758204027217270755081609280586934344755666501311721723585783898831877800795125605544801423988901864938143486374024284637231833107723527525294246422549851422871122607660587333950405455551697071162731125265425535142747192599258402830159654106619775670579147206332139927066241756033244470332307648056077678822753362819916283827286088605799784597853819029808020710596983514954768667958034824470369831190282797802360780934369575719641913052148796317557007400641873646627816747192458939493171500435360150435923346849141078517805725774037456644895223479064354675012881217283111197452311824905351461700152670027973846189574460365543285701408817423384934149704041784122231053818600011243099606127213730246760110345922044780690776402182904269107329548744179385013970033150947748008864359709182671522826531204786455871556358265492064213895248752583355362717884033072023315112373419083524931315839838570141072066472637367019106082787150056657699804503828267346024913783326219632198061948733943800563198916240821318192555837929548537582446223233808258549970176464381798866027869303438506636475158166497308267520798031636472028584353819991323835123748015036412435154443909922610787136919745811216074976255725959472159493560267252998642997648719884985008578448693065172396343287560161943023516888713850278552152243846999110483057501233654972208474331175410689342143979237667341606914593301176408259798367741605347376140884856231258324488661720703481598877100006993254427883897794094346633808901573353646066646839732765187834213947856981093123296220328510227497197637384174851820912220999895360628516010105974449773899915344612188984083769192548619109156261104901338831215711046112380519058979513079070888330549994379204857570200540195041417040166996285520360583057914127139488930957167199378832396782741315822318452157577436458447393830611332912816122620584413843013478237075982337990038647986499951069922294407483543833063696813803307386090827802750922534636164916132057112894330881314021427556396825411580264099582460820571922702387573231193364696472384892232393918662016211941306881396885370880484908312995728600282270445974923216197811238133290354502061154004673210909009253730658211577317913328461161987130371082487501014464044014100114454756769923788605936524107865083551312467869939382807250070466993739723816479617711661263107569039079499638781591632177843026813768603008623228530196232802447176030003608840454351859587285363811106541382321267844068136368538593076977159197910412799072958383266106249555271760982650572858884159658615111435244871050982625827572639678526916354859085106000506703437983209801048923875173745298987672974235798764302106515478411161059357219502378308256509615702874914436860256773192383513896084137840804919306338239333631636027488418952135015964957935282970035191476836064519916952409174982698957734944612168373706597384173979328702179469606465868189170398750495831512598603839941516076637016185221836993138684372478357372700502022474875931352128922068750916493552763388709723777705664756759940357834351267154288963821182647596039263277786505209981791422530904823003618966744928708072065307408941933515798012745204737518413537038185430641141903851281171800627032245848094975974739954570777533291129159430031440055974395264857585866938234365400188386999396850567722675087249621015144460040791607935176395559423747285270939420753776593027033233283812367838941906918835065588485390914184332289845239561247656913069760454626494458827460326566286517316746310632363437697070826517634402493916894836697965890110850054471104640107474694343594059108241605473798762007854244715104728405798730483272965054974631839192058730634182976188222729777329763791504947051052920893288049891409838787468276933289976273690486704461369151130630408264757537901327612796794376077918256612834409668510207617617901546995728546713065280332377218813794018409312991496076851342954900651173683868132726398874413567545033596852789368088390326154261054973624825846583285886702438255806469838059042121077689748691138404074520186185810384338882255295421335682753237231315319451858346687416990119319280305138984540856087820493288152385560224804709798854774131957254082841751155231858193739812966456433959031386980925347608313339086483341439377213734512663886913396584563869148969023113594766441597356723538051464248984930499971074942241961157888544102306220537846408910754742521136037327156445997129141435667375424635650715055891766281557499822752682728421538997743024140363265686029218199636132608721946459096176483578095706248852989235576414755453450265311711534693042270288258936165890428008125751168511342736106212961368306398730745979880798384690201024990931002148335754117221511360791437807832825637238552528356723419676678096486042828333737030254965459777526397051461726311370636517228834202580230989853081238539873407641287180484466738765096742977223527402602080358146389672656267079496673232850745176838963130671819573393672959365752141110184469405876955718019465289120471272429799473106872786336994292744767573465253011462045296986122192031368402593121629537105397722445147943886218406403738771465836207537028549041306242079913090881573001416728658940966606125763675602895671623108325903515156288702155140655504964053305031059502666872256535655276092070413455355148068330853845099966579311194280019947732947007306407350680484958855026522405225460284758568905764478816984407295494854691589973030709028298485916392743681576347378934389076380207464981019695607632020901452739094732232152598745016689463960298937434985019131049591608124079138482097237838832380044060261740238735770621532212752446131499715008900210437649989596803395088041562027838448813002019533940857024828974674451874079454034553482372640486012831401670051121794747404264959747628939247527922616903531020350096557779311282843222056537733575974901938791042239161138774078343784280116326609345077506281408492551428721750825604202986579494479731468368006351876471793309353040325924003959240117210578948858748341008678084908333905668735796094426638488466581601619886843940379894120992777490596296239076675020844670079532683413309731600711004677281061473775556337514584686623569247988813537392670616617713323758473177661977081565320778022730398671452554342683724314949986287555302827242862699441929614820046333778165652326609604242710430176330042405221018157652818469318695410948387111869466082319385494104040783042449840399479021910959359555642069176227493728399632548662095902429918629762674319336107692229129576896157134188302679011078438752199725441273934955054965272447807692960397813207435468858530427637243592220035700559610117845040803975934284118282803933505523743304306820981381954693407725533788529533961334805868747390681502317903264122798696463970691793275930673254659290175676619739798570713889815908638902824259758437560015988456010492944953342895922267727198227018382249387601615894647082452433961843292463535508173563372337747696349316351874575080217606403677801584040985060483701369781985283782128076657612536463078759266386354041400080581028937622831324049594608605430884428945058831837771154505796024528576760700768574399758818203143245489638476015493544079192583334164554399034425382097328290379028227552550223485127875337670245386038079716769644361618246487276992336566555658528134944754582787891766739078733073900987804468156430346935079295748729042170085935965504115812181588811991457092381470962308295431387635587857935690177096338982231026413116498951176128093067405603181542323051080450526131059610819584106644115684541336877274835324210636993571126492691741315223671019376837794765049032107182894106033085196557968152740948223859223795137694191131787272053825917038806198480119792283116711205859896247642141940696887029131926459569893389982836924316163668720721565371037990608342185127260422826058192058348036926849756055858187791603361128772668280472082997623433379391609689163030872376575241357178675595572153591358987613228225708802172092123850928542520685067331116514656376809499955149808056968509169137295784804970071912952270736967467903324870779828732452788207500198050936073736117714707053257621158566796054340920663027122487069496866816435507015751261646153340682434478603054638238566182140863873494206184991582417127778468341182013988761960883008336708614336292953863738274709273353083920878623882283275562693477438270957147208064126876298959580997310297270555181094160797143374779540796046418367134373975013325421365658351010894639071967544807402234850434011274513144439114816880092178292332514144758505978991584478508537676455714561793579754553749283676894651753656091044934856249396824791686213192024550354361434754071761132178948036123673054185716437309543496439629293373690864621713828916149311558168615519057041524851112110469459739146947731923344242667709548303348929905256712036316190680249516399127539234896933914776791407394297632737487001066219822471635730675681038591253230027929282240470261953127598398386480190710384374016697177951509808907072284729390914913450220031661039788341267797698119853292389356748262386759596648917747669160981127201649424210582469491530050907023610151804896979155507620840856238054364173080608253827084674605391329797113338192044657504557123634370003973409426895664201181039242379869949742324274709974965521605750815807269879978590470621872000048752318599327750753222891106383685597965669568532141555719821094104853020819020230881290056899053345934352195350179408163459694724639991873237709935874142792851275650960605653986243249196900169345292288535575395259234708048254997947027187285498264217178514306727559864875189775650567174122427084530999693642044858778389771388801697713932093174404889625777501125150183730739786655646155709341906294040733452368608518703902487871033671318256228699334636081547257272551544295317982450468522629230342763090905605638084096618883288579736658983795472934426476195828791479647873529089798038386799597971439818433519532077834339506449283859584563596399292077201565672194020981301938840450880764816839101329795306821782065745915534971333038382848987676427033857805598925462530695389231775488475868730351383691482043743059083556542138618897620889341250876852177799985033513826403188508222539371142751015042223317446212528149941461638779334619666129597808572723237211216468570305966843790805685818265341539460703182529886791770141220348089064162926903515059239860851393749533810170058535234284344060836455209707209345205938461336519694787118883634949645599796145354990831388778102142022743907663322697107328579801754132191710018229316990617354002083498057737912860416661214589782911794640231957229619865111332332310280044291374714621591686844089360293756049868647269622880649003232100504163968210007694865267791258081176818840610042024451594842124873862451027472702462025462924001370924091268653412519536673811643636149318733228770727342482574028936662765670502475836978548792770822046579333883335794933436853373582117597351939219766479378158019433722539854781545264011887542264393271155023222013284047731721383304377460825394139173183724073303529063409950217070602111534120501534408889986574372086140379972581751139600579283162082567724218918518147550497199357325124357612396874552279941003809153771169624376575833163369338257687579990606950784809531220717553629289652780212016484555234394870944440585563932170779813685230641502457835001942704947837265830522506577382221981194470049746539111868492790358715492925529563940338945985847742271535640476126368631803744803796958932514233571822572613159519713048136716784124551421008458773269984336260159331223288043022920113305323562223656844968276282179758930411917983363758530383559315271754165740042117558594246216736470922792550465279129530637595794776118140827148275490660760307749654875281109487846314603947012602741086006675878215135537820545474241642080782484526428219471634033514177169664291278868929882673229431623673127121822471687512135462311258583408422522379313671523319103401564720737540156621139713379237346707503319794687133103384725593506499569152945172454488249758886382956026320435420472952829982137967552871417821710996742183338585328437864346394595056346005513591006407051829131820136721913684243406892189059594317461189718233347137728281968549975827928007618856516467699607273365738697138667651152598388210339849232006719081447018635147369303990952479386473373999492311180975719881887732890371454413684410835224869981300786192618207850940044094619365651864302971140646113084490233709522559924617141336672772971061887624482040923803745994280709945912211270133461146745184036815345491537036140773071606219747449049940843112818515061523113711164858254781014428263558962528575543716365209652210489727551690159036221357259913285084444543137701295777648447686008666263253447544059467631649343323137690987501730840847006669139439133098860973296580740824507791232451823987342837452706269619597879202881795039531698855695798992181105247105580041414944524904553235243702329884246242996728690068760160370194723330261461134381535445838011623373264316242564235810174948521302671318043870795802743941889707906259448900874553911798468024543054688337455569541978924825694007528524161581647299343528625274308760370756994543533254507762072347038742078259424560735439335835353754146534816936850785892734317695470810403277057380596412930163702104511254146960388367143333748177743953626517691586833607358708329461271394810235016931529907063697639842178995746961410683371692486695919579971469740881363417869365840784525505419442545247425733958849374576959552943342051109173998098694015646804569264087426979292860905974528465590065735231688143117878800786359911861493588962269922649297582791036686597944240220092720161112082128111341660761297725230542872660304646708533177249845693832017793936362357937785145485025937427245403936050180097449333646382557249948411493050499550535152185337395459429589546227772117638210914419213101585025265224802892353043294463412452795087605525865641374418293449294265893821108960032664612436701255209235738458758208974536674403527025902096387791206245131116453993637036607713314948941588351636649416740532511612176444109762960613497200480677874086440050760667742992585649990455980635930412582298651415027551518643847294518537806967963412602973577305020721463752800366317988221549307867548631750357640285511150788879098758714756699876406946393635905230866547519044182870645236295147328899241210339504455836961328881238367514576534781870606717342517332370008149326623221619908864510287148891595306934000969034223807541981354747871107703466595431373376438549138351974614235968682512462098052518467087346506455513714968568932737986156284848492026667235564768712553144571040859229721611254861891466678013245481827583329257345727445393101400038536148015973544832001293376410773589681792129507587189965206687910253897432442357337807980076524364810790291578811757588319824409207561541797446267497772540436955790108704603616994554283269993959287680526260844334633993202067463940455133671768692736727744310574568903702735419270181110253024901938899271592350010104231046631091716281700436555523466389752850584251843923076323137612005563564603197907582710876142662370229839918173311687528612610182614105109410877247353960168979990557658643644839866893201916247329045495872150338383432889552342104764469827514852946809058896366376297395961400764146281351003521386691728181180205083110828688612750051940054211231695942911539022106102258969044555607238066595660308908661122158042492410141798220297650976532703940201624189020059025643002389292994001158194389123637872884680110959651853119237087594055416010038038213627557392613671601816631079467703500957800132790590642040154954862408933865208351611902234539459379213583846266231457312793705721433431915725908539336358332182600278360140255162465832850401193678985074019380782672561981698053182455524613748582712799655974120894073039877771747253617876508336542016600892748973080666931236869751342491951397215909642451062901208352191234631966666988514270136675712398585933616752107697247785728072628205606150930273283427355302666313012813652851710775963024192754531186260903429052052148352639969935256058216548717938362737940410096275933642615750714858563395270441121571560422014837837434175073012638515266009625322302707956728147512073784983943355491552674156785740653584590335183181608261454031761109416512035776760714476849711943803702063329405464558321285788593689304075932487671359674599406266546823070890085759380526119375753249964938195278031726633955308273812455278159817590600518795448596955542325467807569558383524334694456667441019182902452304387813894914466301482313506100003798779105692577665242034754552919065413803021121150331361378499817852704439850807593070104475153152311061263101453820717393243982334990925057541085434127834398272238216757850439379738029148590355634558681895772982072452595142678349731888277540507502429793201102570876708456486552172345926236990671581511082499697450876192676434795399513013523680025397282196485370263848717581439315732164026292187978118155105082727871343637744203270941019865154225193393351740286247028474579050313499658846754971963658686598956453829516746062245193877999203247007938458062385698072511349924318382728973842535586330479644391639552981872318448711225531607221320154373819053659470650789506463499797641725357048992331146730483105715493166120067299920502073071912935960003554433656614937315269064658614902092566575133043881747936313174084591199013461908829983713784488240621073671781424204815833056015703110275059193767959816494439356999207078612187085671002632925106816382615666269079168557671978026351574439537559032335654911198783612068091806258265531409116738656682459805027077196389749730401235962177686587813714266145885961651798735705481186913865866062309350272978101043577067505347119227718468271185533523123817780912833599630245935741860276512484088852391933374898639451276554184005487272233864480299078666472263377489682050695630596175886431530242069810117055325591067977781300138571909319295722223912886347169130907751700032576483526585953618879759724473008976992442581984574090198127455982264840230402912653245706127219373052006796563212444101629935857400683294856925689986665083379847122692127710532340431849356039605530028782414509780471506454847740025606610319584318899065189504889071683653148057575338547749610100260426472939205937570180781017188105295965109241858080315478675052074899924158480954816789689612840782587138130948122890137725065453621241119095457889173053971733901142829848753910731661907949411161785502476657637023591103174617196284705412100063843774543530858658746660417254835726273105008141465444718520277390430258564282053892683944357822620506878590049218352230761680282252588243024549329004249839174075640177957787649627831648204665005238258545072928359918912419175334475654509781983309795606340526870842138160097334813501911940560924405733786852709645578111762404545890888875349820884497837031988325588230021218337764863807839052410448158386656843000046819519931750871192838099551672095062245885582533604593630805451510539942337808726724017331967327088967640122725812545953507507217402511890164224035974512186920181996030791225592579698400273078830998264026273174454806358193542825927268508694714461819904813207363127085723332316081375080258594799516537549533713864414701266420752933423788243472571569699859208074790110400472868048635389870813782527870603493461112078307902874500432550161041964677576740096219480453478012795797252171352240675394436304863174445694025434662705288325972760880102890941235151240939641289121403944732444531842870492552248313995970348708429346599279278112663211220442824575617530778729293740376693961481323304572083846325459716574657389437110096525356259532385859789488773921044345899289061787465982674746933420514734171154742959560190411951880661101105452514336486310621207879559121013335277749154310470755609080469769973916676556907820548465614256183343287233878133154902455036533361451432262948952872225895983321452189529142505573139099755950995189086364840774949549942955512865014934923070330272416171462583940253220137108966976157638538650218893858785566948417573638483398832701556515489944088558794870942941308311395981730293103596554119435484875101018568879688693073560872604519206940137275948773533170168375769815706433617964258095504001991238956734360198800166200427075758028282388522296099077238955998866208223743991787907323676956995193895810950015684431401692691393055323849748432894604960823966970444150405686982295939190071036192457624494436017683379007115257265076486359384792610836050830731101073422693532195959516219642479374085305199177457316053777919804409588213007516576010309483502343345643841314201917949324890599480249064755947623281232229309046441967142882958994097509454477643466800392600319345181474241564866643746768961083731089394277861053100986090111540162436124759186819128972829597550674044935860407068322987899926600383412615427574011076238050753929514610981250095435499956353273369217796048417790128140007417476103349138537840376025486734078963401888894958354199399716367453387886415786525420493167819720873359485181311689203006537913419648192644743614630761188585291117032968493907048376462498524863475931281189369487421241470678145890313785625663174154300528472198758169581683530990332202769699246828191849977488760967678624203031128293536831371503102135148154699489967818343531725958048911510813427849672975115275941002746840491617433087472226436904036556109471641958842706709368360602044685523462276391408728693723135528551894090626295325151223229368501105170655492415418381868932331021793137231632354075601099127110774159745142553885301991176195681583271537368252345969170752288812248982176785779235675159340254283796862609033888556741816294092648318539441949519395225613676305659076065887678931816628014871179547672122207960104753755026426723861780249238010497164786581400028229333506821894940313330586593496241900400604659982940557007823433776854765702287836085328947302068815541005264143872316273161381226395499288175268808568348916456825896079970363540388171242318644892878559922951867012596370215424945747861381571953003003021836270039153074380490189625030926285970208531848171411322066490488599927070333439443196651802523943103050537059887268214397028911403770897231656271448902317719796927239398642500463792691360270435526166655935958399056449357659412799619629631552407172152872617446572863935215169369426297852882377318859199528749738415588658256687160188014016258901880311689221082119681790806904519151949778580878983812767904504495575959298843083640490452252636724456994147490374542728289280184497901010037845662604911987654619029136769191231574504606525898161419275285201794593369285382335243241732994137570017740871623183113015473834812419034941483020627308915012903095494103517042406574291414092872866166233662483310980352699019480529023533395297163050768544368383137842055698169740581756941827757205822252042574855975258594150084259909232358449859729691731088289887097007905267285334370138333011990014393705080748801078430822846094858500033255264816086841338045727020201970355608575808604432982160868986183019116717317066763726246227023743322806473612447342384688825531389799960118403820832203839679381526416972443895825688661859061129187818700215858168034056530776540854873303621357219132906337098515373723302698198349575623200929432361491907741295854575196166889739960406617002873285572493274131976894754130921497587885925781429416992854459279425572415740694293011390649495683535099586875519142077185649328728320129547558901461886771915671153597322198217987447932916138039997595573776004597261736534065504893800255970236699668531045880018644610472244416922847793963901397319870062410079819275616601509808035622619122233371783095737584436764383435509762021297090698858575757821271930960370038760556273614693986119094084688966276786552705883962211179666297758098719037200097595091973745568339990702253275993496268718244628334914618193538061502481351968193402060898756329447511505830461448628539524741187889132955404177586964929789643669561823915785481318722556649126966166952304818951926565652037971532061640185837784655298901383790500215138195819453453218445542487836842051422339979596837827394281638006488460306883333864107992060571359777442027362809375775579352181862350931036408320293488962102755169911314123600931073753521185213709201688311371756650965531608344249319821195166533440959080247398364807229547172229033342043165792519780794944320431597672324280548617897774421149328511741077344064883185454833805389016815393297393045947519670298071643834684463871371950484247664548126429277873540914315596209524395900862938859406160224297405888090320287228782145088759009085069760684626087783892466204974414470921856143052580777351486490430495781213373661676620245568798426590730980676257607191091356203714624708098421648768126143876373507598041611362565596918148312646359552751536558830768828452039583432906328374186016128934922273194300997476133027066301449883589969216303297286872281917106552147324996851178862328701290486410048132574337051431335351942135880193068084134718795974469146788161340905947803627476283061622606362192256651670518489538436705540368604553752794449754808148170067761043136825657435954192531949198423127173017591134506222618912312757600861505161839630256898338154517474201725999819455618513123858811095915230939822081645163165623917668332530489033398525977834100310449348496938777974422724449843109764263510331921391885843202076670038366427289063166542996451233633094489988795715319238165315228647285509589071370505828407119277772312301438044304311073853600174317789744692167389610884583068504973614475264578199021344303096218813572894383759765616922674874640078046013395990578063189860211551006874803944926759572727443933385198764387276274726237302614100329369114944484570510685951735968942251799957215051144037119732856455880930948331150748903659510419310293763827233765303431545726464125352126967199720820063081300689872519218651928963518489500534221862857749626823683923861130403445891616307472864995526129458709521472969673413477540732440121593851478379418356650149316664812007277876740673946178812748895740517725418454611324289360257258070216544820811745319239111518493147211401781699909136452792382232505951923847413449952304683588444241812366256297536800915328272727083602496844007592675177355208065183997571837381257612857319315319934970545914744772351726963564005571018371697226250426135796034021975416964323433024913905475189667680372064961052966826119528610125799846750417227178668257985019666742610710778941978878129631742637975303695008605510852405530094128822047935386010795257505072067425913293794234700510587609480715527826615011477866588817879536207907894559124938608300736579366656156732904562187473571136950155649528181862861584665214805952500114028193237594537529801922311929415610238610225221448543642878261822866101922099721948285471675528091220255426239150563405455747876659565986892868445388625246004451525174342098881705328795932699278715251151692948673240173387860339421824868804648477836970144725744656792555119182853338934639348344037043907504937175828340766908335891108029660755549376531880692686257594562365330624088670540888310389814075809798210882458119959542082405753579535555748451689523681689299223636055752189213477439995080037329249521727346502776062337423571005711650041829895453244851514993899951134494891133082407695155053597307348209586993420476833681942021384116624350931610988164694056202655979587038218612341020037503816860721951400902066901672773826721051142681341409087663189698961442669749037391393663044459324777181718231994055097000336940640595854892680391418398322634076578729442357854964417948680767269412862659041040935820849743061873813281340015823809871668348903457124999358513165318350391271891985601172195057180929088290772687672164837408879513402118828907148970506419611844692672888434596504642132776111614935858670079451109910367105178549699816545595630815261994522188263826654751466326495807225900741980363711151515536067055480906811915991445372920991254782466428441964884915898043986662868412989376407518230495135727038396657967326109857387075113709543525739282602628914038717313746818470314344661227455459258191179848795574562562224203638320531110711009601031781171450824013888264415443415857919837944654438831418162198838701449962048312304360702304648991301904516715400346201606648365116237731713153852397580463227099456640914486043676379296755371799399591197414871940838619289276051611267821208190734083425047001970768043924224891212133399624412453570353866744140230311727860166703414103730650876666878589139246215052828217716302640770669149714232318487968241479663839382615720806892510161416372189995141563847664100870035801130456284357147551505936937881601876397509758426990322773104957455733830505413011392134747383059959437577792732536129365583533098023558364921735694360711485761633563826942143557122768267804703258072926623091603828245856797511023763527643352047655477171645026195521971866811956353562461290632274136737242327221879180757955927542779151915320948033947484807490552912612397186392692805349490372792319065104850461534625647787797755029100527350369227427337609463776426213809443142918378165461394301120445378673151468091242794477700717266739980442654195367645936940161513957526175503837362051187423048657104532948840277517536260989865786369835869643493322091463496196149646466457595400711684684630556342880186644211506278385008974293814133027613457539689866613472829732204532836827331934745526465982504297535575857928725472369496725245488942375189395101637586328931583400986583905619903525463420337102791756866784929097935061723786713329997984068344146747044618099604593317568137005558057242882871974777991794523954522500242218219866727427760555219384885464564628663095554269357954611286321255943112793431110547808065175112131781730608794875527856262410329051262217131426763117106520132092004713756291663443371036275677585837463749147772458645760375314350152335729452777376028934621607642088277731272480382878673909522372112255296348204883830797247688715526319286286729371851519546227325812762395379589142902037647075097742535453264822180933065010286691787918897535081209311410611062439977476001764682743117683035958343156346822970510218051672789024667272315673821470851699752925657016714523205061138273059352872770525820519154636300808778388092127302513424145955186608733777823406349495205963225003690721970477515824686535952634703692945344628491681499533130214069002207179973000284309655782150716769680865273330507400555118382683356590749359213210411152670108948173817644242366237571501738672653042847139999020677451869112972372137871622439247260631116428091290807340756724161408145939440108332206921569727987430351419046533878169977067200262178137263301399740137857051828613495604454167304566894720410377269274972304734396012855502666091576327397119648348292053218702058656461366023982004053384333584907522466541493127322182301629585102686447733264560844609844293140604784183163876424759676204712237509097875364911395140062811033621683228156834114653107955866507710803969010792110680686729133649278353541254795842992094343272271702424182913364979922759356773293860421335877417473900943692500091604374413069917712355063260099216544099265497785982717097633221079011135669899331933450986755731346098252382324569290046297513583409456191543598012840033072045652366831478091792839923052356271382002752209748957346521139165641321878716111859948132671900330815218695000624807388114962557879188946232978785775364674297458699502472180779378299373159078102478304359156595556472690332497107507647528429582419077873556140513221671199299420427417674012941162426630327421145019443452667290164336608386460679694829016893309791941999125029856158334328518441939534694714138996269505071682360163442849436883898959795497189357811104789199049016656206182853879698623147455117478736726076312948521141571144708673785774213110043515490460649614632147157852099858715203570627896169468965493544009788132783909197062776095592404373257703893193333381080925912194209839694490630486231927666200271075374180113358725200746945823831199551295329761899260363628604555413192598022683321451786571605498708956879341584118461357280362227073194050999486550120450999960549308957361757321348268293817579150724718709793141894044206826622470085881953846126801387441761838239643995959588458345242698234628462094572656904445230213701595603438222893793964825551207825456712072539943057759605497297046508430279838716117239980484494020501278137075132199850368212697876576759509559991126093901452073110817732399794925097471194697653053021814602669947518407769984152380629496115826522409755436669038293302518165632554188909203986775418943521831331795321426202579564005634695953839762823170920850297755068239893059622610400539227698577986949045843456200848830510094511515520196630027624579902167632527199196005238516884162248751249781599271999884797914328612507383144906464402658140909564124329926125395223836577259436825817510524585326631397466900828751810101214290910532876334107383842054462268803629885114344748504603351001707849196448267271112987369814904941865465549870498266879980810997623625202534812583836825720739193407165121059437291143473358528093017166493873468827479197792213013382193138590895926936807087325255089720664291594145816280878571469093903172924927776197096893859519141513311654372990323907288771581866518604401951823288777797089683125807904167934179066899158698858525666794724151082653810160205209524411278676620216778510947385607901830439981157716591146969726616292306776519901464556637982552405912907614053436998087292303640791718758721404968694916596365075312359513956318938438969690633444583819457649829294006711446585875905000435027011015210242519495071797308182173489169823582812127547087736883541802123132006066971738935340720037108135781017905817615232642432165994811761595978603235732676695158948904500626897710649134398876656193136554450444431040381046159989435292515238434445910213130373123866558257078410297097073430245384330426249848188791216492847835623292436875885987719098503519675000077015979078247225841892250066451413465424685060902949067097414535627666561333419015103464662629201784610459553056192204443728165602974688439791996398537162598425199878090027349373801464557609219764773189606082694607394926353886297115771352914784464375519492046371686393549232502058872437922703824593044059720806698678420742254708073387454771107072346641853868289473749476766223746768646711724115649427457752328802786054256571232066386755615997843082169816316264518342852761147633093209027290205001832035687876493067491026656519787129859688713625865262088977640263717965745299368622464353496962781806766921838360453485340076434050297477159446948078953052253332628949654289071999110597233180389971183852857595931318197808613639256846693032311503320114927782938105891170042972889148963902763631236571030272749679558873540296894172698156212332589705889904041104415549457236700072313124638695763647772522439629017565527397783665453331491532503688770341960196824963918493237061318218875318810046828041041265172226717158275325509071962698010917800345279992244206313237542246294846401119409347693198677022723172263864823765220575879672971281067951304211604427333065795550333243913602534004891309567926698010942729450108373166681872510455956016165038036143142334689221808880988580980455281006624556619565133189549777817416444225965144170884791189903477177512428890353438513253565279021682103510523271654248463168189061744632414686369993854100580555334878342443901062573835656872034910257129355361665818489919947152325239778888449197765988141565129416975934700931736008148589392573820021629511674194051322288988025725287647087873150461311225929990239759737135362482345669393635975219807261411193803151464169450179610380488804132580791162627906666901693941757244380905113540712866670480667661827915788784400672328441002564757687614159495000287501814791636398490872702006152220848098633646523677143669304574671138595522139613701265707432642581328044932605624072840231761532220200836727434465272702767430226525247918199543249201172613648625552021647621816023913099802632805340023371124379593723522325544663852656009975597593107141965268690857278877689065587351197406499314124233768781417175096184466981558547807354861874511721017496299962954557719383384002730280914827018848085541055553095665291273861120553574711615328547668728620272030382561182568433977682434402473494973251868374601286390070338164433104888433012485392972976494816257286100286357292097220061204900468788395372694820194442952286056750200636359423471466374310339254899573580958993432356915146157224463590024046129518048582233944971473182123307883026536393620915647644762465928850599719663594411666831733803647789435404913100093296363308787627797549829396327785061554266913897896426528039388923066950239662544489890189275088016321666586415743819575407320445260538528495287250921686186491584525453101395752867640793606752224146655550966099006836236567554238027771309709965488432272745575994152474420143107716644949240311021719127622820006589448782967915412031190487992909482378703778053761066821960661465782814849390000867261751349752762442853713208842451301514781361588456700158296410624596223451563284951177696220784465000931541980019413236076616221432489377538886375254569050719616932220953720412973018285812299968667639954597417629428673319092681809475779624126735011123924848379764239481006321153989200745541552912995796800776051334188358743678279608663111585230872884134592496213682545231542972884263676302322422319124191222203447851734145288364934187064579763171021479029620333949638262761406135991734313932988069464758408089026365657984707595350132568754121840782165016337933001092977098486831645048329093566683668903816155388428810837263656899601201106037324964291159288685110695539121868305165962651569372934655888506104258656504757638489645162176551579074720324804088423609098332712557948284322236351602700516359587172550750645962007753123606640873365359370195581484170534130070161831767512900215277934248478490698350147256423427380812949927502883842866498277728345315285930155808255525784435511755452214459115365185809667079341891307905418927663567013890998065037317688652954399788958150523569206515691209083950258096312142234392526391660185883888720185205800528295630182511706709436249652048264856860502239392540854370750429619618464128060578029101018628347493345485449472217159022725090262904781608451707660414239457927310120852782743284564614017693518428208882639920218063449048178401635880915022793389959157868089302398679680140621339039263565319695571579506778290071224463875418576692138164703333104494948673188627499350637865493807714441823244894315019411850932064833248911826987218598186571070036778388820066415175867363413542389721750942877854909784799352674861806524284078797595536484758743874853320155807834343891040485850673436322811525428066662858543083005071730526671417323067509461177864190157710876189614462021503148096204895044537938413007664914465138529143598404374399791545076282567749373283650204838469646892581648503096653955508173723023404751478489403857898366802818241496896415457212009667863276828228455717718979473628181408899633709248682229957679033163340415797123623790434749772261356361935173905798160789691023148425444883219300665322311213172472068972393937333790353290877473989044363750785211181836311586832118858843348490200362179486167090415858633257405306888775142173836138656210003908497496492099297808614088653667784152674678132078054911360321123518544797972134483505430027827643237558282475983968334708107147681225225945029768891771883427860787864176363129339499309067093292554636110615397263697616745470582436840630864149946969605432985879797238505880606267918052157436316676989626865094156872387003966881310878819919831189909167223901709598679239237511671108934101405058655676591342529765696232804226798788840903971822072518651651512630293864619729572861244160560726053903885452953671893549981632768502512338815397721980299941814752145292181369873374861724703715813010125949326684400754775544680141913175208502448432920410950170291062315408093417788801984807232118757460651079089406649515206076106489293234527037086872007194694141301095704787661746113732458791133223001855226280347752478847338175971383579923804223056394139110198250785503207268200128159125150619161292031502349835318884109396963271329178679368600071953507240087936701092408297748898233007945697965505154146251972829609215119279569472128888208206571327021251995535759034666524555244583975838664981880457168918685791796126488091588646505118812419297693823581788739164825432803992106717211677060476462400019815736083337099157184128985478559051589439606911524804831251521613945080034352635899091853610200227301420581638812820612522164032499380347133238343737932292694833611462314813468531112134556380608153597746447903577491754179309626450081768232139569191415200015525931507089946151395657992427551873192710569360277442701322319321155901428131463343894760889893618209412209100887336199970606672153351703892881612047413251443431253319604921634656441415492273070218942192979094474104273316929947890617944964077377500672618967581717908148955157452661446514008258781409611272298594028252853252355658621488424549161389762722418313386345180421961097893509916655625439191677553485175601404763588385763514915369746685805948267485157305567349536240927744303136773173299763148369359601273300308411365063139487154790117500569530116386165580688307689455987705329702907067699974455026001489909511275627121473410769611583347990471810749024932114460060687100548854872999971980393390538546098361681298422742118537562597822748967554804719971036222088384740509711593068830610452311705332504503141782886656865709520796780701201868937820622600306883824221375291395674567504957033798201099040266597896090133689855017572837343946750430938976871230005321053100133414245076462309315753036468811789134277034557766243439814727551247866228287151021472626092866689545127649277743390853712195668994185125787917350716820008054979602100873783447478326817471637057608200849052992199456395497739166177897562902653883652239067297574207152894902296616355937118817327842785845829019485144644830856231990702924504842347375215163346835977257243984956736981070664092087928588470606144099898656362980741002030193723725610112744220933885483528296870742687719644326331145990090969684591368734656289309643038070622599342534755359370170556907643893219998210848205462792592699234591246408530630275869895643957614441954003765512807086628767546595912828832138321953964563936011217250966718573549527801826710613000197904192630094768555238648407926907816430005699656482838112263527735975502404840888951289794777247543186052029699451505085497291634084411951237471710779655192857779186181127772952528185029103135362682217918035221134625131781841550693019075222993615076017400452917498371242030013393358436425563468716615270331217192273356284001876472724475703915129752470789519407560956597449221386562220998690483988941378808383031373297698045696609400573897098596692889685320366756501883915448435348515192718170607897045045097658936676785225143994273835679968043046129079646222660180069521566104941991765190006983256904677972469385393670251008909860194839312450023418745337152661558825934036374533903688594057459084559965169481967891296964688329777845309247770747114998714514021087647971842243405531976707048792922348831378295223315247884432129908214122695769360080140115407798094144557308125559068172612384573791443812495734331178682348693386235510600234368743592717909001628308800652653463401133003226334088599784253199198358923750111667848345407720445721723986621611332714353697628645892540747557882008820744769569467768896024993868889479423647804826195165886292336911844929485451316635940470969723001383840350207382522091588943456454502548464440668659535176223301037365763417875561118227732482837083128770306526913192248225320502171771194097960298070501506235646312646940321064789753532188506096348639328344287546944159367998876251370505108808456809551189876317320662109379380304034350403065707754959434739390748323866207285365812670947469644552583602590456861682307148246903688869536469242540145629451126937876004540636647275272899890000094698161409807165866665211472026100819078644703565710235776755124264352427839321754762494321209805627504882844027475721313472069868585151320474092491900196039848995884680118734847086404402195896208760143036123227976673688672662987505802837296219810854526996740319972025411044874309432552100391797424898279819887413247759003148043055627341651471148215245305803241697858560543697621821388514024793172875330130859355898456905430525934990057664558681606837955970990810369541393187665540019617048918966894030323712882815797603118844088940632630155209855816507009857913515695027300023407513390777166458174197830612425984620282826777424531692264228588629234333599188008644877990700758023148034946315177615056538764801354763714285635723703748697698981869265934547465807477704567063727454855532041511404729129178666852278574839557276881518220918049863229874450996288303043883767145921062032518563924550924982244015240369529795374038784305929425994821045213359342414557579668382942795083052057490496206552315236802929180024023842700077130734824962582917274987746222357472655630612331001598174832843984670546125572793944407063474591763226116573246713809821901082643789539146240723471824605990095752291034094273572890303224259228092633092449390626980214732461537145389831879060422842965706990756495791007597163530235480854953759537845777591103716271878133657509323389835488278679754622458435815390408866576428995924635946192461918664043412262924896244246413780444220012026706743485765657634969096537861694033069626961736085745309731679470307145283302568801199672454377003511277609814132533862942766035986692297108723852869672507859363491272532978389957070713523616226226198983862004332357368974151925543727481683159530182843450885044354736252903327171282224506230207234694982248527256465362054530229733859198881728074465058623979659198626882228353661176971636699810959905034374615821268177017827558559895831770404827550999748746024443688042718980687505691208680126090267040540373400403337351801540078027326812423964936611026182197821871130499075017998807256283149565043944016033736330559200272688106355911901501430330261430303766661668994702634453914086222402109234096646720086987535926932934405740423892275982009358202487568717733752506177158931942170579863746766696189875380619397695246277458426492487098307958931059348343003171567166819025557095056932177218000643002538296044892293148894763697208790420508033505199313958797307827185333056163084174294060241554078948940954778432655473317967126287980928671878959622752001286813817726103041199311005997854197846999975171254776082282453982502935639497711729227117627056282387667128772634711944847462315358472654095772356932835941206862228016821969034538254542259074429129986388290995551300341753453800130021670868394662472546832669040859309880114231569809822773371623354439341325097787711422808756016081360450144375870437839969647808444068340130084257983824287790650789809607759654551541665550873592870718742410050162295538324613290086557239465754921331379979339331478584115553305265598679974768692555558202329284507590287678175228661813367155937845214569023929360788729116358972609765260032022005978257432977958484925620510860674473642148729691780852956226062305340361927496342832633217209932008246459004645045444321780807450274071639898555007824993736876945879361532010122297621833857397096050488391310967958565607874577921394510852643967914675561836096117299815199836648410988994558899481237372347416840059159494796949519746615298885998525113806522450735741258967074329213523816304631706493060112641078772504048721097351178930654982416652081939823440891381701150681010542993744740675160917209578591319451834500629477967110591630815428429524074920878142101667612134674549466983617808973610718015495517362986035522603074308116584999802365165685702053185701521414576088782985629181959395733330528360454818551937699474302081592000045928844200400899657922180764185048041652459313421006869557165864858875127952433699620241352131334667986398465307371726697392460999806008921957230976950670212440674409905464091106726052030279821507160262138051362230857429451288897941678941102584532450459094508583167643234423582452064806757332015341260535853106027706712730291545140133555268517481295916880607615387583137244897943729587883837534934859786433328363248904886218779454285033226456586764881677591588644925032155776158495738862889794452130276987295370615913006636383335401082391269328824478561278939570755843642560527129745684782640930197002453212803680857161297042712809269429731774720603690360940599314984136746819016854481606864824843241351667434520833637979708882752129684317548466732424213646535517397001406898406519234152913936055548953258423987257259400877733400235633125273508896286422148069732417761647538988172756925579152049732056827788962416216380152196263542181254782388051571616073894036305140067159966767341308302537221417729172792805574552407450102668880855705441767544658849146920124053530426244980170050465997598744497592793454387133177163860292146756139204604165910609112490878126695425824736945514078297024281903617859836501826820250162820871045504388470248369283393446841755710921886580723196130986385651553506340883246074889817402532236556673373753471128516208568826958338401230184619333816198300394828463087131187313704338148026951502683907098394056106297348010298282474829732503513173787418507988759967441400035612696052865600799091599019106346306619636867179645851733616125870194383629036079100859814644749953195343862664249532882191975170038619371358973014340960176651178379725202484778234424968572902393529366093455779011699410483794943019892247621095573594850150390257483907141192546703917394829714347526771808423027991152208896436441107504167748555693158149304919036691170545774247366397093057646786232948200783291494056679429702984633087263398287477589081657422470127158392309939123656965744266106261761293213199891972294512479130886982502063801093726914451185890043660835288594886288686804330631389056852717347623988348819382033456254875972628900261685552316384344145926179113693532981672439386031177842806203972035146126774565401283198491694218400979916326513137935877934081312582675398180611234720863999084838500111681690636502654774460641586826911759005536248859055212755946993675180881128699618715623532892361702019395644015847347989782586227463195024935620230172692632462511079535193824422158591381520390265634745319599567332993860470314222041903745177698880344534859508168686953024863169804022957992304352028967569629868342921750595961487565139729632186615750760629977278764354845454239148154188296177105881269653863724434986826725312545536596001742905943300261762204574995838238349819111208021667571314814733474801853790729963493708873236744813617447167767308147124319234814562776140508548745298488254474814329094972490159086876825895614082175214386218741659388553417890516765935988497956898271813889978189483069349021620434140398233159075023918815100974929214780085374929815984952587000142677357160374923362800461037228498343449501594608732766610396522887918415587560841779186401147175856566703788600973030476016717429486218441292023996614175669802369544286749424101879083604874350819594778341243433602899876925622630176767582439127551670181112035820207839850123095602023013949747246868084692246439746369266627735309120419355901145099098804116147252539396791775060958347167317590376124730281191410426846597456989032022574069219125217089843733967228384108447187106619136215306771686065709388497968307188716587647078000390985831259362414878548322328475241527188661589935944967104057975227420861632975885751050926375000108278289492186618091321898850220124383486200743915068579369826305075438791275719115569147548220154090463452742669996070044626857702671165193013321780137787333315891772915919870464029724059004992601652767204660774509026816328742260858922943668731779659291706313446319650942651568184650441926825869449634682994439337457797138797547313033932601542931563394013178247011640516018157867526476528363777055216888442636251521904613822945271600879738575896338976984772724994064141492023366694229237177803760853344522159927339138445624732869124270925672217488624487344051097404539350923739452011503560404214606182435629872068169711829086649928121581486920467420275306864620094745882981151775627586645951433563740812336010318990822597527700297726781506176347884711871631737457606645012473859314261806822572556634600218073629774799957500023384254117891265574634343961243889774654402653203304963879487530937933379616644708259141291108615497065651278655598276326995683557315282617048093943755767863992821382071024663984078571173587791404268238732288366092467239478302923225500585514390201895441249334677393145985770549589988046977451317570102479587541547629501861455099300728616502004042683346455198645109079712636465019287680179461107847083551325005024223352228428215971730517228628074220975379968206168750290892008332968513874817016094430513911473393767603836195146678702194620953584478106843180640099303289353775745522621094654151256260297848734791053942554131463458436675611102790573805032794226428427350597451616497333769726933729668513563948290237903349392551105101706488978036599957928167196983150078901748717792608925102846357653120183444621442773325650700394591562534683824886164937948679680445396015207747765187947063035648553408042014396753669547822297965591543370860609297378785352074597275870910375957421650224787042093306269936088383443515297831813111149378110554393318965576823663274571696955455123830035940271234750442410202196580492390108539728118072505289181947640625449705710964559949517924234084259775667618000215718146635071170377097361331248849199082301629225553521308557013589855977230171525806568608203255227403611495799342117136066580318998478494640691876374519203345353867679471389211681619676185539822906044183769261264789161993995435433222829905324400561804721759967196493506155761016054454340000682143027527986976803060528588261378055799031230531328354825396926271451880171341837241107701625431293866708291391943631024937326513436472572764014204936673012292607633647250540927343100191991870620791759124361148342904232940681146962014222100821172006899680300031086354207475993112468435570845998484585028922400545977739131978460469312066546992043177065769652758774457817849604597589462509382315517727438791826363450170574929460344686038272574466056418469594549685806403826102436193644858132087396390188400757112256589124278528126069283143123186057196840826985733830567570287425649543485638362199340351488851656474143108920344592499859515781072615252550478558652580316570193336887934703403941737800229739767101479783104097834296242182868449023766901249149827882400619709127981041970325271607760940323229300715272696482847082961201420246958182204987538586625757524021476593281002351314000630200363749152617630938042648813364914809528678002029111142473445442346238754826633599865914404133552966293329867692213165274594787990638489083282472644597170140543561054675856949751474955343205990617037919156560825102693197150999446185377721301515850529518694722167908266826943029098424457870235541366224897953798595896107778977925277587529338109307596066041139980304516660042003151698731894874462880286117483876369944625749990178226757587694481006993356948865574214616391959475852012209989389604101639017803138129576121077540871875667527439326442659245818957110540897574417624116822154578769871972697783084488845917591066388621681464645895045403564639389886985071504089216653008478923605002628508806647092947701250593005449993623970187116349145539087721285533502796714238409708004287873838633161136568568425916158995944076490058958006383341119793315277966399646153057212566564375998051157712676448502538665280316195634561053323250912373475278204727081178164143943895959146468094930380457722737866440573642627646534539702427711937717002672830846386644705420195315664058968384902729291908766146635940440351836903551596989115489520146192204347409427485299794624642426059485435381749870848715687680962738342511041257012796888340257822690928455924281664195628609152339360304307419764531868734621315204163732731284478506583831923279513861823146942358831461751653683194405971760272879447130573181326733755043436380738931764670722231205590729606752782812247837940039102921765439708076731568712964991998531100748852745559104836653410028096433225570844310142529686206164332736123777410508883857332516766876430155112068231381068237673828690471355512705982352056493840264906248538621614695041282068942524336119189315015193160419072760313178321175268585386611218848133882372168565407872641994898604618970700613623169385210221475297805923795861333865763917509965806457218117614559472526158045786682364722333575812391669168945872205037606954595649949168317056901366679815408252012285583212938337738826411690458504407512387607820698675044639285214801703065632266010275742646772451948271683663145749445649178158602362354225325752717284765723562146974111436629539383502003834838845693267338881018974518757703450049201456364677755158133216545774989155736772736567865026467832701577163081119814433389334326162470744606113314935244195959447589408219311299781589866875979789721523306079216084025750966663411356965130042638190787166926500900605823718048547749566972043028621185540223218017541803884034214987085640331997706738837701060464598613970035880652052607336017765145290610807289192866512266275719316668100999213061713397337112033549366212290775394812126461111270264844972565583561062995003139384305480549648146344742059043778678313887783268243425658534937080905208477875428493019366352716302184726859160799232657630958169991822436899951559051069886267891037595524786684683375105806261392667828191212422874403327518767718110111673804705513860332024800865776554729506183329557613968374250850154107450812909772746848113688780399817471829404018609988064712981180772654412951983625380835299910411938445065616232284694631502220596985576034941040104463867787528487526863404479017879812967152490759776432639216854260152832278394186820975369400019357032541421963623528999078825548131177834490781997238912968388774993852426110312532375273288410314820199744164978559652626719411940572558524940763735481513349984090734059403044000795278611519318582542935513860519286561377796812886624387363609547387135327968123309955227495694798112101031050281345803220127140644238127579984116481908659956059725834646179768670174211622032149057008950108517463562413474503446680152243818954182905730535693764932902824559621635455752119828479917851750499839504732006857581389262404370978812656501550407412140066592831207883178886016294209155622889769200874917681669287268545407706299780213803439408763341581644934218105734822637519398461814345152166834900268596542716348873987666618562919466521806033205123046169519895500870741601233836314817061552004403648625436571096800775580760697632247971735782910272046255671804160942798854390780200893882235121034352855244832068277067243748633055969137920981320480437189879289643490446350109839587806920743631244953600440487693857288293669588008853293436046781337688563906062754397186962515674295527632030965117102741855401514629430494200727030606968151256374107651443820543492234688506158650933428073693896293797963094041859648921317165775764590422838162729214094139971729310532182321819445222462392654698106841630583356850766661246535323388960684016687757602065739748229514296735582770899416512738526818640146626475073667077040690913326625876281054476061801979464230179445192629977653828355243264172805230893147118348424697401099917821217617787368059598003292351276644279583584743797266955074031797763789908252814672959311798496439371622134965024132467772585822666850552526555527261546092340368564165002785340057471574191459427332891998210381707488428863063521924684790144644824731740357052863164110953057374747007063123018191758218100321431768394437710203279793306613193094365052556724635434819513328597502892241461667394092835890782073232677679756355635855435677321758791267206160372734829897427334117089363314463877215723028805952694477024154816804782360802477030027137469310750237677660326780611157717019148428883950701373710882186736226989448666626061931638537587285812978245698191684279228709572410479474898844040236728606406789410394347383692880989996292741144575393179903442982971881878383826696628270618357368473153902142274403754832016308153765491671734841228522504881190752160070037425970607568296870181888305567836283329658136138702745084806451037377537875659833952917019741945690335558002431103775383045782646549653636515515916041899400225671790927075695296846496610879988370938232762422800636801006254224325920400131762714283251689460369565018908945976781045499951306949187698152601742268803115263161272591771057604154781399583931484121160388417836620092281496496887842380406141118473237239815823978767386132775978664621171206499135143009928531158804809012628306380452479148432257712145528995662453981520821983330287861744904616331727755077653334494860949133671757303847718446957489700248665923904186925613708746922456365420082485283811915364416337603180654216332404606820149094204704147004725349981547862208313162485826789563702904095070202061862441224496493373099156572641210623409246959062778503008158681556559307039214404557139397582213518743859347530779250417083261577607902755129672469970640902046375552355091918442554906413088167282025531992658316651453064099279225844802176043920977691544368198044848824728761236001742326015793587613375134092865698551569812216610874913522831340608085544206781953729107245660974034119510660571834390711418961845506956631018762899792817911229328793984841292113307176207952310676938603211295791530568837319073371488714851141700595735977260288883515017277560751264129236095841918429711146573912669761793262952312572332400376013399584698214215148657361696301888722121570531032975850790362028872447486294185314672352647455360398799349687755862355884080883688001999389530764560385169394925986245196027164460728474124760243533933959784885184377866479840897630651968056571812577814489858947197936821109261755102309775901298356953103972388032469584407423245497565874558963252564026212071702996456904195596253785986527197852580721179722506676532390259977331307853387555165793905724000172991583288466996639093453089343131706161137064611037429373865992192250140059866570784289745815265737214815998520223054743476130980093277602659962580446497967133674590201939225807766598445719635253539019312257169459987162263987507102553176951593464414373781008818309170010137065019968674009737157317382165306487135631711069234044337220183353839023576938229822561362262339122015421131983198489826681039802343823157097958576650525891838948189917909692385135342422860163887058234939449509714335176631675592984629267700275105409349600153579294858081570518594009834894625242833099350289792049587275082031000903655551497193891476745892854095544955118356561506829267808434372637806901728843048034848549518380081305771411444168775542258069455593119547675859246051820398511386829456627637314290209224665323947599950553152510897349619050798126920744284741651050661964936544479657368812419246856003826454737373399974687398976767359447618581922969077140759953191036770376975464181414531392355744262645154760158445035630005364639066862328563770634123976030309033263980640808027416929101278054894892950428096306374314843891575745945358461988234997006339910949848537130026881457303059385069871558316333894146987270808464190888198666695153245956988377431395409141196684090122959964191960589307391680631970985488942683079987402539551640374299561532216711052430085176965919128204588405482631995049258188499545750161101087063252194203027687102731680345579185133766033909566125439695526239670854968258665592779711713286028729416509165170617220503973493314123898286377839897409914893470062680450618746429319524606229866603785233387395962520028950134609095147269553617970604894442971233496824843624935766851001589303918932852700770120632330139123360833134829076464551027270437673527818086319211860943650350212921954328287478692161535288683470480367878145190629727545235461556443666779225902441362019576170843481552587328219585676717550528582872478046208375365754247993147036794080970009801112193872231833399530637037088485135425049021900863813454272574861118107922985672760037356830166520397215335796167874380025841803297394308614853172817935936666970149796904148812092747683518342838224525089283065679373174678345423402041254109136341822246450902878529573532867002131367887566643034801217411912973521023010739315557126095069646713143925113562381341905735656702232961280577894411806769087427009181585256767644810407853106218272328035858769864697008932194580224338121696770625231668785420485364423232874084503597659678764694673735338667436403321097414596233523418959515786280560636893948791517165327802524346591291526062508645366964082963220487757643504936606505638614863753797433505492803448452533342494593276969384481460217633956361971978452204400401194059714316863630588085417503892937719752598507334628032855364982108004852998567606193242334369425106974785449393171611634801687145482621877408480107438181413194404253408287563576927918401691221927556602073508867197055106588566668520595046819284990007009622886443456121752104622141839640209638617652684515182053875485893138029683599368194093738089097670080251821680182329930977452051295508389765548629062007016920856008602268008916945058102811871298060032293725453025000598974579657158196202985386197809307526944228576063752537909428517135902990603385667702120993274476755176648872803957784326160245572785036854155424503343335075201820536850832088467764111937863646287427447711414815616888397402474632351208040586478547268813163808103147915899958867727011147608910722407764288152120311757118812808473705957793641677168142314013625642166342728229475118184622073175040052531418305209281992562135829610031843464760923754151130031551765786689780136585131843291757727970123495242682039053923723367675237687365431550084266641979258025427986662656541715143603603522942600598819715910030176003107265870737850340060076133571276365590397598103231642985611818890915336362425318439396576655003406206174830381526894621571782293857277726813164055241256659212344516318936709562468597274928420086419912243441732365118181373618128375525968699970552123785007892749844541411733972432384088674054531148675743967387148197106866909449632795136987102527075967027644728015342848339693517885001775232609217495906063081189557848164304125822960080964627968256374900948820006832353005316334132717424542919037783999006312757971032060006144974153888821479336209274138722637449175151706335209203957385245269105880620468977573096270460776299883526847263221433923809114755810716301274269607216514626756338389091287705923253793590780856986518938033951511542189915649549512264468311686531570074013580040367878961621241963886892908556121327620164651582047555776348674895453712345684313950947822554208931820938686162732943228081529148103387693907418418015752107782547193815087378106061211206161256883112544183673433159030870268946072549763788629432155299792913540694378670498381274447511439075954468256403265990516952681828343629464174410411487513023575456475789089735180233878307066215043273161872594996336100392807508449697560511869772941293494445647686526376012127158780974119361057067335812083051597637481532776535659529673574980395028418622074614527982311338830714864748843744036683869614629837184741144509972542309973752804379830482534546029176037855714198353096847809097606494483349451534858532970709918414418026260567711033312421170961841798091841946551506829921957167826126483351371603635796378497436569696960786216436620245604765256371237334166425070426611144913126409380644650718629692943500377960961067633217380144425995070198927500685076894550712532198084896343926000416683292791651410254732579414552828231302018848618364011803336410039198357157643855716359577941210193578569258343835870110949757144071998811742256656323677974733974809845164664934274263746416003042017779872467625210795041468042766906710876308423132686384936515765458516626386625206861506893469166087034372285525494397101622205336817253766446852342907676671980664298217126179730287587494405261505640260966854815915738883471547201266797912046895012872112828089460432013439697125671959930307674255003903392421317630960094717562729793225763653418204181311756986741284821340529828498398174230843352807586814958808054953409607231278820972499029153651885505987186816931174478198238933890083701633661124394163237262593635815616705876990227268109014716615372896349113511600683626265987789027130030581000393802880410612330423076022967069440488339050946793150742256528981507350049439942685462588587761616681823005537621681666725426899364887331908354513886312367167387730599620787261614140887522947396529202817970021720054649754014332108174659127688595462230151419026384289629434497501349110391802713190843229415002169768132310078121991907459010230476685541277096923944778501260544514695014952985323611334886707626802592092064236373837891875151664023363149250539020389733755974333487806413365453165263118494329197554720534941409355713781589146541735263006499884598996344061638228994382513351588234724765942516225796085068231638269393402851667368287491345779053093364179564300034547259959204523704862487953949646409038628352079019942854782598811909787743887072318804380126071562460563984978439924656984939862596343894810885000290032481176437647911104835412204766964385258388505675258836285483904904474973524452210816287113792897131705668806284725596672053311627188328371097775193085513008277662967511967021215649440697716983646520970477496951390031368669072133097263847763633413219588531738593291034070142085815571512073892921199148473114155050120574920360630901855780307186073764686945650041872057923761045210185901578410868770354299032099436703158311029738808298418603621759726111398506413576144683069412803194811097243256403707842068590581631024294373429021049886241419354460563476453616076200879010833662142574556147517866922347927119512439987166209441246999447622924402026072499015668353471001906306897826174479383208938685278128875518326305184574109088364784851312203786479919986017008382763231551872385117118719248301951918292544285939938690481872504781040118237127656545342362700100840290837800252005471310581604446638962775086036703731021251205496229396813782199573430491817979827553336186732224150023325437395452272305328552858503026120736758913711103903996131014861662473902722791133726540923621475917368531996580593956353865914306413778100481281801816672703565304036408215716893901902596555081423197841409810181337484021904381918921755999298613935737819494550592847768668867655563916712126218446155423015807593452437067136613429716289808315424543985608819840623959822343584903453840803295379609935287264415260329913135671918545283094979687293519304414083945295133962323856178096120578896691244826117378519099465668303413676683441136062796004658021692875906005130894420733679421299326947489777741992357629090975041630257820823704125839421508274668513285982099417278484707169637598705232627677619508710213287167784645764595716118834285701548982528900058017484514560394658159106635774766011048323588154395433275352495156088787860276895605352417048349574846311250435653487225226979828859247726671641927858152498206602656431510658574956258552791799406472896183422195748939988591796484511136867794817077306420375630322376334933627922935727360171967311121979264285437915357629246782235032377235080844070446891522594554894125595563067148374699386490151445946819866868238956670271488726421619673200411346408709262410869562854905885494418499202647721258923030921539694589165473233000889893032171927495626719155589923265916045564403828888933580560264791285879871283833271687275713605934539359456451380644293570701994883016380411919143931310929407883197113951207896763677096783268122309647207061870013655317994132752379687640687590348653893019927438597013190496397040705030721084868918903078996000327862474282183302613098607383001074639225789114440673769757248598231913730564927976517082009408062458812632448877572200283016770633162577164504803192720914021615235642378822891998342102017292720162724687961403588976649282873289362419765761413538214799055533176561058142015696317041320996805504489921393882521405776700854978418597995463885098450445441774124029360437935301036342837934933774661670484012509973967144633944004945026720845974116154688444065937247935033721988538963789304840051642115866066910596140814850021219260721360553187938993187183874645148978808864589050563094756972120580712389864207429128077588106495747361939942193072503758508863992126163310485936750997695887816465390459311344612695734553861190380500831588470180098421227379259468689235448632836811418505848733613633760642423112112129188094330458150706088353573506573733557956796023852310935109337000098238588402367278438391241690602766956622224953590137744656635108061850265991757849697100027148522186359221546033669248430250391297663200406904300385153073654610405134873565261223693733111583987418037519648507294856951192223221646669270733592839056953737833625685045457682626201152607116676289141627916056677614284069823123886017307246986538910240924230734260911640599116357185135735219315637272181402547248729658221697194128014791534284595082672189064038541950624301579794028309862264323266160925451380694618004638617413169000904299650168519680979341212881546952361350029022049537089208794619782765249404669069232098188295597827506230600529548017363429924334707141418115649814697511804851032406834322819707853593689288476131889206014756535766051839087446287580803767320866042054504660402108990778531741725154519621611376663404840888953405670526230362444287523319663684277627536434380944720203827267153505327060831779370961131843621879350343848982671293199762223203284182668230140374268795896800372949616688380254088392278601398705598379609000174531566750232024993229990101764157720071448108990228695839627706750166218467444593667277552872203538217485670333651840851317897510646155560055946375454731540647055123773389283903535225942500596765199751434145859732217472477219391207303341561181738031908153000771084997856343059907721819168282209318116165857324230109459819244319094083091474336386846624787512506930936126717804845240442970460891911800588889143700359651702285568652570957473515684018109903975225274736648132151901617739505709656132708467466006979428815944059537337008210224512376693052157127185479053205606565081238056736494227003646096933549733436489250645620803066918999323207166725844185331000412871042936751207062791467116309182885177818662126872685720519490811036121435538249103475839744132005971683164335537723996240726866477836454028489406384614138904099087021860552457696986451175311093708732939571013740742782506694822005579138014417558304140134193087331526327760299311616514778601031804237711719185846509964526336356034750488452507867786984409616692812399603614376930070786598220154067044789255373872509859862326207400569345597766652832597942257904884039681027451291265155815536490527179141417289620881105271332585232594308424417751354306910349060244977585052278071079761215935582558329655265857906752708504873406708754194069450502633467730586662162248804698999009279921151975971790410147114005377633900585621514987387647076594322679809450746935728721171803844255269470049120942305146970350388341009232182391826155861741104041532603947343326199983455881512779197680277437746805182531647470507088879209206503433491031820391785574973695556779470128880599167738410907919774015703775249567319899328433373670013992684533926426367047728081752294365217477928160988409730906421363963522288691676319962899803620219702923557455790658873023343088525852207502197488183711260782723012610606955830876289607362110649985428975636500987684476509786114235764306307769167529399251151697153086707054040096640437125702375807503577016570283724134319064388180300199091964711264308475035333764242327595446265736125553248091417415787418483390289246862605903342589488908130133805681594233515149824674750718554565560740555311162632049728035498962629416057205251875711492179601000829397722307118585489863263524496703279071042233792337968561347722002360456213292188674445829515716530115296675255409059708379739375924155123389075654064885683752162281537409401930986206992476338663129519373888707081303736069357486535753780667059537587944247347262631540979410318919198234430813893742791805266641141746081561357546673955256605730547866183436520446479675093525361953654733212875744750782731858183147176721553829876189200030525196379024182250717287028142990964981171001054700341058701630355174050920515817741806336750563427043103851859692040009096912443551950649585479254561844326938967413335544616933833508719699576562289216340820557996381486596626728111667334166598222041536595755759693249212718522658249967216934044037146666220276670446316415702401310422138558971650730184563151028269757284281988122881466907867270977977200152788519285169768465152781171520686650692911225665194891434651529009165817234467597400499867921843545951230793819541123603458829071092608226637180344071422726709633190044975305859086649080598127014542824855886926848224493719314087394636759620269363681495840551146901377532278512791827445333565501232911657729634919300190689396157222909175166593247869281389327963329793167210703412985153295924911769285682144849215715901363438341891723253848828409763814059215160574879471697326857008977530674780741421560736214605045893058921967582526949331774289461005080024098009215452642096129966018206671053637308578909644465563496148066514751011207620336190778869990181682565516678664622488805813851966166012099507365793141294351472687360559128369872365481545159722000588893492680894865840246113262415567074141205632113075634873756980483663692961892014511597967520834619200762783895641283052303376373525829112299730643531310549353408416654017377451317137617316325973056686924478779280842485187250905493778622549261631931870252904260170158458948247791437210032891347708077236841834492750470955230216318428643551196154329902296056140713810035031023868462076248116533140353311486534876098386646586043272144438510671496765456746725472489102237810521982574341730777835468088269974654292064465903911267507248309201707830209413083985297601995914551343587805252748424668061696761260041377543689401794630891376694084268531082316764763051079644996821574902439787393571637112616726695695118124075321414168777801846217824944092764492841245201227761883160965176912242172006317257808207050882494893139365040402845240694561717605759266404599713689108084747046191702185093551589529905007068477056146166140520365609097611530951607372245721319800893028040240717727655485727549917036609891583441312602861058588270020326902511476745554005986570833373083373590358112456030594181641685850728759134181848432082218899019290463796239289720460099965194636799887639626489679446557050663085077408466173385080777345443376898414679645030949253325660264241970557189789728650302398628397918295157463171193159586816769284664448548641476307255508876937503201719119682083904286916967612098958492328205156048060824494997396705895457807797136404883100952370403429081906884048623635453274077679051179535156326187786706450249639412968533757752208757124537485728405592325213719355615686861237531679245474713224543439028334702330410540417216411981194289304764203586772520256884950676243978779376401288156313409535877625178718477145538173132163162673973584165949204779682079720152104274441627565097201345266963214902502707263460306781250385860795894152473049423506040480160204692460208149759963263980381585416682082942415824380257669847980550238206960894665052952607108828856550797339570696466820220070065001153920050232927218614006156364060982785569969402916580924713303646781025749060775786949918036844501025308498953364730358595940588665993128848716278867034869762163150574913494270775370832364708490458915350491750822369957579774856979010038397553269022854809906064594848536622236814224667888712928764668151321220462603069436542284829988378838984529713235771041493725815296327180971835886940997573403630548642810722532718779623867672857758298419164096022291405920792707952455161774124058644521640025361437840867400162486933549556356553028297772640328461086037586907775253591482092983677821869738703745103592170277916538222205817140867036358053623997448559899143164513229485218827201623310642347348279644494977108249925631592507022241471019365288282242848498108542342456999004672354507393947137189491353364826246065808594157625558308365678074136302958650707416907392938220689714605697282895340834653132210945949349631281075168366331240123941413884402728308925422207509092378030982067035010193933148507285039270439118082966593744739220340469310595405045800346920055728053133353203389454391812822461971582410373463774365666214628009456578124027932868148354716256327308973546938294144285325671617758093899232656088603801881599382288325222647911353963342904566333894100375346824604607537209720864649882177188554569823144500274925154774059166322376615286449174215595872569425932036634434413455660022540020125596629578907739474128184372543468756984722750265238508651759364767361399933613958354706854717696049796795994970531209313715080909831968138285405695746743815832509636696566347414226614828078707529634677248253410273358383162985400998091528058805314025161699542832979764992001014809103190572673012129996202675041951251934298135142086875951295953551171554973995579283079664201063320606686260952372224807553463981607795539985451440053950264195099841126470748684281406276089733731711893806613672024421935616823436690202866139345699311472925174577775087273963719799695018822470767528479739867293118431741740139945458793239249470389500674003064243011918668178261358359224788576484831561717133535507283826620349307299743137363763418035527293036534265553876325890646111861723129076863566491992286392671203241547295343697804702792671956858866116163598184406229203786275957723774727625642901537651487587913966339768780963945761696926969447992413000333055759166940105612248030335796964471532745781139095420272534591462819329674191781595215369889926985327643221696159237628475248369332064155078588035309341271397982242567498002929376448513416571662830928132604059461375170468867546723549642252493377538522947612853752792271542493484506929894122977911837279735634305342577876108055217145557039478891425543184368846291237194220357915963010985722261083375659593457063791604975738487385373838315624500862534362191674450039859650156812862060575760641493427904914780247762100808931141411963888186196394229727118775960234217482480510782879126162194594788641971447889095284942114110538269375904234270243221626461188955669594874879334542519732777274233345903378326546836436398238948106690497491613541014004827820558472139463693574364537323055283477784997230304790875915177119647882141721761715624408204483919064863523363700297849553240374883838994417681277003024592489833564858641020243020316797054254862616868023237634662673468143175717745064862701752975592874188338668301306028926764819386827767154919007219336466156483861172909197865089136227984555371732649658383092684635652288413781155442218277005005833082064824261605511434414681937432129264906761831037679831067748551340622520106070456235829841079574742709135790609576591773818784423657221749968902381300665483676276465511485178027728968374723127296233337667607469071181890201486482151292016342406324139900773157946787952592510233540730498257373914285715402835488298249151531646586933593637307209073873347291313895238455774769775946888322095229276644795561276669932090144207811416333183521884394295136417404768867796317900555619159000613364699544278498870723102602702286583851378274865436405899987753308301604028969255338535582954159932046800409526519288721368539681655391548585265416718670786719304256277069185308150806463767947415993712099292635360075527322419001239566742407801623765829496599183557071990159581168069157429754930089717247250132927391182524690233806712397041464046651584983530269567539122969648676443492236554064464196646815466652380708913989369222635523464632847368330289758997597342661796961980922972339846740115805196827918094813330638086537585707151080485007688116822085347553752781942930243545646030325823405712362195070321887571255776491927844643500118487029008869607009050231877395130038845881681270083170002972954668499532334821673850151548008108185055242922815835954541987517876352270978803104443851031047274541959286314109029938414541820995940599824139789706821477158969357267474011030843385192496588723027395568861552988277943847806333857325287269599206600065137233184931245359456513778067190882025761374516515523373922667777049201306869979113594981983150326907704394307219350198961969836586659428991603868260711724539467432505695288469357075690913125643165343483775445108043532237758435780303880585497469739879455726894205464221257655873249055851251836780052586936630013389980581585557624950205982958329424111963363452821645142486399563063285941429184600707068878427153897620701891894989577705864786527545429009000771003476630382838012184720881899660028291698158970238411221390465662023665270496607350252127770231306727758720046822728471576807250501736188272384307960863082007488044946917272919869532868659551328440309184388043214423423383995134838109550510753128230950167921313619339289404540716956818445726215245511542225409729448798789133305968371104035545999419312302466969276851073699971944417754118034895399001053716929817102625086974332963040864154095341136645076608034363771060273524523286787416957087692678921608166888691995312089019328273417243955570588820393703849652577945731344719318620728132409572019225926378563112592616967953344665267703299343199081866654601624501014304152463470339291126721429561619101776424697878832548466598794896856590965350972849189255907054847162563470099048569179705364066568477241321214580044419456131419451314486490218619081368811279089783561781863382569698677038384182034360144875166791601540909701838349457376343103560833581385292652593299145905498547317588124592167422983216081603925137744439285630799569735023428259268251024491962689360391437473005459628823262719431902293795126283203496133338997092410234339430446742464006220324820677020560288976351131137172662019941437571692707228304856469558549990766217188158626826384200100098043069421466787898580969131001591741663978304925575107093055534853528448571009189426988979187179667728052601348331175832130924987586937423056308596661604973939551219457679295768156481971410110683732849684774345696092208383410414763760066975148621473745731856517249048749757747644803530314395513581092710547037109500791584784557383475871500645714125178529346965496594591349089801646177266290002974339180645060171731604661303032701724043417715079128032437918143576221227096164373685764650608114057624498893219584554859217260430988177304214103125918234608694880965281238776426648047738134507025578591127376181426607793767937773032005163255534093812125074224007786268201464398800798603086528669105007249240686679203852666323755123174189734878003856933565179158192843688257129227353984122212189010543504275527862648299962241438162039188079719881400808870474034455950535887351934317121072782403478982333417077117412501821604643152661321160466747923649708070482050023875629976431221775230407039444058912322238025749634770349002041683528207165202094535365981771113781485447000445494281441300238591032246351579053277588706634326853325447295378604299816129505335890858873849222014920882988852844452573190456630098965482914707940349863960816779101094347664882676623506290007672433870854189600711854498309955158002445474113471021656604144483348655685389754221921310066835702816426401067959341548295990264470957021438077661067709068451297070090273672493409814080337721799243278602472878180530046512623367496940879679224874919916031059615511072865771568945868984138793540913514426260690098720975497454996835674479250446339330224266372761934936880692483502897833204509452151601174192265935954833304034592151111183364886578374920834982902570427399504932262684256111695945752581790096671820430933900789929969537856987260130797844921362401581010547841707400004973523836360823032819777322209552017814847711725003026742104773916441298462295352077237978014093399397280810017749036895331935931803982493883990578852294727437014718066678537019051424902010023327204656760336481268231879613652157148165732139388118552087240242274168156597459376609423008621531777090318852525055254569933087701797059503867881437643044487643200948862377958602393357510873485052271484912347335552937008686080273843437937972985006581634148307861284692990223152138385693540540239172176154011534718830668317686049195474695698442079860880085646428758142225616690302332312291147297600054528314345782956017300538792459776930125569338932298517471723893449667183694666072331852309476190085071187640590872059012149976154591925249064872495195759324467705486011265776085334881316941453236596216239132743058499661186297080060617003254885019700759673724564481365947050008692674121586225552069031950463553212703397844285841359660926771954957940444705825549876506235931947763446154481350514093924079757163949853481625032594395927852451638711996939362989382732409099101834535183326493464240238370515878535346064573223343089930153283671876632207748760736624434980860475842318654286469696193998245001932823983361499472847170422301725503291273091142797451428657270260407350978357609351011989155736098082262693525485720055607186225778280102109553843446203828754214893991174126724198720656654447593777664892552828028713409972184451649722484107937937335248552754768856794473945808528556265625389712672315880764267607538090602981040415200397038008264757714779106960389942674350560008915746161726728596636579187732348290614078310244144618845206045797672063761044651404945072846399530184990404954206919464148064299145411184835931317518474938109850737407156953277336691648873211120358277869989623671959791180949902164184825642317793262071242420405120291430852787355536253363735075697482571644258014505518547911123708584843724437638327028013495878489619927392182022636147745254946707742091330531798939094621345537622211597694975040696723732947670704487275334096234721509995006787761658338150643928049915504848425746431924216305644014269890534260685765980392939002122760121033465426443899891176376269523649330480554543458995025373319578572426658488200684072733478597578563198561933866277054763451485447563306758882632668466727085516398782512603963396783270073798796378657881246470506223014674975005705074216492203521709160001829062031789948335987926557078360885535944558711235889690655573103376076011598182146181414736878662167252719882487878307284896802474765763471851486108507964492317198496939867930765116466279963475309077762199893196290793884251960261171415453016638042172766312237512884195808775639542669216892547794691763014171750409968716088562299447415678587694360383848860642652938396642475279827257141851089819367116670066771018592594598295594701318556978461441369752591290712970988101836054825576775071237423898332915405834671441622126965382585510502620476450296481588628818259175896073031871518197162412881726525568995014000705278221809930741308820803515535493453314810082450781908319757915269775251307446801284500049048280881024813016632224094744772904137271026201849057120097876931046508270313165171911339276457572853388173341131896674591559079404608757756329249083877271720930631237743700973982901569236318388357241778357461049821656524140771185213063905090499775082217824921675460664629259107262561896448364377674263475794863427514877970505538227961142798627849823295109161510411592998417136515870820329206265390615915438326019575992287684786564771792381869823313528545011188381134511354797363882430845226514340789156785937829446986581848727355804659551174570895787832076277071093264475443777182261618354960813730095424987895448346028805982797973817093067807054132145780852177821203818820222112860597012188618849023825242040874788460782907751286792117787217129481292904271358265875657061423024161418529733578043493045422517001411616390208114112195369701951507709976087806771484842457624605118835826482676549970404672191508943612866110772308066631794840335806131267715711420351780592475514373869530396634052633368493312078937682395961710320481490065798939484491326263205872984772990454592729104386919512695078023913358291156511040471321552277721429129701045551994997084604901156335076349048943604730004008988733841430604098794743559146986815866179716952720777305550785967508562103656799540561724351340108615372952961313326872907056125189081510097022639499858293823940041153496024198808427157312491011642240171838578937070857446733504709540541472211548305599102138939142558942614344479867887266766005630188737666427258348643418285301831481316631076559413383153036474766778095998090753272849464416467068992513214480895607149309094846984574067951494054145119070462691552259903558357667752752059940849339308719592035208464634971154594784884686803609881596004142201087117709595937243933821585109521748857301620695298153233532765610448299064770437879286921226708055525807627262452346499606371505757863910986833602815462871218048468109002733078479223502054879920156608000173517636518628785266255745223488050414797627613500322493102526691034384696038141428231854406881638722137962113178806117590859484910649314467334185145811080809332912898324170082141277135857086358926163206154847721130853357354239720561757845510123542230227496637140813540634275858190850863613498367638817683305292340569162666909474963355435527843737397601097647906886519699509713937475044288015282133446112572039674217646061333090817535439535607993987027793908188193017949467144072566315956159658747787439803775568489547631721226516362188758763868820208110243807456047547495861337841921609312460923082746129519064334331543493025327849142153703607412223834326466453816140644349411763951235551018853419499423150941534298071392598660724802049805814471456908374758791369942313596553963437718075894994207756696604444652106042507074841705908761838619267449762427578346755583586880911386493821974140550159634823039051637763632195814872121239838133732445088346599048590327981811863245323943333092479757115453102725662741780972303352359281739854075740619436194955038676519442420207117353802266543527593314869338146338575862924319369825035279164761870322497147663343451636772370933776669605979262333733786440522112404932560296304195675725017474817907564115987308100099091601706564378818337118729133195199549991606224891645999143878239827696990670351616324834670547151342715527573764472078797522268798522544919633928229924273814259667726203979088262839471796116870037127808573144085114170018470087751599943648936465951431920527582838158995677746287981697185044414717702835134224915963061242183556819551702906711201878268891732115510010818545049909993842472207904390937441013242490970957601837553365351324237507981488828782559621907816742205088298974768301900736316284656726392493911844984620630831161933783189768363047887205046501142154022200228456350322781603318350772151509754535444746560070207799167070244250755172370986135299868313849912248225764893816724970731782754271574527419194272097282145859686387192541030527724218931640689309970477057216755871917727326963708368811748931480607671009938035947860225601678537225503167843587189836322702122434678060355605041083644162781179035090407031520466907194502503242681386959164897823792285567515531929380939106811890697740493056456297679713156711415814987463186942497981031067936899102725379703280979728880309634455733268469095209673865623421517964439745220747606560410153980670120416163875148591875910791999537994346657897788760108163716530465827702901568360820529621127623497842709432822133655168683410216286812709432171007877145855493048796254434873235268777678425103573187695077210184449473608929192403232321178256369030529156277983353974208875177955512711788661502972795496051891298569676081288344192339195624875984613522007100642395791142843456226832516204577452513613701700583456009944062995199132748265746800562735403395258969617077383514647659089534946822280074199904798800946776777914559171833304268741571873210920061342300472273456101201324879867208807338072300175293419832808071689305934760097131262455127927970393481022962950478190702506482627178564796846967101811089739996917589641806970171188962821214905505599925948494251525983603428798796370156647192228305620636319248246158044639773081067732752238248524124992844179572381507841978305419951081905745704828021905415782330399580340879510767236069583066862558839397084867719243309468374795540195684731813866252847119275750479488655352603913197117131853623165578055165833981731933126328610325094015107124829079531736401056600821308828132311191303349930496649745972349155706108513171416234738556615432742962852388468075891617168634356664342084969819680488612149249760802292980296716939433394670047503123195575661519190660036709970635529899741695562944774828195136430173517404551291390388848356770182305852751334648467778486065735106130467790161993190019412236117722027937720011017214956383911454427393616874855505360745456494977417610063587000189115461304685450120392101145038867472247842601134757055076365626836548014100932210998867284235968728623057810754346749343628171340603393084253723789237168345524325291322992762858760560936728580891288696816628074417779287579998694623677065877617813578233739552460248333620907307693267126184183718309342438139291443843413370632298724762342968185387404820876598441928610248616398035487235995028354410508532118070952413040368240606021077668206439771175199028013713836845509838178649733144894832087709666005082513737031814488000029497548631564109045298450855954648146101761224713118916399917513842982591358926287896143857555467024464482607341325143496142506666051383861757884352952872349725840218413763851993595961487776581324336058175837081517808803851360097289190817663309079417637356553666982886391063983375172113653898212195118033795953674421318440962920223377768718554874876272686453158808247677312158793604299489829005710399503673657015523733402790811690796677009391566996988770529151184908711149817965824098891617929738554646559652643984776034282476512403478191778730676643903617895132844501563654432150314819906926080389336504040435129157886877933884469733375302162105890394418159344084597867261764014003111484098605276751938192232719942578666088004254292847766217483856948449263658187284050923839038804544055776960022801160257018874646000872741739877577773925841241935364358482767055335113846502429990263671339838448201346336475673422722822269218424316454751924985680559969151700762127333216898843632377831845031199526746156609332763948579563735826739567190212656358795932705774393072443685515289642696995124517728777872171231771854007152215095462379428482624295178191448369145327499443327822954477184687971992140252451294454850001487712772175483127843407919289580139280105718704705033458322828772199694419386172806048542194444077488812048880541366208963618694377540788955694512686966913592841522056887519313095295566913507639813592631121488931081512686757613810138745439474661657516193930893112022318146357608256378071724759475628312067380455832789526355705696301612422479243006602287754048998091229913841883053432281706335300263305554945689053186222547171690456346193081830740311438210918679131256591117204050972358486452493209170350588220187493239677084705461304250099851174481850484251016978887069285500760600218605208314900803576442609319664116783518990342194152306889567087998245080281421268664374302571548342016509118321409419313311019732988735802426613135624182931544783615376977646275062504491678350646755807620634712274491449031265720525220181072431492911879940744622319666535932547327321636989751418341800633842256626225531561780680046424489744564604952642962731630340050835294009143846473174785899026563087888561866592176958911258656605569141344374234883929375093521513898886157594303096746959482269294138402818456895295340664048778342623412980614909870163448198952314453965889191560509844105630470474715941377547501482118521524843772322986069502467362566298616424270440601615155283124014784863040132310392130997089767874984270264554970501668656247134656803328792483770099180101903731103017050565716259309192092535498777331089651745923027236887970159875716241537424585058922463025190496351244818777297035454420279755046894588924709169287038781414167519349845899896688571314410524981487529541083511867493351684524310295870576510007644011326338029093671218915815786313886032949282845368869654144544108833151323013553056019818725578575888844213580054002201971513343675538806629499953115690033779199657405794599533339222806982295180217674418441449033774057754893516001404684344849969298312383827878557668861811285784394618518993067785019535262696086774649860568787018144020222594835856248025996252421153027144979342682039505950483332073277653798231757277298497320159983500060210987303214267553485877912664146932188741978303595570979124389056157238510828939424177851360081088514187784113812807196844078215133098499282803862420296758977152907024628723174677732178928033516043667885742689482692317061850021565493074006096590833060000249618728320040202408262336019582370667763220477099046369035067172065335732241145108915546103624674810354441548320930346647599298315694785128366439794474568425921564811539752560089527348187104733112451457836610668434441279972557044572260449066925419852926952961997685249133005161217793221500426277212305581500933593458505938212555651036558094865551704609852002867086721442866444770925640074159896233809140519997546947686534334416909903935293573042774765948084966423387767528672904693771187105205657643328320536338540472713805154392010647951359033839582412303528494007842025586550791554129070565634049183439898088680570812908545292491293378192108170450200285583451452782661565127647915289036403725283010910183664968498208901435922436129372378824172364680296721959358476596585007591189490982128339697124070843272350659352205987367175466876786527823218554116893623296837797146512633988988286049059532208622409724680902412944930588383048162747758890958659772952169705836315802722138694500399650068465773336174666238586732247763094060681341452585444736455280538620137495349473849750119756252556941642998299471853703366437596175776581908027977462879515528120599535166446073541288165070096432677178715551441863451244703220057607943311450309446160189821852675058690492384548266679408208879797174301259428391468106765933118255016926898516296469832852824273159404343692699734247484702248875646378559950201634082220953164929409012535193378872187504567809669513225601388229167083438253240558273255786821189555669809006410440352123017380384806212837653412095455168571916978530620611740444803630122621367256554865323943440748644349916488961793618488378143133861838953131131029569874208796048093820490626103048546023669756776794688803278616853130678238585309751913451475316819491331111549678225075142701507776034907029117856279036991063292375015476568746765813560632447015681238685646392609662094493934756180541050093611667436082281588350198771549179256893840533017666383947662478678949437272400611628756719152587344659613652704797215544429512641717006752887677959490075597105509643898002267659144865080128922496112665248518565495070772998467581194624868788667400144782247476981786197350638677259508785563320081567172673396949382773494832713281905422399912916537389144408483362920932854082115960445718357957511716279868021773951410796000802497064047101187978350206742592084878626572213438614904849612205958406830249630572879828381656804694047328497085580412940648497670668752340010604209908267939295571686543061268645935124532640907232459624050648532247073611072601857528410391570728955135230275656522246801657545841410344604212315520735506866751974819355113360266511853628288148158074829862692914852463487033926967305374597365760864712465102812650318575755203830059902814577452063521508614881801844398741667653882266055786968304039267700799989376044517649976557180463252730617750162663672934185272667441895774931368901627912324921305959514705253015582210731010271363486358495421771219572194453600188698268409673823298701284041546829417382622666900829893526037605518995566658007831058171400341896171067894005749907545066190438675691771019007440255051287883103630725968767874653247956061299552307367356280977485527777782466489500580124252354842471696942235289623010711157719726453246789728353669676376719615436681292487918199563499879695980472759648248455985907315173291440991681462620627286853186134634300902022254468941082172070358513918637276461035018432844783465520329958643408568815447826963885773359108675724105201011950960609481862670547447906037918144963447297772696033765699135284756373082222593347325955771574535473150293114246417906980119949383923528535389757996625781316364538698848331676515994460544489708914059519771357745532475810938380646368368059624609855031068760454723742349492707329385185431510638247827021913386304701162583675621299918972782640935380607965995778028722128172812828835036244581943535935067397161499549406476670069938704653626542317279823784561545869441374433870938138372876283495821070524722509777455617103363534928402825107963324984135382003371953391910080257832141415153180817809700321496577211243415768697817250013081082580016904280672306595367104206041407156049658110870672383949783960973740384118752005924657284113540971449023839092989985022703264393869287725302354397984235040527578567354922758793147334565894616450825112306024892342254601537076968545776995843858529458202581820650222037342608558248873979330988973782858191513289175881900179712255261819917203626561979747195288422474785607771244047293189541982321367642620260376566818123648281842618260251824418354391064069911567497874920044811403782387794895521845731662888636716902899525784898429791118057028845160572314368659242319898522149076656758770013746116709388289766458044173976988671454422242653164198053449916683496282054917750479817615818339672131066540332346092120620187919956764870893408324989864956838529685221883704739723628559788948584851780232829546827578105219669891777078453073425626521811523008077765304565192811221936639883398502435898408195939910731019186202014537010693887208699653322597319166226949274081117044720821713001701337161078134326164807103603735206794753393663032217531751601452809387469048543002311310507161027992299606742587116519424862124535481698306443559425648591374907085544458179574446013866406066689639585585114594533043964077660552908862476295887898388666136607006569966021822316277880914397247941277232639895770130862544526213241548368835790783360451126678628729691527358333739953217471100066929857612260479953286824030157870233810129708525344757196441247224771482560459103499315778792864082475392834023827220581244257818242886780104709048636063462698439566480923616921014193205199977655952293183827252284008763698742326145742782703895174560957557920531673582435981480821875094286017532423719952720290475078530761813747875316756040943210748492926745054297412022591081954651040578283800538733650993134420021274825738018944045043280834733547426475066735389321506605306221574772790951420330764351275142744255596608053568760580132196229893258961453496139790328313523328106981261729080607749223869448902599456908036143948130457995933010108075057095671146021713037284519158704650016358846206240787880212060173661593217547052931964590046001177439818464860252089614556199370838987734366852613190383652741886706315040669245631016540494624964422071888841069394729742816321965414500877425837436690697837407108282825338691228218972331107812422954137065426512293744539234469383371442216290803052269807169461338562996763459685284075724069288587028961857121834438519642651348968960503356825789412441732735604867548592754403658802573077410028688525058050163113291791684536972447563685390300321798321665247971609271404271480831989658676521939922889580980408152681879781595126879968662583410408751604115277145685050056455023112523131513907995084530336930332191807278683845048267112066241410784376702778737606829416705535223647095137732272238473651110846853582094123145563743970281288241850632106155447884143774057487174669857288657940172315445375003324105742467130011994490814852566659339390818703903741216307134350722750494938487493838194184378328824349189008572885115213305123153203069302452371650698686867037510557708132545722656461538405799420045462772948191186280101705712957192381454029635288578828036990884545874295221603852803999105235410282319733775831910832902367884216629563781103581455797466800228976517829476376112893055358912801411065609463928527326325687300876001984663356447665055529836019828743415093609978873730440969921127847070230506404788174382004398689568472735219574088634409955558303693621332977985036475316189654184270981460789076703734256010638100301048319095070184575935212930113840204317396011398018926876962563157126411435016039301069356971826989485788828014395424790372845849827637860952935889420070194505557402564853018480869351005596594113488434916465006516023415956749291749962429294773899333018086246737847340641396278236212108396932311324620734582625633706123184599746655353251201780653712171662977371235168481164057385221377509194607632636064233978553194611234238978615851130842697090206425352187146819170389121116967149049117318111425903945423605703398099796953391561509783826000553225224428727689874804936106114817309911724925242623004132753909540301866307491420930169172055780247600973457109414630637719682200792403062687019353323400860372887625378848997770032975701850014224392802649120971265551426361601711655481464428024288314342455190569080503851799479636626440953977062833033532551044103964813323567611574743473779241428676176635391046785949378683838464441753144600017079276102258487870814508253375864339868438419061987680923625164521297272121602531128416733495470140667865124058891690729512531052299085581971215273140401010491540903991097415375068526864976804382220405677424990610985013753128587537826216204132400275645455716554867536623810207692911815868639314657418449283801535468082085989692178814394465424412727157241399432817741035136797690879969573955834905327953303727553198266606940614019408537129860642340895147856346505946430316741204387291342084130498476749485146028338609659014051093667447310936596760069471785434635770189042446374808282919187892844911657016311391978938932751668795145503866601114479363251604870104097293549061978337378000097834087796117088574889722216615540533005596569854830549774211171374967484053313143057179434175676115625379223524972801685532319769426530373345979276152106365862648610962587048934239028382761657067298502039223105866643867314140341057577602301967219657932885404139226474101487076173127835048641287531723858747289647371478427922421497714675177580298741013624153603007686141896013208558995456028149700227211966843444875806429961805251494774305176575384053700213251112927937616417214760349181260498148853708994470377621995124754000837123719319729069606440789408914560200354507972340372496576389609255547608045891550814346973024528056553382119818482916398914599138990152215454068445222774390665056371204692295710206281929705259834101562908987850955093388864759452516269587552714357229363178055474336279725163970264469051020242676335824266079262820723594357915438142758010021910102663715907125063089310539931012038848625006816922247359780050077320862533935256137940494853199966591123708753782956815628084321549794686353793752448738762518872913527441574345511349664964570556279724465029418390092460568863601399645269338517566539269560777195090098139101622893989440651691774501428999158747844250495347743264356346139810452701285537792049587747545654902689393249702908388986127719927768781610547190821073839938328450451063685317425196055080356909170580510253403492636064332431837867360626197364631266849640957252360633654713131942159331722679688291583250892926387375599530920068244032402721335158300079929914642338472638120174898206202538232068608404739983221059746881091788953228366070461961933288254181464057206576187893868988449068059577837417138098269604771768488306829100178685978305479255367830850425943862522648784055233222020426458801025241702968663056545025515482314055741544325007909548730516575967314315918990336289629042713080085756468129188701416786865900722403343825388714753659640514375827585027428419308304951761494373343585888626848863106337279152597994842542285849170409164302213875148788741351243657149253462643310128536000527378766657923612502413767234537417419262237302531762752850534447107080766734595837959957019475428173583910436619645819305828417933407115136871353818402082066755292264966061455433629822195139212096582826392409938318554361157921977824089952158194144956573624652483643467550651418433407294215739507300558191302222916555271289909641202532078542024726951360495824319103765936542594229782042001470867061452352185276955865949513893344029376355577801533060555822295761019296387221859984154252197697922419857807524779773030127544324371175791125680633467672524787831105922645705260063518603816387118183077662556764473053222521870320848591143924170078214915983782820820653298510063660494225858795944959294913476226757163078022397604951698371031268612040579904134831817753865653566976726045084284273594382046786071415258138724358055381600659573652723782571563008859640762243064449196210079704062391933897872874159157355317859108974661364595920517949680412959177588571041689216580190242282159047183234422867001826892664891737692620571959506633849086106793127088093333537475345003248204005429884602314725890028461755233772674401998444725015555951820227985227660451785974534873661088709983830687171044360107268060661367404980456915582571295917443678921204662044155586883496137549828298699729270175125849163263645658352872481824718622475014515353474365903057673558140007412589628516796592980944712137877725450281789803823188582081501651976953318500863243639771318411748070587919836150718738068720022005931227351527945364116041468371581269132003266894991572513510015061689162579406190505222135809937755226826582614554831431571720334833004083791019729610174964374918064136951362240020650792898632658712593333633900087052018947971449327912098406628006512753304469869310307349201760229721958520570057495876226921548040910991092106339523889951434803575641310673671636196987988396170427923250823107596846372573534917901692214473110923292604283389361312619610470023155051720459659722284796358192458115616865300105122410507556727628645069904523269506040859514927457482832582744512899957916081563130426660062982254717293028973794123587559583921953485668787279015852939810618953271571922385274251402698723314771462023606642502028752034387904706843682453450104725907619279622162557681960060835767032529911120625569199617462386447497072810353138316632184001890788387904498866603380609310735644787725150668712020230702228218502034125704442490215563589844628984678591738840417708485389907428955485981068196439419682629273669069271760245366250094108378134109167994539926317802603663201087063904580184326027698929288934798984861117074266907404942497511453483388321075344158167715600102509542206278175871214461473796086202807740305974213722786078089089075067252225811624216885921038572873720312246981345358487398591407984738872346324240445161035733542620842476803100597776034125642063693061134884130869028240041535309630082500347784611939787573006631800509583752186318983142431221506680656040864112308675373170952739241132555613578841621250831913726834637316613639016916136635788202714646141078026786229327157121059061100847036145026590885318350307727736113202909157347131759257239817986253839867876250993118316250195267362565777105765380736964307657781178987619279427930570467725280883235381597078662703771304693443022874535497267012148763309624444227688666712056627080830698054026978939774864106954578688813187581170069485044659626570771545442790504831467508262727477845749380056644202062548781675154932406971588490243033046833887062636105242624700817741010627913778884565022068061123879044912658382243168346154119247220425499595747108778720438380881750146014015004558574141711345731573509860504625460737774955830741871214447787960791181980193873680846134294236724660750874032078646161666689042246578228657392243903889595160330320172125396261546643164299694809816000294185947028415957840161071505487946053905907908568809126346641937469474709267178364835162051581170192742167626455134188492200207302876121153462029068094487405613865486430828336402466084851403064438650100369589764487872581717075075084298524468535077598600468345069378584133880832031857352674982912203886534689826709398332734435237711359041915541598191223642292458370883134271654648548975632068818127447791086246293224604417129642535613328078804653080344260756342313011597997121707585325519337883421135611287606039507806802928681500602195487700647636611310227769450667876560458359772433140986695950458064413841396807724797702812407288045815741481114954105699643379309041888086586275025211026909360128929639323330912387424820724936468855102180025429604368613537095748437273348681046454864401564665512112615457734242105158416719379614190755397618713460891602279206184281901991285847337096084426994638595939140671235864658041879800257692364959615850640333294801485405699602197921536984320361903751804960239654619970024873400013087074487654891419804237146007231423100814127808451021988467322936404026385130149840282284320436733661696807899275573164683619174779489630698263722964825583185846918681821178707920521588895566674497260693588248594845097576123874831258247953792566662230447423082711797006535356140466370088045403712662300569171783703738404886041100456115557781785060299105521017048591838009185957867688596768647192638439079718937529644330163422893269410984975029522874503724886897616809480903294775097168084043930402716796486015780327255508916969733464724909650591619273023694518409004535097660903702666832996463832338995984609295644263645484663526067108763704311796652798872592026373688866873926273184536343682918381912185223525111146512482783004552654329292837871907142683597342094849263344602840328909893381624387754740784417702735999787430861274983267511663056080362394780801914142070234381309673537085115885838456893550680724759450971501572952392818895965934764603284741678676009164865199281029539898830657031260574675640782675611255150163298224519610806754621667341873711232043239427063386412851321258155958730949687114654414697348913878478920278684462977568109011853216513114497945397488165056020676157531204909194257485263287556504167994083190833334608238772823181503785231526211016001830961139971143213630980544892660729598829592241944475090964232832998091586066760910375166706360329890809193069779418908701771204438819300393526345018950028041847954383866481747021115924480495000127315880608105495300014263832587894377451612047425418321379984127777695155749312019860936179209934103977807131841512041612253169381087310050688427643321044440136845622173074410780958903892959362058508754861904702789408799333861160391136322409757577459290168446474557441669219624465704134964946402408851976948715457777996832330807271968090543641058263415845386134889130697433798145706188565946992380422976551236966738810627895817710442346679133432449626764529052420569400114916286476261171568000164762680729420865916936164773156092139807298904264422977957024492670548300636148264498104154460984637033511773645454961594034064451460148361915921250235006882375584269334391581715486876273280439688053464722742616399389721661167393111022332009674594363243246044778520777117549587164639302579502797325889995997145161078734943772047677659664865130990600807527573134118269376338515641574606614550487117852906458823391964631498444431015764633465936778807120787309978940402860004510787090790651672277118700276752866941503164546728695262017467745986465174047003102243388545397077913024822560513310676072065721677128278214561097007096852902565655460738826926299404815398210974630867310278792920932525444849138309146386977145402561754599267302831488517508287073459169704162175051013048634186062121416990052001320842835209417936693269257738535797999410682121908521874883534267756717612020852763414860442122672724732260921911333692596109112464944279091714977488147572517340434240013052416177983624456493999708617792410161277059214260865804688051782585779364600579776226455305920080656128846287207908032432614912829302761813421684042133573573244705142447793941630745697497121819832938623638798185646262846982741528652273588199741215815295566779141776834369672269476835990141214693371277777703698646295410035524516901278132413650696356936567536579995882348423137838982152816961934962367259339622072588999849551269875143121178827644365201509754863259540842629318802438558236383363725876432945993156979798239803034686843168502766317430921387539119204373864110579354739351403101203067143585405058865608516626168731031143985406782477613657787252666512441937587165992402299709154957379506539882043452609311039033192351886063686179153123428001325767083590785768128343599832225705338110650828829470375726196446862580095285410181691531112372637322381527460291462812290224158012678706412115830247335993756472578045562296982787985937795232590295990132711796527663378941532386560022466098022485490225211145496672363835326252549963148977756090803318145160084694038586718287492683223569711769024173699573811893204844572102596957973556259229586133510937281005670292176207879525098907224589382135131465686653377628339915601022006616919851492786498821347242864503716317766278335617557682259576640116695547801784798279913791195516429120226675436904718801574859761548827852166238797169383638746503715592879716044383157581443535199640402617665459300825570774147642277755096283014285992716727178472153152570341042289180353487148777353854570290178732067877576219727864248588324940879258105179652526701384791953026156647871813388104613671515824192434083731464905340251512920006899445056129477317491643843439877000739798814386821262530153353775246760222245206949775294953688477269385712808849255037286624525715223953908923650909184640953034945565858105999251450186483640498428503020300417399428112338395979439076757496435519134960350584345645093969812940707756624207258142862999153576238062408734971891531539515542938332804549071476945240147749363021561456863298570650555689589477391469658816366245294397690461259726825782392727638290160830641637428340760981117724265350653061044062013192079959526623751592300651468491932816426332566079944301355028681801577334748030085952719504463619020770605161989710798907547803697552316334428831558278459602090967177906571406251130209303440109722615091435534999350224165747184975005023589594399763349142070298313753700621993847859101394801127908265837130707890437973261305592241167184732159329170745570167323232728401499448229102173390339076764768407387836092226235361735120300086962541882292745526203477444864797136864856870621256349012531645999093115263558416411174659988435094052378135418546408722037618911845446840606258062082635306297079597032306310117634205255022570851550532131456556214796551299869869131106367595245869316352583891682213453540734841784833202254442783772291695479239617490831695303693056703232881632903059096498169082610231037817777078997774183192151384691575787064388086178269656299131348888937961317582092668732870913499377011948783104960742820168608157471030181515182571875985006655124283725040891019863339315131050800489686715163177133166712298867903424593618194546572339194926907398200650738489171844167042859127844973932285874672760672048631900988815918856846437072826018905661611640471665591933729062046097148752987977065504339716515551977895114345460562366908850376996342958057253946475758209407450809074247353385815964504133543074799936913803117950705296462451786881946968173139084438481187074299252299930268255194628392275283211968225212223982232599995774464602951022911432468502101296809358200934552041210020269630851066219262622635026155932267488032611811448967674436950395859822450195380529187256723653248248947597534532586625968557421885589877768115589239583952516222750934647672638839731791430824854279176959621597604210706350202889342024959175364636520900718802744198729765725176631269977429668191732291826209893322534610157889026287900114363695220571470045776591035690492912623035284652956194662006592422480069383919721663943944926908091210987310220766404613806284845969080639747069615933090795689814306966626080554926439774819587051026319303803633409697905484089761458855432815473864734024938606759714985963969643651931855261910368613507562571906237911109874037242258828700127465839417502568684341432794326063576557102715628698657289602785726201712952828116972251183776860473711209777965207349955664640214842699460370954523678783155721216703027862480417991784853573710337852705009236710628559678059086902929235340420014395140636104768356732495910622589527624433739276111489328460087926911532721937535341275658984768192017058806008907435478399268630844181444484829041239453595623389505116870825226352741674040908084609229356247273608836804170146819635952286646842912906998446633247709403698904336747203493927118389394051506383600108554948432298897193171293824364870757780169382111559181489274810191814503621985029822957535093035731488217153556050351143039692395494064362197011893688471275474337205886427469690508352291042220766884724925760032166972328490726465622574070747315428513600105118516181864527967538761541247090040368220062347299781198818963130357585798257301207133040762217763032882918832331332765955211897557924647010344572714661398697185035965078580031270157222369960377620133736345868356202498613716926216951287458022027762200220296014106162791299280522714432436586728086734481264237118378854418881444236307212017114789230910601515191327455602213890596062844052725221365120944382927815913980103894716699739227453893214549220232836746643376499804108760830112957178439770615591461566638830477825909217063307439785115829074800773981178996926544201095846352842610734133028933364656881081413103960867240895324354420046362801104257152054011348836354310662510935252025048318138053798397031662594348010998912852347929877164353167086449533190590503629314942106572774273515948091976069703117831131602254806402890423123525325410403397383747793339872984536734601199807874634158680279680525122689518271187077452839839382806014312285840178521972689629457204322171211490018282836318912329259680397785211279756103815193775988678371623046995017572985117518605207898048873246893872881437577692578270134415451270146852947391639471362553876990833168024357478501758321405867224099255997638412912411577053844697746252115347469833061397439732316162665661928909215447156304666179403542924939689173128084006440796169710685533536213829382833592416747923684974113678507148202400309399908284745668545871565510973657812546378110017102868411832336660235669091868401934829239448880800178574854433867561473055046802257620961751261112917921608821318776572293862338482440245374915946596867392213674754845416494825597808714745626105043204685895987236801953978975539536041214772057849958492977054266400310850675350951038749608144204285420941648376021872774305780476140558661485667550230427005866204298271016034613988527846844762146549355830177738801083876381594742524093767719944137376735813457406030221025152117982987294701576470457093272489471511829328080102866358596130677697650956092970063487716433706196473295985579531057247391293798034091397839638028597741894840388823184820361949126955206627782650228053465071873734879647605780637300402061318775978937573687200308898579572315254284151234193758110258821226570987102340751557864742550621604077215972846456912054378329841063864037464637310171054125150096970622078612396673144280927197107645404310928585029860337084144028270519482199211646778674705960688936496981380409163963391220391303560397052285941682120897054406265461252606176646793580306486254512445853397420333798628965354489584735623645760823685616187771444598391744370135704959437521494254819210451464414730865140436627928684591425315072681365009094541588549749243309350839966339995257954499104379705732958782787907383936268522915437598779164333762428138044878379673821359950343511968615589475542782088229610650798274119423692278367634241964578438079609932324850100110647491728844100964756937473602395104766428141726357445056274627748774048940497195793214367781194327838864996319834426054579480120947401617057221665585557433777159348948187517852269053296313311409610901678576210916563002568899552504040964143993013167854075598324977566873409303089783881424286436031323218893422043596892872067602916585351566323890709434118735907644660235931112181045609436091601656389630564566232915707410365155818327255222392382225998475239782245316121234004611249759397475091856370805295339302546097395587607660644354772989215915983675837722658561684914159968265428521677048555932793829045611448229093859389466938522568728875166994133069442680127501875950999739997001746520802895440771314049549562795271399562624154299991245105882761550905640698978564878522990233274364539749418450881762290909216856210603959268794005587198670685930725767309006569927419033804513846929662919310370999214916049422810178228493507150233221471291170480227433678068161261633842152538565618174007826362946707353640544601016095518339845505680198622734516130842981476100191500984560957095996776234464883225947410029440045517601925034841091237418224189173013227469757545955631065241987487996482649950572047867224873195921825261845636216689652597333633818106693222044149737106717797640183370556491340828368338896725249329171746247472938763591998941501891399969202930271732480865781902026161807531718636016674224093712413090945301498079876979347742505482298336094713340961020262660433510054198855598658065508208597315956417444652548091589732094910726447924479253085052765318187281985609575381752066461924963461978498192267539592293690702709851077574176291404569668748242931580865117631878803011226574889333584281416072031268883037160271072534773294119349623922423082861185513776356952789224232811585561528950463299563501604063008320112195945650082041843102400102271706842960523644287075378516137520251490484628758734859971667244551266367564300414853737752822851572001330063728091077407819556832358833124769027919433560454565351738644940156152239584818535033317613072735164721236215254149249153180582358988423825794117777574113796226318990410270892080438098041591170017593391968484273115353203324042585303136515739074053929045368101323193670147338349458420038723711884583421099641809520199326339066658931706633220750714042275301347939164840842349077610480099665575392958729680777243480306484518457360342296535581425357969619787513039758849049286394624021103896261839030380470396724374991213505670079306009938926481872447783103252484267568733287428608445959502026480370826845760805445215702325669322645553337422541750804811059567002904076994788948560261350330054204002333415593822581994047242445531330320706134582026552213745839205432359840808249679317143226704897854026003011069945309303430428455742840012405916591983534530254435933862742732740856992132162430883233447680892534907695316867847376621069498261033509651843711578873512906230129191601263968321383064794830565834318304767095630998958664595056831371014011019800461183833368814054799286222711259999406665054884956084148663280140372233220261375670564556611815392180131957948035159068006030459171422704412631392374773678051691925191559516877323493001483766294368545512775734550765770823253109532038179930845981731058410636448844969699145222044451443721221078357495580980789187698134070611063907249782311864120532352318322453984228886463120609074948584563524709831871364273908552758712314039312684185601286882959338126838025485831372223599345108396859168557873126314217944262723325744767199352445358859741860958293236694094828823662589943896422035446403166333656446471840325926231849475169987281757122498200667359571102921567089457212897261589025932401113190576131440818103340267413925151330859496150233875684546786972800357829042965073935558080803067973764958709717689707023650871618681811525603843827086002590128735358431909037616429850474407322519585572526804970575453231548344347335584850160754048185461169547507211075765392953065527146141390279897282126463539897795400875303639235941726898673847467802504746728676260635133917072651224696111387440126401985813396324867594493249683113511722462166740326354536603462246622650182735273772340262732766691429837472673950218587973726535398809989217132785889910934216820055756114790477405738524992834704634168543826973553245176279867434265496606915364244407517407511176937628063967105958619882100512772998076470583982481239365441162655995136839644806623504397878259703309005003462731841706796796413681313993580337930008330622702838072725421637356050913372243483619681629389283677406624923502785623419747653431838205902745035863323201228201645211686856374413027689019707537533416555392503884850166364479121064359406371937866301571064289110297577389576052280961378976649335283151016941958560777720790820835994983548795804498995110244142931115487725728055147341065647389014796701040116256038027289656962511598230743573152465633266076598052995181473137998633250164978997563939915247785714966955682358833606544929660976655999906317741706514436969204072601307307421738433637592228578204894995590479283940556327057159887970576223824201324509672708583626409360765425060344489643221015166193568727820566098052821329439376996221472535658873682785468205907659349951751205846272503236467928180221512400440269777177282232131971794827832599929447881585421017919283267322330329473312195801359082313181413959430976667358408824168077532303482389801616982766140364869099868563890808295579477595817365589268072673065353335009597339810184564066840490945095488266426191759601421196607769516448357288820231431821282585261970215530800007801830789410060826286159628985074417614179493018288606959891961414849452816025410473412485013269420722834368144460231681970625315046269051955225898205306384538393718224570573487845421434001356759549078594580403370682169154138510731170042458991621391942619220221406625509477790252194147012254234054809278230487522435123062460997290534025305413900886339344623346626154265151396172840663656788313319154462356758856105611000623677873741020777758112819372088512511541968405504288794722636820501403075619431283197382027483053720031215397406566440463274583020428957084693326992212176929836057274797657781576624923986150532777345508187016171428425119272518748065486624960144475972743566827036702255862746661268029524063930252495989020717069653339081106706704981846381922609313243910360156131229956811196673187371052686667608753418340307418448906470134612185856927543491720517074002286929414124028135596915034721057753747036412194551820443566228586255814382779328800300571565126029448752998723022359809367330625482306095801530672277540398558873835086692907367107577331508607523505214332838250945375049101484434809317066116300224711153413188739930574982842020674894133596010479180530090598896373413792008614100591768775001738201509004733134623080332247843059903835891225943296725239121194011804850203556997801544266724070120100361021931371477747414658142634927409259424587124474343382592554880445864065037603792460015685371655234306475983614101945012047336206308661328291670602542744549533705973515637189372711338714996910240868565329959531711396995438939102550301411951154913066769294599992441470958505575848355305044843900690988066155790346653843113558974006183748546167304776032978203781567942728682453848409484198325626616139458027120672975387810956775527204734997608840485098761784199079634780850212580942798527944729020048706116978236771069933909093782327060210299069857596014398956792777613435174718474088626852796342406985884347391522178785609395857986283337361602783505856955741202354571529746731636271742437386336928280816303286630264467210933465532438950681384325125237268357820564017799565819512281812880632124435224297881707552394101055407461720063477458504871161376993029255039963111308315833839554374340421719398607228101615920894873932163599663317786976147026128448916917933018988966018579481535602444201416464571336321157821463287372890147773077765217621840178294066464815966599733291100364414004787684465143123800817329454722826786055522817610669966218624233550621642047853653592410774994032926259065018189142732251332359280268971169724913292770836407269114473986104446845412657816358494998517466578718283682334508069742295863595811894939729623864691133792508325859561196246185071147579807436696778762687645042682174324852073114158134738338881466269344905371181837827167595645812127546480863943479565783042025093355212551300317463664629181257024889162134050599028545255302573579319602746647295970929443821526342736275923254341460503721345349171601944647797872862755863610775895292854885400212166624375637761007511867008837756149807555731941406682886778379644334058649915914949564317613115812306599818102648214872990546914613393735682557295710932261769643442926630396813889870361876113820186227657705973771120606644425269890343067345400415722654881996412461165628077525896377560664916948529810036885657867965873948463804463866988352929457074975304287154084150669979269779588918922764416839911122361277617516218860008178961360583591042343936296304103328323015496300455960207025027904848016802300933827448853258676515924386227605924686829793821928885836175460263509093251383333730404357582771017715917554600624421718397547006917402946265452639254214007659729807460387449134386575103641946657764549568923107459332536511154440232107356406373319792046108845194765132902982379271355731171760992044615956242175351509312017908678696726854902883872984275916500460280171937009456778700022530654353064027294544197519198618504275990320588160634494990769612102706107506091090336654835211746627941002114436742194010861409376825044927248570715481339287362359589343729536232619921964954868514692828270882163691537196775029247847835060099126171208529798334439394968560442860422090563720973607961769288065983737229650322823101525317906551819796856756582482992265797130397883743255468842969696916313533026704303011348365201110051384730614310982875454618717936976422640018291224030029888071414954452417163406743615371181982372661060297888980612255478446613745437974008682642033118650861656256850575159400823654978469357739284602845535286124509723037407155672724365572206564443603498129790749847739194867722168765608516314680737423060623325069358752216088707743240898820887138593220621100194724841653783479544712657508068018420115093298917184103168651213016619996701725082334537024396174044079443131396564036205019503515274548196997501094663415786324626829659757725759830525152901496588828418900758859772093135627524470551518846885348201080368959713817926944359918579311573691786492790940045031565946409498155035663416023787088958939542303615177893629464945024623865805525341700983535778158375506024142191554097890494879187905285711614756733607530815966756390390926953829278803858124056619680491451955441353122713479131255225542662884460844370001986529971321939871858158754336811658942095566701335108567608271773087267494400123722028769676027034349831957234858568646386318283520022422329472719621418869456370645076365658172662164905821943241865440609199380394563804039367839427718394121976906323067277135342040429083576652709588837687776153984246437434899398024013893664763789491625595593648907010002405138948411880005517913763750573543164214542375266981372332026867756178827396461309724870814911297921557042645262471779431039428482285476886831001900528661924586164447702945580154256246691286828577897471176039458561752898537211150284220804475691895480918245176994799325512518300703419539857248173064913096247472939827127769542516385706200360324040193442227118085920884962821803602253517706178549697396311233323346823223218073903000991764755592293467795359803261079148345282191983419171588948674969041515079596725461941309808269173540193877225919112905694428085343747465673181776356357167217252241217548818164025106916933858422234713539961695317731102863632042502061425329480544862070098358647380842285492238847592694749918239064777735371542669421586213734607499370549250999743250723672477895594002149367106169411125393753365762790270132423836159096002223393772174509806440460272153912049145113341859634325086857094194499777968551863087125011763898575281376382589797392817972436253941511672092654730517415077986554252764771837930829936391638010117088061649919466940388110144097852205067557419957568933878955878691467851330739262390066639805933442814384251583154359270963084993236304280471612341884300603852718088983315184889911129830234590209792506278084208171285633991314060422185262374881048810068633386921025516471899072106983823659936813074530956477452136366175320418191990616219402962234062719902300279003687712365445862337513530660542030965938985845652726977298609362279374956281157191248440364965758305580166344845296152024962901671930981659000321675703006239704736427455149826679957865908517790996392663523534405472568529574385464660877390031325936281909034614500597640040152583815869529268224293559881545343749454592083950058086772026414380177435070937563773073242625226196498642495599591179517069224805148272554182562510228006149586903619822701242146919588077891181543920104313188719860798599336299855434366624585726530065557929756560753109050763702496201256824521696017202481298969019548435871376536593843362639641592681955232561261698169202565602332309570484053765387901978913517695692590918471715625645908645046549815268036683795898829004815835011933143272772782348625361799630391589791571429425213316695827872852108382536390510206070049260966303395363777924243889066858524617590660891057129613912858663494567014806718629641488446363613919842854173026134413014236783596881588551858148991509686231382231478226793572620874638235088794762072902982714867642622132262385834134256870771120253897433149196874416966741725971049201003706354303392101878118683951036817589819960555140711270002110564585824366242901515011952954014380342527060304194150167232750118220409749119249934488499901120388763791757000533154230484697284103000766610535853896115296895711500713106141473937400411301448423377219703165568335721711321054192781620845033289624363427754827973710476440582318539987334729693728530758131646668438401757600228467229018861064936015457628375111995340414050319341633361991590487366484809987896731717187799628287953483956068060711164706490058262538929814718386069850626562739157281172843653308731507947100864907694118650045813700132705294394712638666245848984333648018300554918423455691846318391282505958536431407547048875916418838185126895515095980670956075254756479052488459583339045002803440591014112311274598656269686853725872619184706811560924557868168687922385245021043154692711535495328442725226858290367185390520656393890240856354344036376219846782597158139926968250868433645173298971841469735416380048877144232246730423556751622468663393050904913660313309224301588801538742601714249640549831417573145183068656586870750078166607578336697731285383215866550861708375345960452484478424121075845464178358761949154997222725928109925890444751617851293090133874397081196637681929515449543252329808348737728126662275380122716853079527549744677561281191466299190647584330257892650884372020767737862169732909962765108347076908306443381883939501629378956403759522056100994144867884778038654195772277607242192965603523661578523897589544674071586058551104093447436021256792009898956190751797758364889613524810456082384742936244313781086432095555308459984751594918363760256871906411775511016800719732175615078790476973560061249607423574869552537083302887048055716580409786427885358708936369825071371925704768476022797551077835243480798757392306594933383437607167781954485889005261011140094306883293517563021469920540711039222648185024442465021246638645325695158329664259193531637606690551169506215648764630970042717388826386196252434821783549967836600502986436068362635135874272342601971746582187276112591417279538382535345709555289144694779688401038084215385228065506336083656182407306025980978620391573628750855890034795438783633216112174989071011783149753982962520157072538993755119646016818923855768407330673100319438697865943088517891036661211879261351466580329827934528527959348880458696423658115079082429659861140370917200873108370139829277534522895627020300783853201186908633381723853200986318539908973453343614274831401561479236109702061011772393283223170219975413879811952879883238818717329742172054986215794269023914604641812131090969129796614664624925647464314195117516713469632676519169965212046518735100847191923132644549406824806696293984564574838932669621410469190704150814920755310976904008092916056009592474495177331196264863203563749304638728178948739892675790743291666928043650500717751533237051371296332226619543511483505833645929747696117004657719758080604428297754136063815882015348854533837330164357444396145142145696868502420450772006882715179542498891191691922001403228333136185946401220919345633505107639217089669842701655378602253932080509164715187190031191635265073247062650018432969493741521049037982234122475286793636550354239110034130393092974905575902358128098050060000425754066627738097463489735623582716834959001002376086484540550037857146272978666179231718930846767616786370371938129878750421997320970959455304374614738852240159818587495300498114858855270024301363189656806627199092489673986708203759147989265388876787514462917165063599378045898744012108213766098002689559785904807903431479645491894034507425237153343270022936644477402170775752795775432481870274034323141152166386351720243350540590243980850710598077352499118433602431065286810974951862319320972499508426709171415873684202551482642003977536328501252826669715803367561120388532610767178927419172154839157280948273911168217783549537383840857842165918089365713017326705997509249586300323665843647897509401632631704109680991166204951501450588725153734852397632289447631870321310117163505385538005952307460721162389542257980822677909874468966135169811132740375579770925466739086259279509470995620554209361669803524998452251314210165913844665604724885932489698889504108902259123856146386117283884371891252336160910707143349059044496177370339576501183588588991642088720395656211389060798604484762768596010661645073322500702599120603296375234454099952947677846334137496612896962651439415213302833177206025662976307027495923416625979321310302437389363768180984860323225565817164569065756539986462538919243582892079964642346529908189499121505549721129732171809113776052080604969692068589004875506648379062983908320331321864065968004747187222630342317059380064768351454905974458226015226255356915582882764394545073908224200768717569786360978902154951587178440618978350992363070857031395378250809490325779601655247123678452433589661161235818204672357373623856336304021765315202704327535554704702516967000462408541648484829627619748546821598668968218867111935262889916650417090089805855935883868286289845949587394834079787687847272893068600233489218092439998126804425784037893658340730958858543754361849293963686308966975304037058372118826178905159408195859227405687404238303322417763598716327829232822868447420470295598744603933014589137377159324289407265672699535746089590575550055019371298958192906977547453896224389032669437801585923084605344709314072866323252269183717151447951599662293749216135754842077917160661932663185616571141808411327814645901436307476962220939151442169390195563006724892696130064511108022082937522220571849018883192395086656151564427359596166531974910993297038537202545671969769754182150852891224102571135543122144512976355252491861228058778874411782223906802482690267184337056382625534521627156999256858613407044654779711738867857613272441389590069790094102904391631891243782672082834328125158411375039724840377299096923076828994418628152447985482059293163505570728262805398766170607227811193424276492945694295861729223654122397641702855893059880018068144318405619566431289385687057120273307274692630166385448973385589246740696016384076014924418679921871167308499910737233333287019901604762017358054682213276736763203411133279799179861810887656309457441789235948268510358417892458456847295029110207463312119626270430948345132691958712463787110345307004286006229627026526740235670273794271199290892760611751084739859252597193603487254339448229887163442773897807305561886767594295658505186523250440869819308165057428419473968327875624275815581293071441123012693772682453535414076834151305072835413800539493470119370664643145132859214091780640533412272777281750100660492034572016529625987709336942777556482954439912358256548183558841151549877944779567790576672422726981058772866039855670209346134306865138863774761345109701312581932230192109884508558210976805364091658552511643042377274936319443385967871102069351217057392472893265823175093627058999952856096041453736117616163983393911984683221869362718570890132338410523756756234190796095024047428173733396995521765751760963781427304564413945871370918296059309868208535962079837206271346862613254008749742755361815233037093611332171742417029304773803358882675343713108965780434317711179905643356134908294918884578015068779522293395426632356580727343440834060900427608596444560269942730837982200407052036500467405162177110343169291457456264685568271682398343341130911145051888185681166031869632758721226354404384333624401191018408416975992751517513429358326081254757688820084725385660601207873929403608729964204991221674690753211980748782729435805633145692579085379001661814972813167848125841709631775787552873298512814599992728021497910632174523746555408823849009486462483331069937264520787901702260055388827927418729192816631551320230823921434817626361424957952100113903011739285183135686105373828591699001263677477079378569281009187747237736293145529759094883831356481312978622725906556182633533767922295247949039855632816176485284324943702070237308422655752479514010689307454750735436285453327172638713254832481885322328433692909358721047468825957822483727759539268751354455510192696724553605554628991421439791830531144928841659163880666580069522677373656944757059583465425637763834699905759975477712243581959294569314453186347295039822474049321886344561214656605824322345685391273239954167080857470655674051660431408187366317408378682742533563228635728761735739393439500354806486540565902994001849687535421077693350779340220484212376434607128389867057988703523939172708408958276997839279239882873288774062235738070617472861511163330777384717855014564739858183752851262426662097445791408337215399948194948899349527227971007994462868216477396851824763011632543007863320664973016698963322162997710048292145468495939563671163972374497555689319153782005208185406655558540002821722439842250442705388936897483769430060630407051904636495716649046763125978766486312453112412791419639713318763698637537333732951617329493319714435731035209965600816576432728753646445341197042597426766741389418024781689857881137073956098795460307714661607347122842305225061019909328701849906162573414997146933682517745813633704241685562642893786169997978731411722687079478856311472124289521650853110807645534813167149263634717972323229529890172477177235774133558182770225780574477095288298537574180151103281185763001447230793014107210837565885966579617765832657318457483221528650596064688929917879511391281010637240537885947388369412697747691556342838518789938334232198263787949039285539385004131164475159855804675068178407641123790864763719644761440956740041454948879565153674660911402904006002593439171393768983781922554684457729053012195098068104348299627829957654201677977330579347325510781125034801182263518157401645724277151462575459628238087822040735177552133061073042979680753899428992974774910699341127068247769660150324535900248851833562760627727454119458906607530061363520410532989963987760959563811587140990941147054235334899623510165069520822036185888196149743833480714972393773464219123956268268310735051199741534219197622967035673421836162377144409066777928265100974704041445491502864657208550781175364750967869079987035796276371506043701748868896728985488002988586617893152916825346300008077242970002093216029671939991888042872895279369062203489985577642611859788201054608752414394115101736514220213652899832027222840713109622125682337104740304739863311159009890182775621252226134970860083535352041792685655778591067716938201926112948273010316097593449463438662847115981402121890918053510288985289359975494162511857599532338986622536462128753771759315932920476918584616863752766641176850170829425713885799912244058110913454554562034728999193112688734145295397084974109007139851188439008055321988800108130236322070456672736827659465442220566282129980618227769860554362078074942066289448718011945705084082532816481184116624980454754149210955535521964402681494226110325987303070571976482796806266675575705704005274550851851583630197901296545478113415863520992108825831976406830962002326015919082537901267615354760535777212211508629842046365202158067647544001380054610567187508259500582361530963383589037184547319621046788008283715104255832330810482490929883577202260906232391133439998391122531530188405005549432101007244148747474848422183285428647241340814534796082503286441860560745908822480834173444675591415626405427664879361350135000374886581785659693541616789555914572967899265060974587203628672728621973088175702676314129561860683623174391391655276625197112991575034064092312057466309092751190815005961930686196486443874243960252424997579926715944089197516549855862163785145235027410912102643131692467228805991417993134185280279839013072970707159296706257191657938892098914528608698962567798545598260526466615887992366550756561565554088790443816782499024622695229961604105035315385338058732629622789504954910750908014722623466673479716636399712834188462494120666784401985821574526119753382804035467968481440864474604277509868919063863095464321478138600152069599393543134975730908713073216357586101680678729408708448399408858444036045467724559761357775417461286792190326620674032372336680425932749131607056971065910409899463583798697880721948873405104019752771051661966154963229018223788431652219285679217305700838419205146200927951281085617476494818093393501059642554787558646427499619341750277607737019591463508417930219414243518286690032647340585972385996535314868986924679867932929444977409714036577852000920562678866451080484197768065425720573083940366534716837086986677472512030983293416983840889567225066146083516359582992032883836965507786375564428945000072277323143055706847699537733909183259229609781084237353854569927057282550420663145795068270804368032170972610182190097523857010409341190378739510340240023930335842286867351958303122655608159551501759883643426281979346303294852870628863217760687777852942549390348477240871259921969614581545103330048070807337353122336482793407519211026136331170023489847493120000503880640300549446842522343962143493758343316074303370711073618205453764345146092098795527724512278719404889511751125892324796074657650132489587028798291250222146544528900884258520994187770873448143465986779723556619879813045354570161440657087827965265042823528907821822597778420089505115054537822129780126422254006035126541988014238212157342190598156059387771734450679227050371853786763246608187274005300281735859748288871715165666287997857864604820640593195494290788691443727947426256653263398550763860271829661272085613614407029792170381709256349361954000070205659588502068244083679060200264678046157371254676450632673633259301260514292377656772010234254151523275627310778465047662631001478588160491785025353130761783240062269356498126339476678617110833885653495895923239092380199276429289773262621757787541853811302898047264008062267678874770378141801801556984665877624890700073664330654171475976485800147787392675897214882811435797042529582308776199704186812398061597173712585545349851853838473641968025869357722342225863407708544531295175833394907955828400649980465381241125416027320519300189269583654165444860407615252892951867744338766987408947782588569891104739569418522944792844562323459452517701620439682258352186745878599099649463046180268875388900315571796648750730901624889567506183867258447042790189502365593116322209502308733027139523662296386628086266515042594304810471010239174965617687994175563310596404374939523582445775654491612286990217347006736877415561986669435406814928740089896746213148691469119459573211014173584524639767764754397937690927520967659164416476978501069370618097226611171854236903102833803404432577941777463235614565078486058287939876724972197110757149728224231264246817875478648579328670746850221782863416021381826901573874679287869760061634589801061690725530331195676141152042102423751407243472665830228863233993898009246493249822001533954681952904627681901946297584909215368770054820696546607833610220275900307314678245683100344331674645296870685810511385549027317313244203759927867994841480054807395828665643411992630570205101267016563126322497683845357089150868882377451930758526064952439968643542306104188937238062088523899003414865691999348220753432946957699799363392658334680790486843750235871839491975636959596454630757155233450133527551552777667354885358239814864226828392207956851168165082841759264248872154594784782042524718563233908903928740937016718326271329468056181242428498122456503228968134524236748610380245381217790356230969607302554418166485547322033529915306094663929502958795106510172285789738374794225164613873824950077530583445324794634187599042981000974639741083045179892057100873815332871907048934481120402875896115102760457549157610814537318530707325212967349382380847379010669744879418393187946780051517641894690770291301464358232859130528764851546796131275422412332883415683788509741115549566402620750216673909755268893596111109202130087835963635845177930091540414216804476630916644894704315752445612744303389579040052572755910923515055237412602678041388005382258883705557157499895276626942903821987813616773909785675231148154380070475689235186990760385087389592398609448631070341679549844433720353600389272208516638018037384482709872324023597477575013193718080998092178065668657234158376651447062270641215723772259433069259804023789269376880963630361602241736708280614131779088580679406951067798425900310860641672546231417527215317372196767065050770202190354254345189534435135095208834492040922437473509380147701306884369116302607131122463301135445782262650577804315070205665543732146868872981997097525235022317403300508926318502067739870249877224542572102363476916004170325759107525132842728503557341538891305330907264934726769507765585617381271783230071202459758729661920799579568205662963690652300645760414903867139432727112151985941713247566424257736592228675967101417084798950024460888691474968513355384738470411521579149277919118677559810236095753353994402657309076039146813385615348387210322838839650609860927922463906347400001282529479866328571492067785100110822187070042090911387576240984132338059478011472892250290396944333115286705092929726861277112875615630824636736726590786947939231545471705102757110087758508833528780271037480306742672031185075212317675734902013244103326590485843538027899933148630891834061125227918154047428067857978765448541281714612341721025044584404367127538956100315609225803188099968559046883841608293170126839575335266235626418744899438646775226637258136454534084727527481582748896450792936580589920797448330818118464832949320786055959337805185149307843801767079988093982903615565378526437707019501003240772074055872254258061803523528481474014948292457047143284912218743030677221622723330183484327583153671641854260691434043135655799300684712225211950771896282225917312839875378918395391580742573963978841712490866025766106079572549328177696922503494973392355974942605055256139299269800745254235452582326916713849480077305178871634365855372918680916826829641052981433577112868207512856029165796920559945419230576560632681861081499801064027243437462236481619925325109598206076207407567271998130528580129274636496556033694341092164122126502393805239013092012126450235443159692927351484235442098539976441790175110520442214766983673532509601165119841095988855862022298236039586657890692915059824190831425102991025665024364237873203164062374823995441318289803670630898526188701104482638929591226680114886092737055363822512227564713636598814607397607227975699491639781734819121439984517407283971277042670946430184666049274628124977263569696059205276792543998746342524947594816752453008229564628024765932027722556223200590731509709107626945145099227443658628347412599840983069123457480977424279256907252505576641676011970462351038617946095339757509270839713193083822890231715359155262053683090992721520876840618151959940032948420329218013970431175332340703426483545777778532269880417350694563605140805826970046150693775390560202932489532697633367085333681454483622878869652538437035647156048084628552872205602806304846499284147261242743524429516492346958162174814448192551919070914065444409386608738945574259784813059814790052433202381213617920759402885316368314143989830790510638906904614062464709387857649278066961506689772082760880018317426756103274318743526997616881125077510095196557348057326993369696570661762600829349631104222792154136435241801942442745535398478987106399232504447158521363687605960060571147577927648832183561088923763155690414813634487959734725745376527716068442591484255592517712171542789042146065474465201048427276678959700572620558633022651959425793108597508335088115810192160840130196310007115005481348689704971944050790114600289687576049727787798747011446179827393923450012431207306593579442288348114946441981195838396396019664021249041356659807291414112725269634214576761769625904233881816112333850315941697702550877044954421464351179479961516630532941493682447166490417090143422243719741673573168362276113042616013080750307933940601432650260285047017753469936119360181710462950332196491703501679894953450809159701209512480684031990515954305732669255592689240819380976648609007154424906928251029767876840660385790562307235099452241194991038733155635246609019907892098683213067569048317999699677403301092779683924192752450563605263597065044107256990138718634964378007218043206782727191130716937791508198519014179237515150074886790557917295764561892515471453911672239850872777956767499136687181475670449189654521750777447321347483700322946705739507530035490539288704293914349579287151134150584003348945277920528532592581706502356978670558479771685807221454308130459155080502481893417192606219846426784614653172723544841703673855504031781255185045254873848086084790014010216917476786195177456092437983102007963023142702550516082063015153872927163856560991331154184648373183327401930657636013759937418291438065780714936444319564428237569222968987563751972984195142138460029794226556001391854392285986550010499679495479167909507090122404634832737715262083294027866560132204411676591631725931560885870417062337020840744796352339176117827330838302495744206013664861783552764679227479393386129018605513212988824746688524024611179565796045707779697256609635389172402612050054549416943104903738337693250676418981655496021791791446499371218862953123614433682359550266107548746401360387802688160760386609890821953863620227818585297602996928231238598936708272665383737957606081657173526168880930033907000456416060860110615167586716729154362116974504657111043998558125916102442206826635934940543995927191943545699452068598133106741760955070179739410472112769688215795273623455512345070719447963312760190131061199087327490738264245243377901154448758786365687252564491342178621627982473593170502580657790081475183673666868307545042764169135865853533354325167027619285578979221567500981805991092565101051441598065930713988270595729240060865537660972365615365506092621796564155385088236878570068007393171925286399412537160485240190398107478226242579299527131780742694314796082018305255490426809735110116618710945844661412766110427281205667897611932575303821719977058520459433058658975401838837883521677980265748326425237639213925180936300493074229916344082563192081264594437514126637996865227344838688453607731468336815813904806773352092635459175955829041927448790054756621419644646414435089453555948569812175142367817295821619151215720359988435648028483235207243384650059782904692494681339727082996874924656755088867510653796722642017621906467295291839354143840677405616194699729293179832835570292644450776463398134625884699504715426283552286702658870393582407325309351127874333220395244391277645032549901845861822874918762252103430071495962954907989947578403703778796556982315475170350560017540932523558380880580929535600755822298887721853892576688180310747701280420534098744522627029065903210871534293437328052325366871598538950392481018441252693388041668471093591286028709479126205692608017735636057028848921405616649888862326577330577339392794480506362702717221342801270148167432069133749872826052367373222691540436888237683705675122664218312094610576478366775965659732836836146997622115491588900986251830420807647645461777350140003049732297832536881688809574680256321391665814216910622913314787176347152746780406066471067877040412648293014582237239858381539015034329977364843510312766619924107646966768990719697225354851549294765081590882732803383336273120663237136256469679753049308274476699348111930498384578925839175558287106640138583684180760293829116802684197714315063555522603265930308090213943509226070123119547604927769585609924073577883002945976617576685576381775407688571413356709653741759701726755413915159492298648020298639641629387209994597109141575323126345543830411295914477465077968710253746058554745880877601808997498311142806030207077006592026060762319587682271936721909255058844149368932881343324221702390495472726597582113495462687914470078387141159543409953246501921042406801345137584179029395250671948718773427594487046954506864610405591960560155527524950493913987419926289344034749072292264622134783618209296546147438384434857258179317034081157009074684227480327450668228854965434934892125781861636785855189568571074397083991384237340265302644402455621136456218251856369181602830522354473409193746363472122355066964571031563419631639821727020378997100516387678199846200638957843459762479729292831033368579765626735819059056379110898459012329334583445878957188049069351202806975371356562403711348730685540033526843757114218556556282445099016632503521363175085587524623893621175821842265832293866097729700882449714258832653304657353255285724575243590400973354842444553881926298153006069955138173830272166899954914534637458591672676982838410481731564227546456731684972786350610102269145440796520431315376340145584919884271558944136965812513498794738581201025059990376673845867242841857587304687492003895793808584209184684446695440701663855554478427475382528717506516658536860995930590822929767999412506469445475500018968545902585648241512968759003476543657389177232324535088142469105916539231639551027053160269156346446939591024766577804081860015738619917032369760437576374503492964323176258460150323027237238643436255787509399364377140624080247799251415718891968732164042192090025582869532063765397272444180764336944589566712950731113952122934891274715818937429206553904913162234748571973367448831081214742793796427965967947591472156222278071884517405035043991343537776519890293105735193126231345338361364297757304803777432134800962632481432248788573798656478577101075449150393212911881697013699416143238128173447346684752443713562684406763404805484274974175295562294456498707205479957813224923593325536481352152787874399152143491093593435887296305435109980694382432626077240113566446759717350476789414813894169499066084459446510518633115805296456420471157757544300718561885628140113350115767783686158901709955887603406366354727356999407834324815923084005952550749466701941387055724832023988014161708989575366429018154099409184475373059415458630345989567724449184055792058803728517569783666982556493290806500332704846410415438266515799864170170659290587551560282022505580897331788123363206877968006115960242206244666066822040268643095954295370922971114836546784348531582495623690831136365118964919690222133517462343016357298215430021379020206655418586879008309654820180702123556072456599926171604783890805452959296303947913248068574186144902448299038069315562710792011462411175211967346787140585216343350077956830464853056573642101080492484048745967160135527138831131025984209741974487603132443569454309830644744019578039738900679857435709460762023188940252137282431659629059395291197921363010654350265179145633522173111133499454120556236327875251381770647347676680188396415712420733985257659979217974982237556208659424154460467807307351782354413177413304473120186393467489271484239064110746848821457443516202510040586199739250134357711046090321156559220976407115330144911264670901397226982733011832978809239711837084249005317048584907722072785302164686168037390750552207301718638080061106671936027012798885667431814297330715194304132686835878601138265725052929302115074918865415958897052860217573672480282189365287103380996413152633515352821189133281199169163836976052221637540469738042242857506733055271035239175362262663464977252108643108573653301540543339425127448413461839381850640581725668320260824782826594207188674996507587002873474928106633101460273844022961505202340196510774316320301238214407999169102276852356500128199241651058514721249793375025088911418823779702522761425320981281393975746448533169337287928120664874277012003108968159073535565514093285123018612826825320114151916005284286952380486689815575919965074822795076942926650671863970777601451397502483951340113570437698442543683988493769952130538549908668299307558250441996914980816732713154784821627170767715092791285286278127538543870474274350007568505891136968893266904684727828083220837381455763705877478814419690332306613552514179488254322577951425767529799820519797665752838983236170998843391792197868745820979371084858458709293690002400475769600054102810000689469151717089070192015066563134592291631471951744285265216553917459558139620957405690540105989785704230981974951531851595269100851186008721885522034581752710014814668677691810632684152082301891781052439502932660065105241367640054412828548229313581733071742403326927947512351610065042252440859498005193885677100716023613434742709477746511192782666794500388029788350586111087901227856748303006364726073283629362038607083738751426458000581272459375550694195413593091397546662746383305873945846107576754265080886044103258477075359583901608295883420009605186991575366486686706939882698406615173759197746507069405901544958199720008711485595071287525087254462650841338908664876071111246256596248329253811330352185366388860809639022886407587599479591506984329761836802882037287832467827973599474619347216233790050851004375029683500243635935531046237712067354868167270094365611079887845588295876394558839175341029742576831143905954516221627872250315765290137125257387620400281500797179607893915099723677577098987471795134793125438843714769156368837431786337253564276989774840109106390913643127416858632588582607417697077964279749278555773582829395947088414695304364691658142588681012081887991556644198572058513704051550105699791647169670795307843674709870471116215858649291133952534475183264868889692573720039773530745571603320121116115851974893150150144287330809575468087143793554700039593699621178857303276046900123018764602755670787608318716498592397749821056293305670836664655199799696260138516651438323465310316254668062737527499318165418960243352282742319671418897330972912842338128445280253173403979257303539732248756704689812659057464892624921474217990429062887595906270491232419943402036836207674907828686537600094899750141512626928396933523802792795125071551925758742491859824982378358997630790228953012896157120940421582618716532670183059847860288562595477892519800230626095897889408075139076829038306687077665270196472341968289705039173230661578025451528064974918658673003313811346667754082084924463444451642348891670887224646549875184480455453480940635315551397501781212587408792210260110153353793291291485985570997201082032466950040950763801998835073809958132237955877615441470498958064244587133582867520072524600107774445413876592950921129792652051533404066747164750405792181179729070363452878690027136715257250658067270086341630536744346292847531536628294646175002334859023258588323166273705855572596768564264195412502428977579009723300648622386501973267228654111330339588670364688723918903386165023750486875395753721291695520823700294153281695599833534362560762952482936485458670839719381768485859356178382964707574774870003131161126242820417718425155084004303210719809705224003537279729695328270117819446330029554785644529632142162204848311967118966319757204267609877962389887210731877232224607619634530404403061268398291060023039201566458990174404990362290991971444531259926125149392274614261460737304509378381371691612778403530772052093204934827304210472592130067656187725883757104813082725560831185599020713631760501062896632403116904938644051269688419843846308398039931356681785454483491630836638713253147049885541306199601823290363972445147126499077131963311828656849741310161410482876756877016668768324607765793898817279453289788534853535584408348981601475024458969045549074122273043970235733506957211031476577141231183843167069702407726663036662445744951814373247364064587409612632815988750176736345738012728260055969295138341815449161398012159392589428393740417945219433632886168569558194110463663409618966788816272772925376375223291753713250708875761501634252214103471669826671350179640690951424731680465546186502038458014738512099994843282401627075160872384538602856552583330353755100699073705144437617736358242586382168401602557923979916025070343783811444160321154949575717542512665839043197494058544427744145474028177437783841949445355418668499322754152600791257169596689656385694372467998589433372198509620802062058561163483797522700510753132891884034040444767764904881746337899458358917369651492357673918027747642194889780318895341424589027759730074140152707559334472578105341270723820314409916679280644406455326877403384100734159574006178370632856387461958838045407085225825726566355841825090278852026083936676019755122586690820866233537598883560546129082528158692451464053396734056855603457315720714322023641662601471588944201618819611024315049096306896933361702119766681603226753813398906383648126424971993395000993296224631377706721425384162681932195401511533761269751138096043695450497586334331156972883755330457620933145175370539580827185820154044241498818743183239045426227906954416386832219844962076234959331897210651509133195243844221053923620887647502794010000260705419052329389150855787167712150496903823006007251095705145644295428483583027155696003338083689705391266455296587725071941264519956874224903076582393329262515257085870697533001702948019306012518855947551041482789590638455339288984223346082909715984521691346614376721453029450503302233449681935262692130159540093622632320645599877283834860313062443912094935820153894737582016078201622758494927292804453730584881649003844081845203385569771823005317786715970437167066163927538617108453786519716212894706909846939427242162237063083666371254619100131130326422972753862961092306961879127815126444900979314337811909099678009959453895378269118115679116539805034806372816710806539880818849964141697355567099158528162283361069357375629610536824250074934559805126957218556941037242846351325032414004502285341193168709507944016335305591092897151508660092488084942958750782365412601354132344521255501702288984513635142180203016702710397556252631887210644211195856047882946866256503222020843080718202392071361440135003980041090907942395635298944869594033942001745250375708665740978906156463227294475995342815056206938439289213931004979597386325499821598988776042052866275370459676391523232616269566497267937197449166820456797771714510248267564976361107295217010953121067503754054246336452259950407105171365374758559287604870503547627447450194881421920829460221143644153295693695494683232801663917669062618646891557948021154968706934479580822812483667689959306489323310672080041759660298938504359105438264443969507302830602166741555529210056476157590381738423554210387420953587442100006034647263914900451849905818923094639343443223927537083515957404529560693260138190818147075858820740634000552241331611569534725423347389261619590030138120386778121558695457253402118654626050423397555822466697327342697202669466244585360864108171463283015820788675403523647474886594418499725538065490356911939520832990531788804636780249770947878445561697980800906512362736132909528017767419278528226344060958686093820257928245463756894976079551310608036571503396527787531853835091603262606095467363077034577735170659152879108809673333429583022243341631513963922598334610185469183963611440757835197788135331763105892000305531592692444643372164251297360044250196741337089467112846894364804380185971032434563702164756621524600345085118784822777045843629313064531347884077675618867165598445292914938123091346104852766942642494106354723805477189754366942861171465141567635797155054048878568161223711775040253252493877553349115693085986147202840250773680614980559208346144274792327438617110584394581902707497756915918426137656641008519496391391682865871731404790631079291416296495422635993436598687743622576948983762499476444927319952258706416878308260479838118821267845987005184275808406503926021331126983870496200946410481599673901244037898969657856294109768247981740491163716497021530470118167445101936761801041155338103561155777902012287428571603260645775140664914774695415766593334638922119462987484578435830724127992607563793392431764641249403647648071893072302250226932089996590065514808455238752543576210080114875510287437154135065967053943832623368904210088715154068241798857462450403750249383949511478973807314610119975972385029110860479834102874912065731593031248179437753219078262769769968239001072663979918726686680219845860733667658891650077029074442817440601693979170372532710108291124361169094863676061103373106414721916967141114501923271401684133946415802062792773189458739932083775109153619515918087150462674961254311272632127312292357069089516717740713965881165529166413640657195469853774004135643241980846584978397112246010582352185528057534128836970308397131700317535918788535165657879565739529731715855635945187148055375835431048882050030007234522908927803642327576646695333392392723468080548702489939273576300433431750215315276412813530679974651316657642762283392265813990289289567986864182563182783046368505306900135991801915832527832173439428298550294994950404856428723944696751538027639061910989058029659809820673839504311823757110316699864014241208539351768299100853263758858940673115979995662028141002266324692299834824708785240593447481715198145359034065762879740159168707721514130611140932879463605080450330637107545882380803171630189663949628687560057561854985041188808550864750853894949731500493881384130908447218554907486010439787064030270003715773117565229511943733163284417578038037359292760714925252271822452075642901122241407600891309327212923882525086258077615882938186296608013727738135515984608693196614389246454955001332768739682428119656423814520755608468591168395562156978041148140512231170813568992126336924294697713412986917024551686549877363868809362272387845017003635565740025004515591970492971889810007156659314852450143069688027134340349354856097508014929835744808748004695789719603444754777378156413437082723226770949460959115583275234471411098566290011313141619143846170208961114692958377373510472112863518198404574087891810555802403711887277214823063805112509026632699090458236112846565307684294889026944131328956155042287828885311508042825045915508612520571483596877415127551877745828973164846966016788701341520397713962695154464217326329161154862660328464746568711841968140081133563902416881841990561055714461124460303836736601310084444128189969240819890241339613279173023865563230924038094438269068643381756195362409089751853181748542901298631377489418225170108165235575173695729977386700772594143788841927019188750175987150617283280704461265065042987895120692300880712369186894533558938260202948774553668802807713992651767775795020675983004871927717954903384138957899744367827333283818900050139689357583467226407922631125874477961991937735555635123488732228006955026606970567750420214374576344527607580173044293582645525379831814976271938207234141251101354861090456792699777848472223540932181955887977619578426676978827920646418406114258890888671461753040807509727969796096219715565082989811887480434875011388553943010115327158481738814208533869889489924384283314504929610377497475928133414317681094011886541496102664491088359794981491905357816158393473184808292697788684940783491392043818823655023886797972540956786574478534592295362419434482358650641030757730352356446865400884114329567408854419529575293983012786944409629608234098767714389534507328599032624265551693839664861612910670461776484802288225931280960625793103282356808916096828954809740736446800213992794566507814622698221631706236907492582044041546708098025806254773703843161657635912969205504502120828726329344056895746870761679165843557383894436820001813247391302932819025311313188831179125597241265824229412296297656647242368699037954916734412102869823759592965670132075534504552730584683300858051679986954411962465324303449732561484678954827216365678205230881810978344633167340473311922200623208475033239307403901314218528141848880636273382708742120292294665765483149616553108399417213373352432725113749525109555481008003476008072227025881729113934380557142514623529489532394753294974930112175523469044921421380471052250409258151106425819516956708876339976652890589139478213188502429011729470672436645327077846838439063434799712818048311058312470405101912418448146584714000148899042120531694225586225496925840840264844029134628625840632360084528519998906590115950434178695160778809318880227280538291190468448682247474973828688196453159580611848024324535357582229555025263115314970410661976847545054429778398040163070508864114929319035829654488487835169888669352281170327004328482748303197464794227519732884934508584579893006012703926421195254908210734592603743570286558419373879185522193819889167341574706043444211829374401954255958320710805451122480864757085711283331589531360315749653102073095515584670485836962107116838575985703330276833779649971516154640243465620882872553990759133075608171304507902989441865707778626892058513904014006608913578688669413650916354121689609142288571532093284591681459586495178703664126571691497631446569728066958538057859201483539472331259162824249032604869619915055314802290692336904322383136388297585983772519521299816999490044864184884119996575387539677897176032860946657621395617266149084283494257331500280044335187143250632193469428532470408264760920439474394314686100482164854577722082698939422580237021897168469883186933506114175452398885130183377667670500501213159193139991200374855604730662977792081224108480400965703630808988114560824619569329512011716422660765772727055076245946006667176263417841644257688797641372369484099138880202433508934024378786436153291603723640121987262101650807129234792585077001079450302529538596599458845396810081151118230192524770709956604482465226842783086220314570555388232389474223318123767614048677896875208022866839338878017084018350785625611888995981133492953341407700022665081948347821567980427377095921374607374302148453764267270202466630078313928804901890623633014348869818351877927743883742275746685308772802850585752399503590437958628519464217763535583233120217630959844109552400237531265208273838016348248628945422171065056465836038277598650749475623629676758708864145275401575049374470502626013831876180899566313538639219203978706025626211535390513918163522055724806708438003995318104084955743064641054443452484506517548469805966999081958706842471627915305957922446989473638836678733436913669627029211052196697854116887409611790864988336315254573227003276205766092217710479445510319919319885425232675727478969051676589891192662421448708018697927449880452913828822483896274941011825717487385152568526760298032214911472745111561022571811422126683033192872336688669093939425755581487810480586640048267688364579375079894228968049805668473881504829239753594336978288204147643680047100373652934428953430070142402802609919965378764917496938796811097611387294783677417763529153092803244682275394782788242660885879106498655942770704649453677701036754201808024493559922190436053431748376755938338350103978162366775520410935754475408028446304526836827057076846613658521779320107292668123466761437976223102416766363693225633223914290355274998792018823438038279088998398421687153181875846555424416780986076006411464840850528443281431550666479216956967250601233314860176297024547874329352150457152527537863487052396885733696859300380319870549396860397269609833860776786448211933305331278085597634015182674707370059464901925598531846715678877540865741826493448883485392124512566165600907052091248402220965817645679360489429261330411292891887181505315621005038813024937290416029821655235671172756615077897380538024281373791610018808550275503488515040780427114703510147106016507968711363080514630175547159949264700381116443885464259689744279348090664435698036134311260134061360743395295625693296323075409842054496587992057926052160868021099975816285452579416780637715000320023938528361872757085497597855442514563716972196664205685911529633169542815542215228611499577980038316843361367069730467539872982173764834064791110610870705620944377794178271204632654229954434225627122293071771341019100136671294303888018288443995790407323971647048930827928491040803961842984984200480904386782614117391174524669587030904754364871696254624364220239940843348823840134681152192048137214943069594865835456819460685995308246384393457063643603216480826121324416618972841436257626101856582405289020153668822983690296012064977575964879215613541149872901045741655398274621154676145209398993823554075393434509306203515685763394172746048660935395113252421907428215389863308762934067443729198296674698852752140181292171015395792648327069430796403078673625795177126820303267295406483771569577606500724163713149264550040023477467935474200596544387405714429836222522284064588305286547583615750030620256881632300333895768487677329197300958977167256655090961111814868909580235609101693991377493864586727814924756387158909899663108826141635661006995051975971125218315359650237338763482898264838955269733558344480047838241807510704181020403365439766082160388236154645857904460624615564364344724232590535607958303369082448827567536292507416475157868712576385536932374214915155898099822408276179632297311517078265721050701951697522705633160976574114559898902739409203655931348793507195708976279820115173160135536484123746419427807470859793068029443128894551985793662871781228842716343119637985279391675807569675133653658806111340845546621977349418464908638294423282691801193226374976439826281177523560280914553078398806081168174984181809665954454570483940607482563021498637324222745681761612249148657752160350065055291011147813913750719391148292257969866622716658982233756459753465066696268855017132376322596196881708786976226739949940896059748999974592598335831913544299984912938613128324227361856458666126385129211282888174699952008206214527789690524818655724990513056257861344136359624307540630207007642227067339544048634703811165276516942521973239768948671460347573891576618361672790519087130130954813876213477375578515297160551503829787938263737362619822826643305009392740231290552276159508141413682431715176141617419015429678498553018650388271098053399428958346239071395063897001752790576865411818428631621150323618531870633702107203644889742079747701144093201311619616490401281733316212807877087039352706403067606217582146077864435332243668480868453955898533894535987893344322165564166379918053473407669603281797188756400499175483845558574757610510633912182499213273218227994814792291712316164053270210755856967332777479593566102249933233938325538898639588236797954704419492899693214057490242977834620438511136323695990245063494011747844002390360224144485531039620312819634729776464074402094813525927507636603028938442096283451627991888429584333478284584433850802038010309216586756334665982742611882580118912372757567796054322306868782895924233097213991899039799379181070937667676546182744467485428839703772227775132717096552314079983872948810116232879664000515269660491297010179426672671339402840205008528802674175038071808903173772756913806041334153832389976391997724259661684944971924570314560545611938633721827809697108822986551371490576713487824013258661596959657213532216486215746313527872949256991329847570180937367045949308689833296527073319243093839738386811091280138840302454242131965074011288638662428877365671056382671974002178679510969896585758932912191740073689955263092776441890067868972516322247735642901460240579063482376958784949890060681057457206645371578644238861772719949005088649643706731208071388141382163349531518211436090619168460380185902884030937748021319621552252689001802332718165857042846616014605751600475073511763150633747454359520641853105610144815553939893595452596211641304889075570864864963028153465665924785083057732449532115026995021214722348626225357696211689102888137988618509880313174944370027814204689340740774655765333751211149642685850988779060231847444673021134264617709694356468842954090165733049028094334019339190644577038035615332991469936724877499846250594633624808280560892501460425817347465684194796509694825213528949895851053213896541249078937821839072371465209138200613940427908609478118229724538699736764528178065592172132271668448105139515473148645021550498014811276938466209849405440714605086290359947046965476036045640126181659784002196099305362513453638648012580620023365744708773124976904954453402248648546534877464912415192695754326775456273273461100903760027634508783141908515858898842850935079124165883343246804004696970426864363647281482362361088351494508738520194081483669879600853023818425645446596760298962670318490439689989834790464923725350932131007081907377685171541784943442678581307965380952104370035735760203926975553429261852234985424509436773690715137515755207396716276497243768822324533045920865844446151201475567195122749441591566863205368932383844668973129326294562861609545298419444511449712556746051958147191408347932514260969389072142950993754425632177433173509253595753703427725121014333155075329217456641134180160318436180700706737673938203323975253422912870847804807194240955458430938349930558189104588370002111748532777081629743949510885657193346609984984094950852495387216340593686651463562342558836062830983894921525925592279464002151039319849821596405479254138498103834982275937281165314395306184316570548104444528405126557302966010902268464379594589223110928909955130806885731431840003010015145540852255917289171268498951467922482576067910802436047571509260736229024053670625905130842844685784394005490983914917501904135492434357307698758703001483370968772093594445240872119460103442186959799768595931118195607061210206356029356114824448158259053904238900636880784207371060219816914142108306982567606111492754649804769624683969561202597403178409265669587647624946928748354293206466668643758888671172642443947376558435619753989268665170559327317005390800970180038902489344176459556440233389731905902518164019492155889295627186008302087255557844657828905539922821855075822583116765575481105640352080796150457057311463583607926178042039318682039523072983105421603977640729976816293516273729345129467289397057206803644378699856212449067565227214076810925975089418403053557366857050182837778148248138640065022392563786608194754669531676752974766393032262300085540608598247285961462268071064697472761602905229380607260198439540990155142973566544139941749895574861938944885025610367210294675166565300739388132845380004625375597303242414812642700979038037697923299507417700358290264601789623733238824149924944367937061774446828399589363479395268737716473177394230524792514558418703412121234943230485606499046450296082481616973710704920911277609460248022036952052285095078429743553980856358602519324756205679317697346037963818724621445700957116583816381837813211706545378545871351598635008212289863507348739691755927855304242729954627429977296530618544187592257270624646974165709445285983289977505509269379019777345856064934207456166355227306616045463971834732906687703014892754536069262421573604797328139664891761453724465862569217166940694950335800286892449476739188387929346608553530141590486448472357430675962156652239069645388799124748786839347166672612590249128824434829076826969548870503257628954624684637655305425227819789398880920126904355060053856582452069262381492591501776831088659871109767211691631156146506808779049124304634611278298069158461567518090499462396230630975869251476261134692446809209679541178143796005311927117399026106665380365634556282010039000571239039220294349811177643700825719741133667598490106949971739433984276736025966295370762826500688384839329109140520647627148415850179261085990882787170976625886022873953100416504513315636522917746647802762496911478761283072973978704590630373263983877246618046256786277077604572246708183132629794467018088141020536055958706892528638002524098311279516987406770847996493197609208410725607032675846680247913660143571035184237348285921050348822672240773409883634043394521676170505843176600753262246774873974765804626044365941884838588108744831419621598621110936760175054184230803241060703883036538330977363008621999760491380614153122827794207454488549281473887506818114808684347877331705378977835542969534655708397154085452836854806949895160793123184180738894766152254932194279895646470938338572798896146802969053145821347708871972155125259859724484987785720045161832256603307919778594465077754223842286714200198340183874185904191806862869242801020550970796524407239935180625462186428538599309500850167264415368888308948433858601370118675206599529453522894864902032994128295820396328413561315217250261825073004840634015307322938356510080603432446784559988500610221053115062516174610513857076957163075595021496296655390992955046620936358552436238543777295632111208423162666319363811520798214837211518793298605893200358700652224503806417318930373960964842015427152251993695126758273528587235056694474150893609457482424851126746949689584891161640159261629244800011226338348548538571483698981965959753336686679964040552960393025161503044691705795962188882786307972158965847385102589653820051926578854132858586884350846741776066009880383814085357239268834594760243508043058168725004944764794129469628080027085289441579332852279185955532229875136585596725907949854335143058414680610308886353591384262916029381303168418783379295259769331809207720303189883915200251926518992628231448106482156684365125430171103829260060037339888742410977467949245885468318942849271145366332261925735179612339399436638381295200494287575019028440509660134458403287022867772185066566351060843356252501385142642674466105627630925070389726841973518226472690253777855330217621591476461426344471256487919060005002654224038671134504750852040450216596110120802654079894711038475734013498280772104521549246553251646237714972212003156263379765683268616038683946982087243035095201131945084170443671600168910116669966777146868266580548090145190578221859066630886147074236882417252549236949978282177728457843198708610416447167024886387445332333011715585824652168460699307739405459326611947676773930106845663751822743053215637787604401538543923208388032025026091198371941775029840341489155063416703000878526256482194489910809531277787853608319232822011122828637716545762440832298345168771694243113971843700796956760322331965008082171745045956298833936999600170011698117172304320004573227115878065664314864823849704523636345339253111161236071247125988946587633249215647382980414751432493497828037582393652241676411455922515257643319853842437315410263066254640913034405897159886209681472480624560530244419949142339942632746072437874396834912874445853693890270978680822395517713221063522822490020765772698414069789351766200094540754575462958181770161284715417734828756743751915482544222550093817513970305114856739979553058670080184845385850519878841126295358794576611717727224290642307506674522824475355892664462436928560574623272132683585582755409336752766315436252428509965291065380054916677734113525303462015765424605790987837569399460313228088614197338904719702139179133510267623230427767474993673813452250131335167721928828228496629883361884261262181865142549564353103136990543113213909340218695714736605267960797631011334737966564419390576941385504534944009135563810278768227092555544867787410164954673110012011120915075770826684560962687816304735870453030195776871763084300577279751206715828807577644183894427827420086991579395828351269302415272882691364613577177926502367219113315406882818921411946572975470200086680250500284963542684227339878751286526002055876337657815718167560265819724304541417652764472720177417108460988001521215268721631508804084860596154245074131910065696792368004915218090632776044191751469224681180875941616970454304916445746924371351653019226196585167790882481238605679239892266649651084721918845077613861646286781829010712576834282959092303841359744193781865171010802816335514951583368360845802395490313695043617474357816960605975735125598300485809143670203431886018399575385536893428085915214722245473642572327396541546701634699683019931814650610749854546494081918312428782416331641038092486770698921582999448807430307012237817513352875324256920481355650059178735904264781977148428192543472578102804501656792063526161316782452515105181593029267914527504249333010054464030416411888353889689372113862666211293665397297434854523141929619998900177491002487107503787627368433468610748546804165669295177258038509475845330005699743726676582798010623437350497248090452023260064041860912377828989342219692838572745439584485350226520681949840914281763804220460460578346339727069678066809409205921864468583905532240581074018775819902028999827301927222883455068801788347652936768228250450637761760888474395471626941125098499132574066440911322937850136663205393956275614033973319636223660909153586680369741759582577723555278552021965301013155397307998866762803068761901373318588653395120767809494605698889923214182315767338306335452271820327244072249737546484389312679473973280942655952123120768509031651397291931223614194549794449091667517978626119285715487034732214582143506763748454015241151436009049367428409145423264392553396975667382482515208520686322750400270919500504540805602703386570900207049419542002844665676772345194766597283153325350535341600725289677815210281745548643237730528419788932921220983727351790039184056795230054262368113934614006934070755037303721466584948347202609378702331154406846001944069158994235545570136662883601352587262617984658387994799128766564252221667762622135124683848671393898760284678157759153174119264692884172178650735639787203485253802010846133601781323338790808833153164549749664737200186626219691223680537383814097806665855729521369476521026998049304986791780561789626521680069681555574743587196134720418649974945794788160122682564415418017192309245211535933863459531651210928649300983994477307977417480774566083570474146812119907880221188694723620631078441454531410438851601768898830061406429116999840282340971568585219476881004633748107635628996331775644008226934581630132852656718484722074481526264031977694128625159023881686144275618842169526545758294822399532072296248681330732291056372545516755333418453377426261689788326553148338844754736298812055813737011612854137630081884755915880991566780610842119806065501377476396867677516464869739426608427285534761712610623447465317642056298182681908830675313760999389732275615586233435507888073300452878714163296085647347770938649433005224090497211231857428120897255230581363214657041231678752242646952067958008396677630553349285524309592246967797373798897285587608170185793954340134912544123423864678692955573754902804099092600971328423237170486261335864070326354283759494803688136351391517240237142709575838902131003286330763979409528530858756983701596471717513833757455375096279490870762067834796930491400178522880983057006261065488394085915727059487103688771858308103997539458447880787875214129693518290448548950303097590570384529173353861075108332606472872192792476278521654116675201234926313062452970843717036489154736762998470933716186911035060008239162115240638916581144142388311425475342430807008511159296538439604111229916865314095932557516275981800621735673399493418723155054430848075417349470425364838025989303915026689511952732272560468821181457230832300549241289115618534029188668269790714564339603374619856065273293653027052636193068543544117716872698243633167024832655871425038753531380998717657135730291559843882251858236357253964750381434959287705532138432576563832735223925934526637804127641290773922998915214006478789076352123835984952861775204114212709210960031050350848946450824107248319828696790994118815072375488508809284194361058472580581870758306344851405897438556282951236712902397174539940877397621758769365012796273940652947579478923744675976324284857407642857353635714765145277147110255662010727700177440555280835724807736098074601684420804718936536807379845808160562316106449946067291998753110655092737389060380056929756954497000404672061374850473366470305470702885390616056764922311942278202379809702161038864929829256106611142850339138848821942335838353184076947058609768263428218458233766423367991726628363212115650321891361200075425006329594129818486218955940084028345828169849034405302266946379714402167891130142011197603194204433732411094601375946598293860849424293919453144182275560186182973580600052996609584538332937960408652203888680041468460439510079225850736074271586403063871543826088730781387076914451895976698026646577122474560177137278981119730811622737338276494009342799322603935100618306190299567907804445254838245275437790974895301989760408801648396134627437635929954781211197940560888543404606474621789789962387058052193787884542586060164410514816304348129832534793507844192333187860542745013702936262497232335156166745225548343000781195965552090920447665907756192345647829563357705633755860080036788814931351061554137300579547838103168455251985030567505174212739743921630123826948381555711780216320881878344625599644309336471880870913333067299344806477882917290674255717146128945453417852672271002693612755037822291165081446528279056449807808330854861264803471317495930174837147696680363009413739216613776288973546530209790823657357778523376961432474488354130314137303253615824377330297495714611452560717769356609830512486911565990589208984445422751080173539456731954393733474121315613272388131801928498343739159420929483618309378419964697213709684132315455177178437228964088434200720887908400570217957772241696379738430192923933081555272963404959984818707862198570829315611423199166970088768067430011127570631602826905276581903597554839020969758866942518392088701099582803515267058151770616018680797232720461249319362337346489723305772761322174358404038148988580806646553436399608699595485961121660145367605728692387257394450960263199665491425360304403215054904149609935279721636925283330040550644448878582046068862772732483188931154218909856242958516729405550517540743612493761779154399891256670835615804401482836434150898321332178320228668457779782072799464700144820418177025425186125612735587886174794484990078945056305690202622622942442823232025464751499791248567051510140661498688091023073456668257475027414734201884806583153086405706133057812081872764887707366724526783668788541513634037231328294083807560468120587701137969303150108778522025692257928354893695856769127492238897949858898812748585019706893561437307823296185288902657204878387740719415474577561988392649606979075009774755801809834621446322171260174309484371237777475218186466047509422676918527020211868574543803274850971770594722210975545991778253464736236754549544161736758047915733931138133261550715986391173912400981931139030505075327071814021173410582292755757656503652735948232733360331917282209209575833107301860904939930930218305959452103216894625536467175812796639850240210761741159994144927516051434980955430208077149072406159593476111983886165350722633138567139490116075298690191350728980265200075010125248637109495826758172988867158483469899799439578194721571012591786311279809405913983208591930138434066492448400581920078794228425656311300199567760914766491085266165479456519271908437249814211107181558181586133140840065796092317864633218069889210733340415382690038490421942460292117787847116687769683631701631275200771255331380299384335257969034376428553972518985445166564576174093724841960539634078033186558646354240610125009019024686821378093442271534597600440364336632205915059430494934886528270591786906493313167578750283148813363300323422286714520929463141679463213852336014849740277725260176652401905389477924725489458222269640678956323890046318598667978612975801761583550300085230193469089128631219532592070136121726508165563695648813578212893889078812948026824354745781771194607650939756129942004400308840303149391975170766542623891196774437919063822739627041229118774056359192158678567024602025455481688334198526159957927807004647165604736128575513292835871768631324963349282443965777049247756114753701580974770355702186006262291137678749364732486139369210166889046883500071377578756635788605649474182246290660317919812413357359791579771016233008379783238147894910004586831113837425338055886773605666416321032555708619404972339833060604034688469870405075260883808535805419880846375783318427653386470984933093215069442296594536317436245066432457818085514976005029776209572865426851784497003495308269300790463293138072183858366428183147107906505123498970951138922646360625897814873105967724916953449144040037102450238983264174281158996036191916435023905402377033212520063451065720880165845874401509199299176507665448934769094662456406168560923400926392580867997033561110716536751231550217222168275335075641776319198994072991569131773983981740806001506963741050099190368994759150503482369909802725387844390936778749359502908574429200416078579487620947698906718191412557697448247527863299389461128656240485027092454306246279815037606261397485649864644011876734820556747423001473327986566851449953752032006689824398156626368855756385961244858425857072270528910127674142707187239426143054792417792770219063380009657440262763659953257132469196866364719082829901609495016889658905096487491650770909005507488840893856935872803359718235303606496937262109420296991736223874196185886088302983019988338918461350276049520631305799430910251422718575011478618447612511655284606640179288947769861454527026175372303761796722096471205503681751676125399160999269086636102302009746128306237810454470974720602810743220915838791029375343182313161069432072735824896554199524610805274461550368323271154906862321787197344646635582007353677151525277386795835227615527433048598599117631124336713584451042408168945401466673166054168874002993564626980141416607701295137415080745169458603210199057449864340998099299384223330211581295724422879354409345288621608739410118385448182794558561029717766336170621308573554025194098152058191003850962956540779581041321344625455752913407907600043986275488827051964278076240196081422914265350147230008741526992635421404451215309120629487660491950349748158135747346992690495280688288954576632624512046219350472388249553331422529775609678743493805940422790974547311424342998443489223527249787897251261254455080285250920327583294580434887820686926483576411628370028478729250032414528273473027974913401076170053901929307634867176832139983396700204860278282003387716488574035900417604621698861323388997042214176718666531721819852379307048449025189010838443141045710152118668858853461225609758841788235515058443502659889238094368267046822416010070504545381310959008368052314014360918757184900166294089679656855580777007109545046120611298813003941594072967246476615304860902969815275754879490786580859206391193371966631493518071732501741987084389209314499525309036481245728877609810266532025606529083912470537158838191093913412942489044819090707777493094856935519336713403346195086313765615968660065113971690577350278494740742703013863897856581938711679758118189970153252290009593946397216750254699232934325260012021664576050918347399740641564681370668374812320019893023781875240773895303567228020254615415864229891893756693661533693881037383218167737093183944978333052735399140098828852931062101662667075347872211633130690241522862285629638160851344363002703914172205855240367227734907964769688262357531478939508761785593382196403235397618935277120115889013018171242606452911589774474284951000891667745489134987370884654303588636390368377405387804043290401183456789392830181832947783063440699613207273263834730366922256081974786038872484888739914982461371295575028389560706892964852399851109962505903725391720341797750752356348270468963114697336703413864221173385787733597040412155443288177491083550460114417817470193663817384378320627981884863054684008709198814097076397174680643642072258393185190023802557754389149298436359726771401958679102721255561404733140722496517873098587195039898169864540039374226954447573337746128157413169081302279103500540120376723529376103444207595027029239786432774425911465408694468558722995732576405546554044906852706311755930648614820355951096559899667766162436299310533309675787896575455735673529619539351169625888291148864465676102003700191444370133720800954292575451625956909710282244077238572905454185150040149279486344323936606022220806146051635482902969911290783790348610710913361885294533949362147139878238195626929116217696559656131275474759762159689306725818648650924037787757696238039898263289337125938447748357107521392637285878212338923170959935084253830548069900622334850645544642444015955409588483947360354833943390280430324344560101255222688809170905230996447635701332987894413279542901788355358624949801701366758490127671497614271424900447790271459027134209490424072683038829138818471894963431453286560779773429000758765540033696859214059970271639385661504974103051093412889958733384634685020197376058283502535996097905268274892562780888395786941274170400467848328508744999038617118478926697671081259407999911074921577151821105563534357431986377744481783788850415500560076977849796386827266884812817953889345421934155172196435780231577581938632364220399228693519348662874125009753257416983863508344550388915116519776193397942447821898438084402237223752906220092461503490199024078727127602205609469994533441035398322058500564376660860161308349111092945130345533895521903878019977739225128993210938906393735428404020146425604463527761118113652738690561780886033493222276120427160046120314839167521821719958832396448914198327808394104529627738539164495190218332938495783923744273865190402740070872640821438476561487447469436730946813551742199863624619991377853620325108488253036117423747045125133611960099143968862045876143417442818836146838378700522668751634014089248031687948603540915982485564742735738316327326578323202980586493515726420895110930871532626582532885986798161604147409704704963917136159826667209681092035207931334448014745680072980852908579708156203407739077998512378363716780580379731384859764746531527431088688647018383961721805053135119071221139998425007103469943417055410066067953673009078376055908100552857901233747184995559825656697536420980077225526373322888317469069052389455893219058953903859409369666350747036080143608984923309204206571196429463788082357023424294004978611308555758422498596505302539041596696846113272155892449654817434243070622225880281316629391493987641669234051609798683315010879389747929884279165160185999245793560365321454161598134805543071178523029642764339951345161540143054422640326249689575890800684644829226919806961028069446235295932399945861451635817443553869698724953963576873360276935534382980585722615443023407839821606647973756421268425645093673443844016910831870510716483864850991165882220971809588735630561449136623628373200307312595628925699479768610712601760635256112242314263359570396335531743114510885364645100325187576586048977572981809768825337307011107712749957193055620993553487345225780111799225652596106780896089589226870823509125374731929400857389941383474988381545199946611714616928597389229241108611259067618905270036168906662679813895665914677508544178311961936229187091877351740156905054824494489782047118819998343344489469946840225430278220675352366786907450602065877890527153189927773081435470547117566694861209142422695243948192487882925771394854460349366656509697748163732642027930399833966798452442106377540714886502629107940473249466880046239307836711146214532713700750480508667253982005675112883373780963271027559611868451785602958265810063900764238265848560179246476790133603064669440975363355939558278364883994749975343460551622349838131139925041127936379608243580917676330461792864855152519567424130183091401276310882043947689576702356041926605209855759109963246047958862819146402057620180386568731676542667318418445107252926679246512492082050432231205331744633137857533140429967085343090255902521715373953049545266462089256923961614025347277748065942525188177443973092815101055030506213981317138620559460529432567711423818156857066013179006750059751281487683145257127266541840332481957538220173615591754985978387140165201792860944408479380336384301794117285174875882141245483868750475017180695603160861228842203853399017341956443883336765284771532284747315966835467446042556104852967500897679165189062740730492179314152225091710627803706742233380850349296510726893848228460803491850525294463489993420332168786032734898805737438093864712677347561809632024010559345202456903100107645096055869617959142412357034447218668469737924932230240704778481918000965864225770693455430968116735986339728808809746039395472481055069076436506620558717600909733531763574436631967865490191126763532057894786309007501959705798767229786652750165809982509916967369698701948341662637134498203038276290210051362281018937006462817176347714683959896234413837473144709306652936573485384084569334383361397435947408259081224948829547193075593568569579456906694778250851479739043497442365333012806611232099266383861594997157468629343399060495799973460098574640782400003687749587304667831206422227743899598164750445530957172221498308273159727972771229250612829845260427293705368852257663686406879667018531007781405080417463199470092810872677458838425600835815537552464318314172133296235529484791478666495581918128549191974617750923021821434588909456306441986070540746066103739902050661277162927144759238902946722025047278814106747491264608451154392032460015958565793674011183306609172344144909864691482905839379910814863384919847169474108008642546067196897655323256445038382404744359078670509492464267244760677335059857991683940025900166878512804498750417267372412035660814737850205452304364249788492570024430161857827528224454404554215540867632875728618630221246125195895571942708617990990238748151300800509451866158399101930206067450787261252374715440592307806764833817272644878926200960470196044615276880982386192205823322005002825416304601608762301521698681970837669630581001571273810326112416142537425152258204537537016727779129886322379201983305597243400686970139480211100841532468621420415729701035894638102363841621092557926847370087819565800889250550775826379648038571632008850765936303109410660854887021688029051517970652723336190045489507107606878607736859407417109611378139997488128356962437627728720267358835013948078831893931922473612959827224921122520032078449278470621831905103228027662210089379790879590606632409623654445036350746265008485016275369111610595778222374064923249109438866125258554413475524730659647650467147180159297135275540725458511326521367896250682070108587284013946499574283602656180384075530928153967678314709003394985315847517092458727102726319604164406157943700053408398565257788652631600960111673536840870376496717405035200027562737958349673285048168873225038516128355743494496120849960954859061432385247550946725582693926859990115027214574423171307152655971623892436345827375709574945267137219302617477062064000602131495784421273184910835913663414447309715610282479084251383811076510025370973542452876608150042226577687804513751144480927328482623887362955684674141464825693371632343659959111706041564225140283645510870475969708153885436439439197048961179837145668258883133072072372605945095071277966660545271490726460360599067144686669815824077395639624400703298587257028189651605003239208810320441950657063931245224599689085063753481006125363843555025131473840139694658377996807013568305209743873053493050824452133137499443416733015387519702920972830400685870363784019456792854220267913041934110507438227350147801062618375632621878116379703954041554847468193308361864922050217970732573436312194896944855477799192549349282955672915353421841837416282348679823270993679523713999780065207314589507663005576147785984123913129863800765584955815709324928693538165860387047008338005928981755127771263507926549981936286521920163614350612406191318540301677704324397216918994035002507192820021987267100134135269895036954042191339934422218850581931278966398900741261907939008681033802887186848775174139367152143792101792727970242098434912412628322422768758368464661648220724084057982271109773095561935143423775938952330117844873498858684618924368898723547326628692407499108553841002225015118202425007912442612511036549707754152430047177146363458175660066988455581294983132785071050235546447320397813228951841555364750239588145569404979123869903941516924989627188684393398452796395421668277334896494665001852486690202116123666373650576562426517780493529502960890873827528951427316936612799357220948602561896592085480345499643998499283910833856081014660223240297315495012556288741680261904478540000187615126621888331119854838077180738308113487593044982281268305946326925900505201928915113477926379208814836249518118303897536377917689127526587091818373477248640982850178494792527720899671651572391909807151350566693961468267944590444462131135978210654513088289756220940607276529245093353554543843855422793892050092338163712767490685425111245055672574175899131637277128493502788135860844160731669516941484474919176227180342799122810037717573533071567745966881293149796757857431854330372685167177512175032956268122135006053497915666955386403544781188229944644315854805377993519985693524080386441010815868677199061476031528812467091975219572393720237467936582758938767452597425241465936276330678066402541330431532493735643790502539015549478612217478404318853194400569026342643045038555476253492546869647941513446893793874369020758127876757963944905282661376503902973713723948120757181519738336802678403779646928064890230932678113484113490983786509829974538268082239104034353004029932213855700805454863559399684590795583865787975834796624966007188559730966041040700236407995041130061034942826609135926027529414431921796650733171595070045580247566094784091771726942253971738757005089687955637710521405251391564674066423215345820058087320321376724069441367422436834502682797622197289024748508303580860316117756147088011286511914277366324552066737756148357940101177143775065291789924239144456363668951566444744582900592134633016665803231816415256854447799744390542519553601559294294793882565153144117257861745596373425850798204047823233326995479794006836197894958840647870301911286134934612004687528562776774351557703146972457625469176091471831668843984266949167169348489078585113013338648036983172409652311340927108432243144144763289468937656102006543910557121636630265143915413267107076108965562812901598887691948765606523104110208009345698218183618986330126663063055539914290501927261870795135980396864455058077734719377332609974692177001905104379410929173788255553717288177407753571706097620470881524299874069961340402685730865720355788536720247822838931547273064395934612505313800724918346964770030537559353784692953439506604316260807270443739519452869250657162824189714716485266549761491929409908672761350700843364547549665335722597177152504113600526328943210925001085277211659240915125839123344521228114855621175055870316377709536082056712738626140381203731624684540425326160472739031476310685418536334757239623594091585542766560283354527930008607233560328367762961027854428599078442759484573789784953529311480038972677696496570786994319491399736989314852909003684288792170775675073775803889673745597121820540230402345012997372016723773384326350833866458391120219809694824954500737243626856361849862667931184588048486371251342869323783977337723763267903451334265443903043530752203923682977798522712193598699903638844239648058422946961957685561452014094760336546311263778354404230016082549947865472276212668945453138251889225966480080748125617643478545975753376295901457842760748724059557870125042785416609060960671194607122482536769329898540851137476528687920429994880857278805537202112538147471742260689031814212793417665738363538218654110686208939483989597122162135533585989102481190766829477526487289100852299232359187559611910033495587400023190046665777369611028553806123717044174652355547618908624751874503586301203390677899089282292001112901191122144860707609948559338361800812362723347963690010642979270897328181927277950100086174988382228900155815032240604336585726438432730961471784331615809516661946164702662277303888615838558702246943227588993733522395103573278777836298778791147794701873091134549387410368349735938268349502432001972505219638956520481228895288971583535887036812560863361218519628671771331636454594388218213127678557474290899412992180982672447142309406212047807527034623923378657895136586355252103173164525353492404737974520782888742307318399635258277545587043596071620463231835167784093023781370466566329833398974182770800617588741552008057124791507999436653873107462895972290946034310682761227989800647702962180483172054348843208755420882367424540284231311216461745173890939002702543407510223382916480239291119517353235875229040019595041059400075557057506502966782947992688056953434438877656708869671818994157061640111819527456930911587059311085526479336099911254797491517012022159384978052538372356789818879896482964864998298019359786138909292523544545991257308494899727969326435720529444075278139722799244960121220117532935568084291648761150804873693504163173531068066629397467583278112029394690496868232706295188901999012776951800113464727498673611901450591671051788677991213962128817355452899203685806096261805070351203592679720287933530175340379943313919402470443532641449072947520023635039450552974600862404187746829096494691564502554658120134194232555180673194006172776705004682028408879364906080403859058670400556006967701008402468494248167592563222845623781708792824839211735876360516312376097219377966762032265226111724740830998823000790173384906828256971990083088844978976917066259740381106539969113709363951283894346387297200020370161094495483112399109594531628157436952803222182790041662472632774123942211083206887869200940774935618127346602897614975514881724104237092514786753421851185223841551717391448098474381267415412406863574851948122255509862572367503551541109956581219375743408685362950773639997896394123375361991798051386599326792585117741711942488629769638453122395585633900733184278340660213482617331234129035996930498989973216949374214473816042245181675279039574597678537159096321752671482670008634395257401517030982317492807864101216928165741072399554535733868244071514009396607309399690231225650156878474448558539272873884410829715596553434001235509383767717806980170252855294850665846954298611472340468828870605449558664083694038511932690916164218641325793490168740533734939932043362737302287096134539553199027175541882994540400414431230690943274901833929836885343258793401197940477288207692764547731688573015222923566378409391368980993019496008879079726952859619401773582154372502947846986993491079984361134281979248152897227355481357429236270965776929977684850606421177929890604036411531871516956217073934034167681331740719957783328897822078026258292252443755626362495925503865792325471138383694702984966268466488386186181682077545594742373385034420349636425645665311874353944389896700378673689315507575661776047325945775028825941718373633222213475801677763513402444548996605821872091142042901737660165304102413402598797495940129379735141293206774265363009792096113931346034789156924609253152295167087712066212772104109977929159302899512097282934608846986819792463236455530032932542363546335436463090315244232936275764753647174405602897091763295389675770299454210003305190722332566662979479507842060841848220493573160627392061756071050661623054811912507601765592764660571431772162441581439891857581368862118943741142213644628950994266018403927338576266005020339687101012583845500369090894905545787533065634015515860328437263909134499073230406709175328280071762345502218725164013437956934935571208468904438168404521095083055344932141739624446266117756799552929180613806971636220607047812627901438019282807268233715191053994816706078811944984349466686955057561721222071558855281568340126987232241197804547421452022821032343570952823032771301692056450123791697556582955928785090987364092412774991556044141962189035371227596136985538965981956052567800014837693490733572730160797274930655006617224727858367404709807735383458942605904448737358981765466823433372470446292344935195358382020508033635811958903881731872664795031075791985388783029414299810788020002069582507996067495176249398506453864236400692688431604096052900391574613925475431960355760480233005857391667258790792599967312250351147606683683873831352060597963879275736428038293602585204578679359768742983351506424421733547899543792053166074670679883182174476305997630690894243171441575188545990951111897640620616939197886945467647101171737231035503853011399669686686700485535673437991587673539930022706190786594804953319782340848978710458052200811648018212639051691405327631307070244874700232163283877542846795214478175230125484306277309730467091044696247297400942619330457186603771957593516315590450580960371589296499302552607905280338021034188007204799374423333555022335896390738807779715425203344571312597708922773167300183357696225764361556362609566549017865995305353104025860322299133413943396055419000253762581701931464556197140262541670874347266637961171267524805742964417737677391100800299212072115377431173720814226921086875065251276946262473574898249427701699178497467010015230878299589471373470582968147720028956439387444524177797580602264975027477900454034903818888690327105915454703169405796444393099465348139254510245280260642781550159331652673617580939924567682487237028374182670743259157430548151118757398316201242228128005344370103114965254725697188797082428408630731113752867273864448759887954327774111018220273127753193573352758145462428411021890470517573891868121452101819498587872210312123937068637912594527745481792007082348135830913471610872271564527925490733744657654254312447668353057687518161314014995842098714415984292487055158583729910856843856957863507032708967117914371800853322373807622983107645882074741872909707880567992546119812409393791123480741518955796508299690256726474924772671008556664857051128790168903162531446044173136166999267953188007755173350561621313299589645883038728701691929013440062042859509113967671269103192717623588729494052686470496636571792739158204881801145317297118935902048806798429619903808787264047132012220113978551604568897585747695791316862757908681453877932793597570035878213664501609066693940189454664642192108294929098016761897808078352102587494690362749035776267492299080210883088797384403679728014731962597109834780628198986600746998946402346959696955571775682136013926194208374539794707776319144503765370069923458074485497845307883796962444516928271809777284265829512912847298312753009579956673965783677788629890602817293395466781538450538282218605121671218516633872932394097276394333784523183144301669620302287629199228840503703944309741205488429393366581566879387469584973196684965841435549494569318353720273816325357445793815099864913276417783602297476955572596854338094891906638309677101601113434026995641220821456363712246039988974771467725668245892631815166487546328608537272187029603342126753704404196139369883073842520548739914483134273906870752040249884701432599056320901224226697720070384645197982103158175894108708868624599148507925919856816455545207200845110733874704062369797429903974283331462301967863049158007455133361442089987080449960038102703093258651962557372488113084320199702391898889429267246917583711261141954711361145630677887398861149929524593240125506203392190646283392972243854784860369472137280737845232828421836538035171881678511586534819136986785929145895727030930868286642041136797004311896239158533781022013783152420195789816385046465980822377302352650310367634751420997364527240960051788530072558412288422271667279874595183301666844368551294666614908759092389700672457496679212358681877280107992195667052278175898414996821881548942872260203247651393764948514005071400180047840621256860861051802257560134041792748130638025840588465023236843673525656400917334274924863038796224215814596855011310079702343541086938260722336541437800855977261699237824165441322426853307804004192483605823420334514590694561412168317168900751481329785854063629391038627433273651246062269370282087376676156625324391146035512174741978075197809365306530855078479985416368520065916176253853350838131953147585970323376436777618471800775968824033351662144110301042515151795641653389451773543846927371725174945483389952661288594406096148551247462966107730150412938092903932906781234796482406092994692575751564443123237787128563678266911248415294323470433410967747308981029883051527656246947790941116219818593747527906091048392633890154227340453128016888605572042449107257441423275261354616972094940608792929185026810255039871014529085312630094008051772849107424046391045258554974733015691474293915276751202517910884027579365014125230969446557311401603189701032607534370391451996247948222311059327451060447715556477442346978523755268995127531341251156384652587323918378137040103699823260890122220575414044470410768793702693960991218830051830698379454668684382785900216310057020745201003866405426267832302364491059766121308253580158987480693035122404298099183169160237259560377010939067153171886664228402232352417840705456747310620454739682363234411100684517298092395737422725250216331824706928519494381958336352827196746252988054012085837013048398798710386774775972226778387486685153347517072883788435564433144235861206203161338938409043731122301755912299934843061366382943740281764347742309956466971606382522533596221331721897928135082133927045635897248050986161670465691401638930248989032620733302001147131904180022342017701973381723003754531871730450185667247608653788778467015864359187521881031226695312550508986755118005792878404711196059398849518538649924771506216480209573187059402205975339512309429858234639292621129432293580316438275255679479193692516848421725170679398567148650649943987825071479599034555036154265259510462206452714271101973088593909310662687067999571705121386760396512525903461596744129145444696202402929946863009485093212877909641317098310908120634413339193008445623388059441343343934666621090490702442120061607238997875314955905948156520491644061239181121874858650061279158322536013368099039225470822320110236032866267747679530500136536369021974515382281669353816988030252501630210866981859979959872057551407192326313003692116497126780138798091901616444492905791505940294915370364810431943352798730376772093234975678826903335156397319934308237023086850573828496285702107314891500906001578742600720404506818413568913288356101459361294856290346244725497043332140754444324467886746577281320089421581291624142192173428310654535423968921044925941746377737871319596168644266724222858196777902061120906264614334237176979649178843379552326985832238781262002676515929430329973705207957826539752219509607114275789351085475590708001060314975598312093811715394017358428015454321417791736073485308499752776303843023566321195855062288889325575110828060984691986841452618636046830668274790102460454985769806288633206076927942529950853364661154164487716108711750181945917766550644178796221410028167036492958379068624009774973912618208332626480336671644459441803115171971681037241490784117819735032143239044336681781153257330644423563546797254919390442322132726518296226687075508439252473569265335912598272461793002979705459411153069703587581186062075786359213374328374376415893584347865546681553098292504379381375292824578748350191254547681732939126273240767969049389966780403081629027534484800152657813007200114856389504484638164296746894024882578447766049187482366481261351925040898135989264267530240918527058408540202053462237651739420903321203873558225651872829822271538371409368390452738886339760058818794394752830086781990552291295801871756189903478777577701490751211231577232703521619833419562038609425919157321581546658995215636757921414250425719112592717228959399515554199609686067602491780014224314354401446998173551977563866529250365000655414787024686665988979504279226790978341834208288884364160483412978301717604007716193173071073899516304977777186618620391018710562009987938503641370287034481424272929407871212089193256709146026234290311560612972254958641546164724380177452622048248673384273062149963092152260410838110111056265953974544769102222877769888902409988915842641903876947467256530521231199046422491523116499530880576532626270797010927053996081641988366517413959430028540858466552019582605851856720023739367396579444769692162622087245594362337694400162553180080435556030656954759304164295673347302833618989108103084744138039172166180622632435118278675152077263718241267699978595100746302176001921438028062857217223868462332509884591822205168617867699648806994899037910109611433276000805528376341621197022717680018788295503686428375972032814957512368100382468296153359160030623431756155212374535627414349326655461852329305534072065898380381211396171900719734017896625780686339414813183698170668384717454167524646247307553617360965260594700675239492064456551166875219601195086706670350567468728417295506225638624220636941281547806947641906580649882002310047546765166977140501752785098368503006061243362601454035441646269479659794300299190244100321213835456435371992523086349138564839925087404495363444595752361057615676414072555682267432752858980492136975799862686622515493246862082101100927717400144307235384306175357353116169700348153266491134345708042357080509150286363341268235852649330226554598575584757072822789493470154134541842460858742522771631829624791322745628431078884051233886697286715357741207281436168137650444867859743224777963464680316476523445003003760516238854906136295532520664810544761180573859868756843833325375197379358225302495153389942347790001302090011149266377318263274947362542392605537453524301527265556665528443556565826757331743593936088780291803162487581291321155485977499941917309491314920986008647434335701198233090568018317247936035909203836435638691206496507011415232425806988019087944598082433552326638993100764101082241844747634615512822542984113511287266355515840913116898251051988147173297893771330868303860901936680498358857597367526715315607963006398297333272904468931341186944575143000037524600524296865746385382307852947983677537143920133708192306969307582711154431357645739127931526750935797714404407063952999872779066921427769746545359240875016408134428621353790782619675783214119920402889744732616150708384146222728259423649849484724343370435610992176864463858217123213530187101541919495125967761406139991537470461416338743036817520924094537790931952604038082870228134857698653435064046717654768943627956062375171665641398305647641041707434649115507940974805600772011907549523856096612677047406352396717280526709216207304807855376664028153085619422285181852682892531641480215562544349281310923436519202752031343028493534560828244741001088438994496176609939671535160709298761095689304474093775469394900902077383154856828351231571860655163717568931069026287038086409139015798219117423287958773889340072716844966123770383797425559141237262521411370850633604394893811562576762094423109996916140330849840844048306988690743086664555452362969495792214692401473166927042831525493696794857307962706126676438648934907525835645172558007412155773619250173718444899860773161798476032579013456871999015873050961053732626044458939474929227777503216761009857025654637084238613918898370322335599638876318501381220589001171094047894477422761051014714546845393723243720204971894439947168155110553626970182625009117638130546892051737033395844091486447226570916600230358334959921050027202970254421657146801220435762566436240622604090761179764090025408247402440768325610442519835586501524919457266661545318333451718193371893692415461150909555244210073423286222115726462269701413846233842379558676038588685525650900467786387300274077808632261716059979760459455633248108292135328177695632215127791818713485472261884164189036047206670593076981529013496189531209941615240409832977993130356351349675848666035813911359566713363273903070909581796175040923582954377223139520248973475772499111739388215611398577043716304949371871592160338196602885199973605475652643119437920489292496538265979745291971534744992357815034675000633541423308227820041505647931635216086409538065926382330618828896317590869785702367997753047409873106678823811671408939611625130121800331036780265690318156588530280818054035684879585055264487142928631061897918929271172298790289702913127112403917569886443052390243295788001875591016713279846252742517610121760798991902247223760935562674321115238932733692706327414885397750174034832332499550853567337992808979030601140255310335830543326596910351524549867495087099401165979769561471732637597221407133003972375393923941861079778676876650354110000724086586958398144523270530210480598928070460149195348564870382432050784968905335500582025423344077736043346277476869208815213942656202297416882243490928666278222395272963132646647849663604030013657485266154108574963045270450172777052744724925673172609729637234149957867735483135754078398988896429082975931794211916738345951842255707190719974360024178073894042389796289764623177171078237795243194793853335234316389491502839505555885054135266583195356950137339622598758916989823184613722346297303293411599042055614655372561042864639866789497956354531345477473225960716350033924661771993071583503887727255599024918786983288348432462151597124680222087606531512182302597661956695950596760082505755927663154303463741845574300844438113173182892432910365566861105185285081453438838824070585151997867573070649863794539748918830140632646371608009330331187008909882795368848386388957266089274363044086074549804376926459685529041302896830639674255277701419432792061112966052563671371717833698681316069884433976010417022059003682364811552695126581561404028282725520785155590132539510381797757033606376201518610082973132600340336239092703296123312285348085596929577555861570215889950894892909241929481249662697032529469994407184631306603989709918438146447349353559946631010059610355527918831798284014577880134528263128162443932343151687029966690875847808354261306647243523852393461261420407007136990168381710088238302597823446035145302343524300501262218595115127225468621807003262969071859975025802929974447575831727868598771695384502589837591316861345683308087149962967169402536560579586500486616807824271731400181942887014539059202692052450208991413597790725141388725894761498686843298715012959678892514365517327164569961819208652611321670162409269840615800390678769026523987098391541318290100032254960462661664934457596458794068635601117586535410294694089219507080391740085947362306343790586563547513968660314362330500909204832928792518427286901706405787331591105841970716729343932803174799232720101569767545122256703090064227737285874697277799531720321788035360152583742090970844480242090359163591409056851458502656033855650313286738438041867107011570808199995177093483283740850245381800882128390378087213624325399131527091338602630351671189601143103211497843954232432272614114827489235532220256769894920675217037072233016573585303498888808008633792706192719356242860749723857926129925423007132749655929544723684642330310458437189279463890916836225837550708967846807431571760166354313111046051827088821345069778098349507540828880127179133544861371734450162489254675563738334278340804105173489253131214676695157673187880099084007937225035463367669593057594224598735589337931091242612322048779632220733975243461617528181848173536313873468905823806582943195937251074440697497256919610767885700606454316469041084335062873585767112115598416964568295494083020238865281719373285254592027551734042757620340439335035796878477283458200150937948211535411655574332109335406323156036233326467587874276211447542174620514514088352419255166047249162222039480050909183899923961663842484207775163004885510345573122461707892089166145461227036519569400229923830572469789481914524413474800257965295936332233560613854298460802898247215264001332955864267058077011930462342610019739871116846545053102235054403383105466137563436802922988514156989737004275824236192890391315254592411517206472642466973145121096671631484043436127348395264848157518975482602089639850199769067232760273380059958133335030456471410032480703371393806777843356142043818818587043644572196318319953168963270593586263581285660931404028621245732454507238480608022438580345803761476253535830877647601498935382248899484491744939691588640335886664828458775390322207997258399053453264547039659433333677059208569285381041947896522411973771358645081039406127079259463105039496501638354121620076465312716131690317482427566355318269914790748375785467493245345964977342639225446381934664352880996426378650310956285534451806415809179118099862648606412235192832281101995253449242521871485040078904701959727490759738354346518102208341072138393444663848140075319889908081557059917466567348956343885766427606446417095721658916599553410282070481398163131351302368730869026941692888800655931125815352659454269825449321237213556510827826595731673562678054548588860506245612979188517235726556881416769371010792440354861465560971206745581430067998594895630346442922401005021365763302696007982168417886660719729118859696064700821246596179874788581568169969484193330757841058401966392030270576264348345852394792425125908999779283523731660054043135902705086542024566671854159758080360465986462369283333505518177374591267795788832221495802287141167625030079741420234067889742983400320393296475357556305626889010075033478173848735991751982234032222276574894672054539295283316134710220371053247001178177678111366473229111964065925652809221331272001058481296550406875755991079157291088216125942267161667214222937284380956450447084016466871067336298704642393937097779424285564449007414965801910000334568198692877589909291823344718211924247144905629575429463271380731263369823083034362005241682887639736391360675683759580210119112741582564235328090037382611897531379881529683594040722880395012503046401818469805694425405179870715356711611144370078884186823660347677615005076033725082901875688646600273212361518335118059319895889994648425373795751081260759838772371866703440520959618553987430929569280151824043510799123435482816896478654213570734048750418953048240831571787343616561946969876924323314956351603054089426662544599823318798992888852714900702748697499186201921596344581527235710180438828193690896671231069125651239477112770833422593549513233397014735929623653248446996056794277029290149394123626173662224282982172613744134731674953039333190429966873622648858453684367284971153196823321138383500017232981357752156704558655543153853727536273463945456846274746058742743206985408119918081494678266495574829226456821309890323120736624290604356252318227173356188631076037472621840475774485050362749424462042220282998073465264257977414594913691490752460385972364320172294236834184366984903722473697230960427950573139355441100935272265270404922729317211797689597034534260573473478350753330304895715077115125843022940903761814727534213084857328349028350752211266381463078299630816741762286555389700317730181648760444839750570820598408039161544559670598254610538229736509229897922603867350906443159154475633615736763910901160764548705715725995911899964686748192773651650687386372333997588935020337699353835442206156451927945764743519586168263700993792051424003228224798079586889772933149089616865047033532241327703197668344743407562459498265219905040135407537094651356556477384740447959283610266876810676468358512437176197196583925280534843876243030746818684039054937354605339316273458226716956927303428137749934847570912851574061019918045570744208595837587652423440680731614138707208869072817636221682933793365967722995811661488339392234970082974270838294612645215243101764016435114474898834315939227109083686221414340629756812869864754945830648632803455473351584810540269125466233543203737344691215690779962322945951685674649282123728273652565152004379635607699278756881542425789283211359315954529579481808591831012719546141238454353175647820851186432807644823115494052214167799914162814708705612450005225067751396483342019661608130955798748688997400738265158403034074881570036265238980564421880960055355965482347718202450324230333453338734409671888398130838062814677058719241129352537680574244534893500853122677312903265274535346350790745622754688734977893805735941867267764095971875758391399144188431436205155945389030040227150162862016968800121444432718697831035293722800305693500560424388192534687037087436651402356810896518758129900092935154877885202593717689256218806161680878502366907562199609759871016500983721108977299762943450011212901441997423069800100619741555273697608871690639043159056906519077715151756748464543426742731903185500584090587650506940123000501955134195325010702262505268482561629753396693491886025622582639020976385891265386487902146182375493889591483743469221337649860238821243447459490890939195476954885564788654928175092642307397342584072349147141172759961000698901767560868476414189341064689014306107532768996419426643253910202955405318777421843342160554091414746116741286206719063181860954707662838288771047191491819809238557848373880901421301245453527296258574655429879879062123808337605965893797350470663143112842781860026170451805347950878805555265708541999735307164558234682652570088751776144237561021494090529121848579231866200552860340642982438160621191668586918254960688070064518869735339823536525946717113184746023438363983113511229293824088439823042994132015194807651144954913278538788744069910475336965200920009918860841246413486083448961904194527278332745948030450031079575525868569795551997060371589826904415049266284654972608761886148484165726963816601710057090600896640056577421108964036713365977044929977991580750499244694148353777595986016111258378866385274631761393139382579056498672443944637739574114959016126082037132314784352891400729276999952944905652827915778713381549433700147509752542841868123762693993770803553214495531710540559702886212446489642010959339541024526305954601809079272883461778022357517913144768372786057858452747543924017219357960448659669480462351233517858834448693812386912016123485037403447344060671637311791857403924077088181657268056345945795687177593926189703791909642901150947861187262346922122006965467990731056818390389741151918990102937638825054017958423266039565394672305317824503154657983756746237419606313810083783586256725987343105464869483779263181799194721764076036583121102637154513285076353190826134131989289637269854474754553335876140130670308229782709942255578901258023777962396504560249098089156568821705489295175684528681945293134229266484754555361260941390001990270331240467787853684650853246011303383485350231167422792535125453024007556572685075386758836876275447528893407060924471389170134590251895577369929954937175004127152991577169978905173466240311443149484278212310917272372629298911717003294701438644831190836350735168918120139865454175777103754955201403848398247815860632323732888636499756636617433036854376274096986890984360951517966530862525656064505087055356613074836653834207330243128932013418237333267092257231559775993804414343491367607804922488064208173271995544148198545160055235400142005558172823015746186844280535223130931100528223546059476056952485840904099738497325193586523993264442361630463460580174251399078664316676664550411584493165164252465541348971581752304079108549587721583996804346745156286175631404538754628371063863279936788927246293803653880562158016189060826358118724633158904034515269985406813004060443239295189666315809622146956667916248346494603211358313167734593066865970482047602161188223467202633220619922423084121884163134437126927388904060916037388264510839646695608045777349509148543258153113610319241092127688736937220748592737700740015435130378365250350726046274428454012295629360464150319787180448170418201170107723672848095245132370677985584531855604355929147193345184341754195081788903741824159264778127593787193583336244598441104061763438391719243801572413803493806030614559002928428376093274548795383616054338714548151929385121799409937026567819444225660614586000315808963207808944776861198654659491748809313730415035413159266394787811062930616557570877410690969114027644661044885111812802328205131131181313505214571554929861617448609589568611530806178817787098425125240340689287912368804804839764143148865451124422425786144425503204588835507248748659111504935905680150001756562389720983106470029114196896459905714370053615909515966993656952729021255308144746538965227199535187085504143450286987239847417508897775200670184039983737085886394464676606479421045136412767129260087407061338475276653799144138959213612474809491008915597471154447421283161236283058403617246490180002781017396041808932841511340966224312464384367292667699996772723026758424155477275372167175069112883366980204963666409368310757424544865488822362674376547944002395055216185711179764843368336932403997461119717486776918107773604486148870050415737740463815220439013114602632912360596216690196678867727515468405574263551803778932117873840955935281700006217694027920999515211025512015609651025261167180212758568820322977021844221098525541384146266194831321133920417321854948346895197258798751173212593861999165748623114302022140648172086501111184259935302521311141021104715729965287116226689264141092802452168575737361974556546852060123621692338649691493365268874277085907550831371162477359708865961701350743677625666791193466990485026916383237296053992763487249605361908764294330102567741696761772734441150774201775378176669392962464032451103152564289866615155261655188456899390324073609186809514646238715805496891738449069888942441593727105895619218761517788275991693830761578439828623881412710062653212416723804135562225612746083795305714532934227048149774563208778463777536975114314559321457265510348514561176307595166699613285743926221694117132324152592228660047492923952662659066424955200840232653208812779559696633498474985814678627069142651763412298468620759608522017933726876940154541734420847772132675776520679900035164933446366552460534731966809711096931823639465617557347656498993106512185481020532298036317187727913776606255491963633071245315098988492222080195849775269566957462224468582872838898047737803013162258386588867215742120672422562109844620337110923490736904383787148519774261327047362216033838887519701945846040712575164852524743371937267434381716467255807193786539557923432558537035194031319131993483767399125733661019603294285710504261463415697338844113025724776878655396471497258295618850514600191643815359192192179666052688082358194024569648684411543882068418658685590517034630263719718045673475645155021114639534055782031648118461685763375202919553621747833404470239175220934186831446289652510060485744828153681999336785686886883452053248044602654753989187024325413217679407546305563746536735255740143111183783895363528431283879332767028518329584322011412270707623510489126355008128132734457353752814396733842725606180842425010127142379298508440896275019209324332034967582822135504985874533913104818871271915686098603882755067386153629747341375290697923444688940221522993777831661745767197946444357218458230458012601347510942735364869757969002641265409061673907406120572379344659747360647969868887790280421783522049268584827527367385359697880480701646083357779679182023353890733614581216623030978007793309883893611318910775307777392436885300294959789734948621203587570883675511126237770681195303327478826282497058789584203253240719283627112072815818584198379395279295264485868405798090870802797733109840508377538032844437913316669404915201326369854601186732680180143014081698652397252023632955818745581662031278640411396096643977786713111257382153339026326007703092129020090695353020339502979963106599897431648368630616140195792705142210209029919890524129144454279681661995165319535600037469692455775218713799637722590979651126136140220528000232703164585588772298360957389768434737504146926597456083337709759557758434546774912487093702089405836094846459100050247140616952733392478095573085405255300808505114604735376548117295580913215079129468884670769917329918438141768732776563634964930786976912178402489245246819911862146359807695621161642619331121235331639349420120793681066273218651170952059447346022384488957931162021901604646877086787250860454771583592342541187343132630565747138994246317004206980001828183133196102763961224490698242897881039235733594033358491170789366010919991243655467299128698859517262934657653337984834744158527500430436740944693225217563695281033397211967561080384910675525218692623044118846042683698838536725959920862473035231786246486538630258857481809773349738759365819815206863539510878529080469409869836251606157503774816879763548133946420180104279022491888612146916875584670233069215969395335750863810232460925137060000289260739443981910646517021743926337762977661316257855284144152164847486715078070953776250637591129006167550092156500080916867857311438693769969859901997628939838423669948854529910118359763773046729984062040938583588961676043976660501151039051871694295166326979266376354143413355925377119784381292866837974973694599365896717803226082836823957099525353569183689864607555840053982327870886646187244454338829125403711180787565533608085538473612056316779476402261009293404828963732545963940079043334416852129577618603054191049152856179684616196191022848527213160978902788936051749068216646183893946037270765186559397254364717037269221195838114223828551920521164795316644749523951713459378821427917511213891434180752089572179971923768639747177657112215187168880953219452516142887221347710065684345649869922864524564507013782462719414089251537529278025214986798005705957725937437181206349967295037687742398436330136050932834176836893019623054763794861108277460888269440145688159310370081220759727109965200273910080512032106450254410496477525960814608775894256434504229318755109282221212631573656608583897926262161659880083692889766257871812384911975158702765280271818793765655914257575487829792332287839564271111991168958001789943771484807762599078555100622930710922340511608764734383751694450158099912536018781386207526285013401942168665451660189375394241923260885808557203578039815863837567666847011255459864606599319536223112575731256941066319612596243173585569505567117476403727022813929176431688097588644552754643210005819899220785700906101190378624316539922892642741571233663388815906898178498583154268411011191451248178577222335116415496742055612697588831627579737699371822992897588069776473842211134201821963024298431254099923393659108904308874816644106834729851190903156056802651882076136584802881074220775813023911482717233221819612076239263001879865211550650271131971842847950746235455360223732740440437799900464808951572708899610766265929515255643775081359090346462174731009702165692250106063685961831703369336812985750318650445572324382449023990683200807669399338137439411601667178909482514344310111177966284822228414881791400777219006202059078941263781952911792978200776024018326178141344321662083478509278672014660277308593021393841383076282193618431538006399758772598506147897030539391719279025145020403703753778942121521295997637467891371726487131078809513148079343977666410068839358942639222859563046669980707360519834287094517460478352020641661131424459148865529020220226035660291085332653287849424773037002037578100828050298284628517867769445546455507474226488324072312835955249262228231427542723635389199667288852913422512293669232509325624063592868527899033720866081902571836748035372289021042730457477901274179032227825749786181165347055684946363702650729293991769803698083941351569976018957858737991912451616125203977708322779964232223373943691527806853549079821314978763277014536230716854762383978338820250328310117281796729092184456318190255534535425615255194234650283094773380362904778277303354092576469185758522386162711329274701845752951477768344596317282428517261286222890167912427929175741840576381296673677516672911379643175097616334235785762252730416730939089606196903882694638438219097264721959459542114367666271890053986409349634216855009969696569343634012744619777130699055528206251931168731833068007276443210564631369174363480128511832256726847172357411306541229945260833575619141342612280385861770128426154289748232577758821825571555679881555785916304151753056718921205092090245116934155955053896373641202465268402995933093488374388705329093443172079422033468116985876361354485095356010945920853239393530370765978439392190443514088647503192535279077733561966031332613225400379191409610112942586831194672116360453574994773653628537354134469060909554264455148903258025425543230362444261890325068868028383204131895239173168434104115079891282353310243795759525560252587366672884675040491583302443684984617944276610668679785334966817792018527699711417839334605049121283284518199026992621127477810629470614959302858468145578104469283657751289739226581205299633724068356091839550047765580850592790459992908315393970396682634180760958433415732174755841013735713779274415684401782845071742500720628816082400203131752479890857064837335918167547241750092659252262466615505021206825122899284662771991900584957477750140654394978085725801838030223034831310302964926832056866574815104378556432835355881966132897408747307819461942651301960150912176994908677595117179310228758948670872211553010771721572429261353581294178996763667129924547593859090752037834523373948980290642278053118109084110976112230847487707137592682088296779556570684635589906644402062848032020633296461852759480617190201992373102430694818438436798829949663141629884004997251596532489473669883203780265441156706922646874125543281518501393046655545099205584468169209434708729547054448584813246314501096318314109556074737318157875849998988826076011834399715950039466442434543678892842670116042252660470303203258745612639318010254394288829741312693647498182406106534268172816971472272106076284853159686272984673882914392285948844714808528894230623591825081409666131491468738046838247297397158535683769822920150290359301848413388140789794701271066080654390214399604254395652334890007919608641445056999605675050967600161396239002817339959718024520740129464895393271634680098965685205900109758042362953141241342445662385395857445792712779625644476208602884947060501968765526345529994440797724121460482127510272738427473487882176671671279480624354327736948284717737062701690919953968564221578600017842332936726988072405829316574309983411568729562936224635590241387947153546443016660525812319369495557536050640392564935505542144550524681972672819752254899049164240610948987106144545789812328460899984731611810482609161262182078622835386502327434467319305696259357485302419041134909406830118388081784326479630755293936698697791333824656387655973073337444160342028006255759734009714636272484762592583021337172358013177618965010660899219003807399275428649051078101940281300636284563399938839479356207326508642140360501672884590829859767263907408709563106732751835892204379730010383418877339304969384179014063213935908583920433656934551762734893202692175212046402142280308289541316423516911500544958411243995531201294891688080871835909569079487286706381726575518934273379284240300863701825033246469290123938690140222436524038549569911927482945362432287253858390206437630284081717877089192278701251411462626337311886293029773324957725963309766602245495435805991676691675500302865154928247442127076000377864110920864604136326083118837360563788363080572470012936275526988742460373118031166973278564580651289772350503895216013024210497730317125444417438075896346908474677665450952988915511855952161652302976967330499079653377902463929371787265483625121270920222653382940390124842060069396630651147104840540164937309714612913218045966400403054102586603223599418996491484120534215339782967760522806632764032740172473421450054597240742012942828971927194897526704008131670361588229091349772456805698486273607996475461794613631296611704862790731083487455926077257726013080304079811337357386986868131951698382617015307456747446085248829862232419280575405963362601368826267139853358177433309788028981600668191011040488819349965043457838504623026606938734596289323832685197098117818272639125440641937637967844523095713777669486087910053542711018008545931450228181211630563861278529211073372812236214923828472549317174841673415175495154277511793101115343250044971662287239946313111085360877419705609051630951577492334667774047712773358540062794888413733304071842136762126993095653338088784988132746080179462561958773645468614732127757583601069582318897850953470755980536951330331129374649073772058257897303972342787465703302219410117444502058000280339033709758318981092239812569872695638222883528960555702800381685299061033656154339873985811104805811337586398076265782842613390225509611941411100795266496527777137114439996275761261761512557898546084951360683465971789642422694067813418414085175360339793643015054133108964798663921619991974998983342627035871419171742501326742457127855124859038221802609200449519906483547885368877519015715924575251640108819190169426186755057686114552973438869051721302755322190560172877489557048100010126050279719569342303541224451178481180027414292207905663699805375989611831333132971909377958057125503528997117746634666939000978404342060477084438897095378598209927817145234084011500663536711513955369385215756051393982548082998486865022350012525390315900230158813605610700098328643377872577364285877628137902978689127353399621388341469807405798552695661179402487824852347729522598188652164712483612357385775623356057370485959358288914650952953529963920398235063061316337382251649037109995440288445219584598840527367267437896968109392452022716030972482181438647852884637465573709567776902889692076057149571779476037432195695941451723782069661163957957959359812383083106091198862921283493500098458537811527148948279258755288782195754301404054882746525906100441835767630048442384359655003137082725885089587143602220528113932212985053584176834669849289000383033033813327823862251508516771017951947763739636966833557187965377277984434689058456296862620989376954745634797470952474474741137071454872624154642862440708897428977072682299299200561835252243244566090734719892853976739317828790289859724940739089807800753454133028217442547811123082908230732754149624619226939446160452004201654162227878619097223216396619251537480105833787452745000822524463858847562007680147665355561155877142248941794101545522427848931615914267992803661512525328248898688346268835518837934240996662769292054719341182384413186800948344092684521580160380596943387848562286100540109497067990675615687175414535403513378437609223755406934793890169979618512135815098661204153040415933190002143628651624890819261901308349972669833397017749024520194437449711535628328203540043226201488447672188806840071145413874292843255218443478953906459723261571539130949744321521956237030283156018507961580449964795399228434624852322321254913643792873079807681390268827334496340993405460200484026150032346008045330224073749433203536801317505327947919767545735889106584375973329872822142778500705276547842236828215491443687244703280532492745895022986467851197310715437199571873156265611212141864318281852021361259204377104876267949140577781922469082843840500783282940369732772173649412043633581459008665550950374154258973660516005325975987085206128447106873971756046886086848176545746959001697175500627410521352259553222390378848923243740653151842363991879758621120648285403679695789619078771433694991197247506640920192161598481113214990851173305135892430602907882054224397883182505819869205873644241518887487282157884397171376627876962415501821519065889032338357636105192041889607486912446890172676635927482238907186127863187549593825865900342915064486377944408776873499159689619006575853560249953291612000933422317736059248237807863414670233227656421862835672608091878364258671875789989752194207627616216240489162863844648540930162474615898903859151933158116851933564077190823471126094155048975368404278112622321574622078456977123581725489022184676077426506821720812294963243529606186410384056917464104679715006921822644275245870708144839934496339818594497793065307859363142670158458207308275442625359194312734819287408131987282178802548200397140128278868858292138558471221467283664216721725944372004339578895036570060217720416718846026393235362680329671877322320406772491485653894829579923434815875050375049326849335204032858985424081666889651297566725711878382965847517665339883827484491733474830422380771936332230776256379385956924415174330614379686810129047663692087393414988746701197097527891248340146815899175756285933689534207248921535425191973601638529312570410463800240918694305040036388699608886926411433419918475018118891615073798813423950027991740299355978702980373085140785926304658372164888852985674430815373851469834750834211430227913232104938904171054051322003457820389492534858466616264208922042039435188974303132727304997489598311051997568987333000774984069739855226004880285508252259848828368227126766569512267370790340063243634774549524594244131735392901269623095766578108373085675008733504949441452808342424528569160277661578880296336708269638925670323387750864867974416640574252855699178675862542108841867646507804538524720537782974691020697400862465194151701768352907469658076811836900952267463485918184570534015953596432775966102924242713137815036879532517790837718621806706230245252496741527184480361489210304155840026983336518514595624950791807424623664910011265613755698306536028650039317886108449321145767289609426458189480191210393788844094211474861404597474465321200402302646644699880810935017241457988857205074696570310752219647394143055780125129325591906014408379235849442704062442952695567337340029515654555082563203611731650936896967248327096436163050895141953718878205475796470388465947303427916928634142484961090813568562154975391392803976387182071621312249973756514009070191007517556490200482964720869923276970349032411157289993767547954985170054927590395559831148024426086786273439066911456316356947391799008523907492404585487768764017504800958296310408441433204379706114280786035566603543474295487462392949472665879788692980994402463741489520722940030672011851119059645785768844402815477228817673935541970991416440653175837045146712227405819003021051365485821740354681716596852446218178337572838699940994585400725433169384984525463495898866190406606386155656524746471925297730091378487285619738965947686436729200390856820959843780846374416963780866082606729253501831177376405189060466627836322447022059915671746113814295642855424486245497245377924502121839170827050190598684490511494908067114630745239555737272225039049361116779927695541242041793023541868506860699482080580972017216138729225448362419557489251488064550000290566578304059167272146868840287485378849024076056926976468400796775265094350964663345589215117507392158117868523321254392157944426442239407539292203400293193081182453899439449289360501476002445853779371495192701165741755419654582542387941230088806924828387324795407595844623410712506073333022596649773705727025456116454483790825431610466555366289726007778194194038012536364333091870350728575878750826275336022220446532706208136216115290053344652847226073081093632801049734541897907193676892949187986886147661239568729494187767828498446712461839642103959498655242260285385969397379450728762389222767354868589772117615430015643737199611640310803763256509746050662442772878830013617976914798788262182097055743570906006154629176101111233170813691243099001020620335000480067360202124605707967893033832714359019182784106204655918099314851137532430337690411861757428885041993138643022427412367899448195139609335804699196191499168203447376328267071769784170380539215931734369832835103143454914662674192369514235812450893714975511309040283842259159108931761112864622706885159527861339522074777840906982827362753293189444177992423183597598683017016434207532791982632073609286193811532002330425837567176664518975761432957674616786875126715283224340261204207350157179576165782386543825753533971867704335657724896510368623682266191333617896534380524872510817342517887346835005461085225517802694473044256983521546435734515998742261106821985553869813121996764230096451707939977543390471114528138978166189464289083540902036788364872566647234796340293023864904774400328732216856822232839349940405781811948389225026639427952345688938868329733085097924363416695183330638024634407322060077061613345015499250089341384213469178513458421871703975129452050697775609748489444808397058174083021422446297512682612574400396123763434385497913609503059241269278263770294963281449858440509275039217919085753848215281409236799832632047660009761449709007289066798243246416159215986946882142583701835345133889488562103311405349916357637226766310777455990477145666416590184779162516244363351308520902807421274221463624507387615059401592817445475850748778239861591423752836141908752941665457617738834028499812788191930554025124619472803974216921290377181178338426636670010792668469118209624163412404511920849450681478067656202524313351367085746955406859461171925220269196224581820379461270882219926612804911802237201268716242788229202668329240199486445271806918364421033938534151812888652574012928832403123509745182769773805829870737913307091967277804107311053510140662925322878977063826263417213839004052490630827709627830584389009457935417740660917038958870703374587873294066303428243723004950405845948827900219722700545996380268561015960999991481140805144041297540710180715505461070648455336469256610860166571974567461914403331730303390696993694441686309807254782838335914240588028971914047415765110642879555873737524318202084246034190705945744299014526368207121894269639255506635348891807512862975106440624048373349745238217027242496718705259234146713479229848038898251649823831147363335348395361046338427938286818748981908223174185914343078912208748521421992515842566801769827080908039492243359067780400646609098119255273073283016601846077845606361089620768599832436134298334166238719202475084424802606271416950374215130822216991906453197730109082257929825387476579618173929845104398703458275536099943409257893881184797760229590549016174607802577716442126910181770816194760646224011434771886082982987263354058223807256072381587593425500144290342703225457795260146998925889848229411390411791215936926705784767836679878192136174613459708040226369734456673667607442782221219039076060937317451226875065389263058544246204291196076085752437993578553538929637939104751530177243384722538414449310247337804006700309324862593139078154250501931211059357127522554148262921933852540666658937269023981362626551803361443457277186310574631443204817869415828393928896214231749562934853318434882020358881898856873648951753455818146938755842781827069071899279980262220297404099539999906170903752431152737759513949528606446559069417654708161264789069826104387140394650418454523729148388237615950706901020513005284517664348155436583526658916079534063339839850764534703855468894098168581287841492786829407466436452514949144323025131299664334995254835931575787702881393514915238814963732101066537139649558891351286681062745837372372540490443951800851275627362325173695572997542857850876716588658338157884244646417512068880422435491000374265956881246708396946728434105555259493154888951327200733299058085779659013274439015648227369069596399437744134790915988155181749207220347408491855279049192205164091725222596223045446587079088857831692314626298992469968677231714517110986767111516484232469827713909896766575707715714950519717129184856408803187216425763079635552633542015616636539220663015158969986789402224590687944117119045167740250117637716969127271679800403205679288067617308720653139646787164022850284520494381695990155023155244090854248978621102965603985332428509030553739086918229103371906416894585366739908047428624125693553394926336573140254852397744665496940502823144057668615856450799747021482580243216058223328013084140247972658249502830181416942022547734855003906141539192903288610345418676126786479106051236535869554792048521365624447212870482473469809646704939444689711259043708571448383316806076220110651910160299823731162687300967037323709237994346504986334309232123206492747843099618676924320485154746612912809184147347695233592504006729512327781432574595998610949503754627818311926111793222335985632061314361089240016164475130928149879906964413613390965599575963898160478843741681650069791159606528199047091016281218921174415149236110451818572068320212306380329362518025759607069683719274606768180254558426559672622547008243228583656303963668818863725286213165861870004069153071422704612137609721801311815886716745225579636233577383144697481532953152995526377502175108703960452689606688691506506738399645057164439455122413227342065061586859749413655694905919189905449344331910840973462322868842148041130099697216719704152531883693897696345894044026115964388411579690770125610429472859854896662650307492596605713161092638549824066992767306021096674552590933411625561408631824660845585253889283527722692359903705210528886200312847087690605382788867484863415307194531638369579527047694715796446819910820415348062905221554061797916640351367384197122489050096827127481152168268401986447704190546337937516118854537570403056980295796861315657656579934258480314870557092441080290188626876168193829189546686969456358365846410504735079661608061247298597786660299354264609501627781985781741204664098562936682891513498745369516579104160580027305394087393124153963350870717023054853507656763280989987698256203278487964663940665113866715061314951720398710558476839399874212744701661600445487422500201475691556361451790545430837525321631899143850505479871035810773635551192417519059697866960291056877513829816728366293756727322025630488152029321351935649303241279041345489702531892587497709133969453184118423975351333849404156739551670476767609789451141573765638484354421298130263839919247287784315212764791846560874724810237270530241926412234716469754932991000517177722423506917622430517347381742772600521786664672653935144875098684285364386761374865414379433937578960681917983947064295071559478056314323980227323151024149128259887067109152275094364935326760003163616774472183525200834601218048866589864833620784116939012345649340374007447567176893547601491771128296033342028404156676535219096579297525559110590117391522427088725850341575797528727486986190912817122632653102860454402634008817374095916647550243997140115318473735031086556113485876673685223503912396608744158217563833016269252881715120146590395645848067287213138467055820810131242126984520895588610459014206177924376996772441687997534185919987088502248029185965733413100593031787917007644270870646918288520368437032351727873462204054324598177290212198027462979851790698898295467214132811671778959908548864243269127533438534185052970821389179397482323933064508200445496523241992072458409906467747008708866487626905676724756531120596194468309881064298993859042124204271505595255356146851457046993691514062901546867368800420605104253683434726265807616115317295000046670151924925694388649030788911520065394766165588906647626533582313815588003337241808628929552291724719072965119237437533356508482805747351363667880437040367379094840191167009024190491088169277888333529609978369811309119782861346504368800469950184319910389495435020074250338129493332245105583806726268387739962365175363257093213670189337860984048402891357356545603643610738515119409205385729016844010630571893405397600824928983806476329007637477060717720902786249191526590957005992484891765337097507779033922352849571188358653663196089449456541953910736279025650153907405067479271020196100712414615111746733656829568491711213005676207136831409809110668566637015334534070891752926188583981067137156708671393169860925131718270861762823464633025521250234150244855168995245491967097851492167069731193564602104550380333094820454946110441556628872964119086730938730132410604674096115128361247471993933895329213848561931672687248624656101541034300033653342500830695969655912067472578058204469491133991225977572452459214637475672257499374335735310774696419166247271200036538263552477190004725111537298354297562883567435017025283738623456154077215096849716269582768013557653264735682449719181229357923667957627394365742703318546650663220729675499941157794423521860404741490747343439994848027195650068834751513556422758275319450689393038895660860262215079079762600361550238510750640133973005189571636629592307036170810204732259000547428500034910237410380553405985047272687612850130210948801921186432173049453577920418314820390476321277152766202263164639537306175165098654855358886490400775778168569332750176453281957671437504347488935754834181397243797291407253996451010408700324309328312755641310634045335833163991538553067129985753687372847642358579229906724332958324995230330174422372090227884947382558425274618358778709671920196526111659080648177760370884858113244683227230739118553107633224582229158899345994368723351416901902385115157923457420826776600974084299112535346951106111241909027289348084250566790468695677951328653433667758931872313921507934085280327915739794538389428645121158072038633161652336971052219539116324234936855717294652676509887156702891618808718640395199429237602953247619518834840341835363113744289250566808820816651718445623204295371921578931992678153940823239120979889029734141414596814290868965063770066428001770440456127998047965322300867404485541753444003937265677204421753941217246034123611332517829197521574147823480768357316174571099591388475214509173652291892513956565718009042417311382393100576080896799534844183052365058752892413464055879821726316815445632885004172638904059181164175942684657037829750330440442220902293574733877597943616766018002357109933431842764893940749706663979135820762968192690166153238632227349245623922589985701997568442068551742283914887775090139186491938575330748382298803816618033036588479597212031137694464987213251953604867899804800763600943196160117192770422150261119631723859776616525703585731360138658448137388268285302138532109344801328983751176966437480027967797424239274775169390341730101772561610938048507242524134979814427729596863821904937240175980463677900162208842663835545540812704224264034344699246392786122805088452709681851154390277098808654033914368436127821917518738895873735866795697033112480845523693065107374972357679684712312361244735923602257909276145557883242131489766322882975994859072955297922150952620033184767814414828688235890279528563353418369935904996975922599960052235025646565586133535126142403698382531042159037392297605074067336609049882796284011933899255432942513575261043978117257387056478949898120510816208821538902135751698481342621647421730952534493275096147288786315286158617677569728775677124540770491178455140763138094313152606277807406270337557925871891483344564481043459663862700383838859608501571126166494884913857681928898089730202910089232876709778866990432374504408588466085147648327487790696173430545100551483294189499542874115410326006642424367707368672189788608816477207488814174608764677360620985461751405872798491025544952177377802979616305293766002306532393492060612691604020067081283399030665072487919690956423133283204964388347007963200819096074630290217668911251112902713465577831621325595626940455954816439662877815688400260730357299151350753448275413513412151509671527291552132151050964108747993068740909344870450989491204437181378871236681120117991263240486700343427690032763121036551641917918048560777567419574000960871784589841514912030717433966730632585051610654270398065597271780588165966087563564389648671049687336021282565751540165193238918862228249629894032637863763714166930566324953358916277045403698163318780261304105534426759128086440779827895227635731184026640638156749888101115351401963090045510484505708904865808782448037772614148184536915872660969576022390884998158894585032392778515333889779253379138075792455325780788842081521436584957221177862245920671211165722558706802016705615445009500684280401687011102469771280325110063625224723683417521446790335793890767533737552406637032622220312718037575573929946724504932537071141500119805617581313250068919018659841421803144304402138606498729954250029629570263493157381221447271088195707403938667168536790781896613792291154072604529245203518554073852482088281176022940794912648330238094249823561834307769386048634511091233365432006758930872499934308113420645755584630442053283540857876216969986455854809937341190820020739948517326860687335874630456362466457620643882584266536394695433483818866439594728854485673679650834255198200331811270478428141526423488213627326221235850562288039755851275813479513291325131820199398609212987239711432159655062896336227521242994165113484145520686931195956908138054064451264854314019769921187083979134716511032141057313940186875228190571408034055524222230502126143224352062063490373144338286212087403110323424372613008383044852507823468474535836907599358395461832710531382148683085425432531181260507892083284834647364704708366711594510534048482956630710276602542112827947873478766914003309538994509872754077646520052549740592114002195850437090202976916576669019461313162487741086656388543047084132221438709399746375658898489311945459052346517944832115560618683697194803325808054859804296030261310032385251488852176863095733584932995865987570597467268015581010973675223772753733630101192463547185880518065002233021184236012930540530311245096755916485735653930587722623593918708096217366776591859988111958171933770825750137609173350164862366503476056273377675660669366283931366192119739897182420848044167294395598584263130830836972345590594259691672669046080953189682880258764967053515217577307051229622659003110441277743837943477976281570017353061667424638417462520351961433437372828271487466152582592984049993418555408001680628762065822846704781236706889439718708852181205079566214227006013040186395120596446641727796375668151916605200827088924521802395810316165011151512584075716913391387584572391426897951342791872488973761146599600809626185614683780893478826309477906423653968026965196416972536142736165339647059967370160159409494475810156239345133171086814607343813279695168184694975491197917235935245940722244241427605898343338340385040281058359659235482986603697873323901959169694156254366280963863106315567594289340325114647809133956647322699930222223411371067953037155098849597198632440142983236530314013601877609658043581862404246620956401539760420388564956391972217493985049713119648998959838235584500368132513229194889618140155802360315361542841883920706977087305672979802746467879148637343806302946146012239449348164320780940649607217889266818980306230720641380834108859116445450286654350114378456556733931179610483941238735547507792929863241711555498116963794901027819807277175970198677270265704606140326571871281154799663648437445008538367484246443012637944239591328873265035011121529560071113033766752712955156755691748355416720351966531431300914636723423792421382296130360419892175124963817597889155977060410004048139585612643914568837652365962998795041677616937608744333430603244935273623075447039611943287057280650915513691211015548789236556804027679976653175943950216953072775618773876536970867084868918194367467659376717988850840275688184465801814535279433166846251153244750879528406526906955983291402533897571346726998729855992884163175982254838787737007237395141471665991939057501492860835677551691244112902302908771691952649337282755401727818527925019151728418099559714011773921257737943765025003963662154800840302146968373484860277865458488568187215123677391178181307332919041469298486934626598475504742645741023668218744458405745288046597321646739506778332257447395531231197862476129015316631856591122538692098094047555302499495300346547964598704597658277142215088956624432086523168375144439753622609261391482786715447787286234204144030868600099691561071592585457408741980165155947011429234969068924460556353627972384312435804293376437949224452594439112401331023963278806222348058673638964627444552844071149679721724535089004577960708474237373744649878033287385228892433275629834149454444865487521331762378628694609014540391159221610559626303274233426137156759415013699384063474599340400840930048282781195775525308530685882246211599407900319466892441843965449258514950309961181970134617541835990106302158770467934630972968452070839383502394974727876461134375373726664122080106245741582208521682633044341160453261305958815459097332293617101200723234807354901862902110122230423443287446691384323187949561092035905989076273612238188317761395378225472046695464114342564206607667041444892995107715705008286096163786037842773428776423329025819580066362394904081589394437223065577906791548054119924014810369018809802152726909506092562936731009064609833398038538469641880998062248661110546480718912122162379337819733455041589424866402375064032813080214820383603307816817028962126854000116367809519178323433047735660250292670420450623212548357831497702872800487457042321946151105987635077654835956427036065383085367048866361223459260241956383972507418050317770033647073574159707717978829281412222850321721375753752541984329141750321940019361044568146012721670769596534210812107149382709693521937332467603994054848948396971094258804512527401633953698903589091380193512247471517437739454511070462140132322898266519459858838311251012758700424105200463375740991912595171909763981954256444542788691311382806966909916253826110090900779068551699895439231031911452993549543796937138924275141591961153224481236018472984811653371786902312289570361519230253317403239370375191102330378636142081367693279170783109655621514784332478473370463966686778803157179430806855565979348318738970697875454049647662732606809269499974747503018385166526386387216296682509226923774635027274389941420988487882693613296710887228405282863897689044872931932358217972437733930858708040971970659180129966593855674530480748683349786120210486425625928931855933569861169464323458720226404602269394585555398725603183237294122443504238814882576421032668712317219502469026914297969362483630530513652206289216459552615386342280933952991036395735588830987946250240117020102446339995657981535825139586772593590225979698613666247217974102190826358894863517930798665237647326410150032778755362182296628358005082551958969284520736437623352320918467555172204050746641645035420958361762032151690821674765746110394589097899960450654979464729157526350124516107067325406977333353913553346410769293686175753943847267824450047185418244937528285379411934012279691002475878771501977188107777185838552053245825731986380143724397129974506047394025649408473733750677450276563908364716318061013026673547123404289362369813654002606871237396085894894743725167532526196582924050600050113978094784335503784909211574770625598854489169825962315962170253607756006026255328940714949838056710407944693469391233396370669093544730974118556935885625077490482267566177832950997026669653072341531309341843286368566524535252739237523765075467296528681521159390626281775307427768902855276306542678556768908561258979209672854315479281487942404750857354410732750566121804144253693261181465370742480047345926136752609082887277880238445108187223479455106376193240959537957368767543835705806758711703728060583759808912032647265376121531921390225101750001575100243602927835196447662691156853185192113959724433552637992705111390122010252810447999306533702359580054252735087530417147119757637473540560285795967460451369619949304153718628991050570636542277972432506319589326744151502864460757802640192039460474280199301431263935039452362514673688639297665014188812549714851616018952559545500323437534866377917717554731211063354183705313708816651781365369562138395847595303724985777050505389285409012239988671768996908518108637876648082221666662791417955461432614799782494969888878829761740035355502250195425568293506693341281219730757077175901604090610909533304011797389947384215244383141646327045863946748410310053428828646383425084568778815448155855819783396978826723893921860163402969386202673750869388211015494269605797477066763097028938622664067066310794949572355010727147238923850140792416708370924524898696457638698592550977738731535153238717520186590782221677677370262853257696621246174515114039752279077473214837276802319991337289414053182248688555383608658979999279223374303438936284419181230983665470547539459517991496041974337199074555365195560138183616000417330123451124287504949563189401553455184344272295512434406593630528488546690955057059716400835104867996776536790060899197294617579104134229362699280463866284230603695857148577658019315865879045470668456350867745181647416536722677619724769682090156941629661079111592246548170755359704010121346257888688987824772407089820508186372136836742877379071658403137648437232980108486923607924337967086393229187735489211145778465637957328125571912807154449061441172366478937144650397152091781317979125686111447669307679334045069159753370399836078351792365719415723314197335641109593117859295840656114752075449519941448506829052494415949645606800909301088547138433140144765240497647029317994215635457928658509920985219311678886785655658977970114725660256824375053586901786990409326802530818443428698413731968817484812473835731065017329671397531510621593245307413977058572914755449567588445610708426747957710081086557854412241291498017822126718681780409805064632162242745483962710253285875165645795684272960514473028176338689899809618791534848643868137225667561684902763674918406917098598991283238365772016869525379580599246594079176212518770440017942373500376489590406316967267499131220691109742088656288301701921642527634706686013351570260082051765061290063385799391077562679684388914874698246929138014469866539459578643497865564552520885983165574820543312032509365973587962716583846447482692349316903096099149009036682291474669952471055919453898085863267352105467081395834208300220170989414250544131656077967226153028220729785721635617451076805935741759375086986922803147469437959684581862742491236626985963172511254248104537337953170488499546797828637167184424124062479540318865206077606319349720903153121569604254936487298977319371288437545236990981245938869791492004411818090250983292386199355682249820451121979336165353738864816450974152575536534576883524505383266786092769317644210502013484866806261676338907285174447618775350794570097777616145841611318881378261304531700352316031720864939670232919803099517254701371400238683204389139212804629448030381328044948211996040577675545827841917743533042023670946829285284230774657891759289662147300649741416829454978026664357634846194482293078288697284832473076433156514150160627801680411394093364263351046225433050900246000100857303204632870311151234997620749611794962137637354718214295827856066815792289350888103231038618926605954964383757417808010250066809437520635830489701763727939160695332036027677915772317004318336765633835867968722661776901902893975694885974025619569521787110046600989939439357404712747976148104426585989300907623193072906451792057267992833146535438055630816935565617139010299611777814519335514300094653897194629900130999300713008084385463850647715267992706657449517177138752042424034480164852397644760619447518747119189931125748999080475716599606558343072381503778029076859576113823507943234414343492810446073478950999679283326491665127320022747227481036796058284541368436274282358310878561184098290224306921954155887642962597660094070717108378585059308391517476063045553115696515550441488721564075529015622532819479222468625373785720387265224779963766829406706222581784619001326340219720045156586797015232299361555514295500655519466078431556148837965083494933731679814659386000426900107079958125421364969742037115992046829079716280682152973792844615237236256573237418992950574463615113466987154372816898537171047294072541473514578452711200037778152335810541013824061349505251077587959142963877725122961715130810383123023230360696623912817708635397194045241555702024286931419696967623112646880859376245566132129201319656302963092314948347422433170275719719063316159772310817133124062505554071470538309849963525233215762359138674390429264465575069973010047205444409006113924891688425699530568639491351276343832250819134943168462070086551457880707362424407454531826542961588996328450751783931833888198841211554649576440718768449513478294929781005574711606156387039699842552800242797776858562526374544517052137188520634324646028518976362327066156256880076382271765155118666070875819089070422829126724175488405829956621775987342169861649652389855305429783747463565561113888890989739864072637389104682415457640786561083691874319676499322078471196380413244058344962170632473747711165330166741843484545440831391215613501388005821670372469163698055913132534199473095978952369756967779953869492194551425427413590952059356007332026469130794100546944535743035909883060432705175168554830448802954565461958312315628103058215695599844548925388097120332273445005494956967747130812180570515999580347460079059050377377741215139384361738222559247940247884492156693430842231346827446231779379193657458318109523699878328279448014555239572859239402762404889049085232829732593017221685715367701982344110029697071466994536795259110737938750518267217963128853836604006000796015802322235682831889135947033018636309862841170019855814755784806458988633501076312848765750749565123316785642155255191384889822943569395973678990462399958381869888243123832619444073934290867429076107776043518146163512962323303154240615882545028441144914282282311061328071212120607379588688280775637229358569341611396404801332528489413455680777287148123435657027431018872649395332397543242339022309541757919971344653540863056802188131523681615446600567425771352465307991054934392381199474320982934835540124559649903605189068219316500631974773521357632541694618564397541634588479153678492645607413883247281036799476915369160763174076725270568783335989888633154962690156625964408235710034634493202275173452513602084987478703285942984533544173815796487200605818625046114881060099204625105253288393896530252848660874585958249714475574216317705579610621284695054246645193450767831289438495040781770706413599351565993710836205388719015605866495774219467742715306908800028604543471837633948423215478768799695527787783126791387526707315706251952599940919781075720966487682451556682625023167554228825900319834637431213140485365115382834167232004595364019992833381695281844859106635392408313381248440473058482145913457612493756108174632981632956674263357065019490626819176921349824291395327009748693547696864288126724167079819300849870848681421144485126465536554150776306726361280615787959276702812474448223885197663800126534620545721188340179539463214823044800554454110472292276303446158872795776152436415616374697740974443608112786130465403340871437537862793128274164008182642086339611262836028639117288782309685453409283717365594276685282763808023020825118966160559238120399495213402094053562891519398908985468432967628143734863334996087011472491042996889741580739006187342416692681611894016719493021717112279939623169366779485194003884561107120734297903900659434078480835371548544542090975984155905394475966499479008750803594980620438641561765795078804474998811408978272981102724184250756593457748001463418551696586207154683263611843094564555528995158422302886247533415456202665382686747345082450853761851634063423514843314801082785392347790276729537718922916769674211043668474273809508773455117842247319913890247027894863096517768128189752009651440549555887982823621396168061501832843801482209056806485863874381520643135745752431539230625141651923095159287781164770106339078151724042211620994190321270537784065851263542245664316759536267775409730114322437847493509801279472251882915280677418612414286204799701470110621385863131177534579844162777733830343362761797159861601329932068724100435807549673131284139215184167246051368427324627231588126831000994585920457173078856335762469904706497745473781030449582960890188966716960753803168222852311370313491265511882608110249237620662822884778465962444747181945423335479472679283860658715367805935855064586261937178686203988069129659398449537725100658946037187586351246041076772013976679087698862605501137363996192140300863849988404768145740622846883323650095760962377398807312770356457096011675593031412275939063459504804762256345900852523577327149981539061860898615538758160845729358606423490896178168980908090490094590086729426433456626742785500130981872578805891181789865946704974690855166439810543717136239945806221720922376462175862457720232615506330329901211005882896610302879367687919699457493025409864097272504530464498797249273876777533189969743568431522751316209063562194240294491473742969236787068732452079153653717475881330090498084980371475421203962343968311859083086871628282173808967025013616557739624101752114148850197788648035447269798555391588935210325130459177790167313416053721564356427769160752644165186821239088252574829881576373923861334251602357104008141161201162260512290756417095969793393648637931201012067650227484291193611698917831105287695691896629591747420264946026038260435416225287362592398075671276139122046597541670855361360080734489442187453854560772807639276761100285602239390541966355302260741198304069044356446845348291790266329410737867376187331466956988838357185511659680499681892784071069698455390599414952859414339648454979564751430096870363529344666442412408792405438577646475455663726019417978887087557046094138090262602786430866810762134444640826998097465665253865470266327852401657242825485032632849321815408159809663198852801322571331361431321558107016603640460674117710117203727759073263366888878908117751046117925632082088841322002436939205089120024030708203962497370569238678995446850083575956756172862868158131469858505399863568210700546074292967077862214001491108843401346961298901231196412889600355528991470079910870880196296319015626096839180067143003401704810288455253057598832624258608482080320284070377691344334363763995718600697195362615759441448714261018897619799928037553491089756509002146223336942376485161008520148251415240980185565342052650104139091797960379640969821706796348873701072598148144321421811046397642288232037503816639380461289170496115005050998356053652097242220851827453586326065362930937741237252561022440838705211374468441373255831133686424742336994388319102253752218647280034604058389984845236278248691108180183482435192644849799894876008132745169961180290695492414563251239771274850489817651958807528127184887165317831045237359341641500455859211694554682875998173631517958395934204104522608075160162009154440391172715814513941317771278288397991613498896799091756175850075335693684343567351428392664128255590240028459461933445919193492111741517012155576883483090720095499749240365899439372328244240796981310976954247159191129289432984988116332026132714941773546121432993263124403270466432286823916127617981320810332448197307413739278616861790794195630437524901841553307505494857008207761823764500427728706094092428212345948924322401608812819843763670917309069498373143691386485422413366883974277072579949167413075827224872487297587762023666832348375101627544784090850614762891319917803231310620543941443012413711151608645036937494307685566917818436473768709907330398299911425022722973755200435654884442663738521871591123555204653020627291752153073314580965209161564523160031425660214438206993233691036603477515964664534720646035125170112160099329261813710930738855768898679109096410361994528263707003132858499452911998284443833761702162726757658236925006790958503991993266090223156564866621534166582868325474315408566536418656735448812439222743869741775882196113539058843224985828338477919606655679257303499741629000538117791221037274742352681676297651907543005723359773026844246221472239938811589816356226123647821463620045290737670701342988890475217930767601274024260348483901821674125001565935737128502416015575853816332086913671062735879168522307025217603301228572140466923347847840800764134587948218636559189755956594886549484902329681313705143359845608753305217156336333045278442574971891001504163405711292680829506087342470686567662207897700910203186651061819990757823003523805812559577186183002265968837565550735350781214166452562145939650030267797978962864892681627912455301383212661565128690602464055552108224531559751429629495169227901434944910977899713073896510632421235718490124339193844756810543584549786052058016943852708182121570072634227824371475785150472942329963059068314910136232583730219477493576719648128698465758465840085292642865912750736377579451430749197679917423650627370031591254916645455425288980034659178586209287726593600613414600370230019764066222416432127284907040631805860563707081753787448616936724737909483974719325326774456400711644894281990130367924278054784678669708100634064109592717412074007126351549404860405972640498122352632833457975584337219684792466470051480714099049929571090621116323097748412623222107736485223566663810243854687900243553283728049400220542416925654330103840680811091361692787018188669383492471646949093697098029957909139054258374853952916358439942774432303742418386141903215004930228601784868756520046096598415200696700114414562604208436682669898209462277412341920177944674751464435539644383627999730120689839739391476453682338156544012182754385144655644359517127920563137953061939828429205763174435543504445881866676092397358526514067727853951518020177104107707618621571978120216820922828005152539924262512946653673111559540983729380830387061376284121178707749745327107224048780537966604279779071139892729247196602158796440676970201974572013471018826781498867878797949464306594868216934180102452460024524559037542940926193636208853229483266271208496819640829777279621912398615529010479637325378304170605694842351720448273011487717682176022870619513846468744295269980307339967243412463233708931022102881326478667891962574187327718546100733124805284129743373597810805968679231557123930141691458430198810382503138707000096937853677418193104527789733783370250193748186047366960610931952287427020659231230471578187243879349339859675857599845995895162276331010309772333839894055891403419381542688296394212274354761849649354411992636436980098741617894076840218431282355024351051621414269065636846138469295843912581983632776963895081974996457538307290283697559348735406629062475283466008655244569304548931593139679083956868059789403640421485265401553844481059372666302114637257136447042221749479168284218826356149985562609355242293572574873456341577045982972080365298710351147404858018372874982537404531737197853607578339216690106649515571876650683307737914506756070706174566352928439275336605393024228685154675533246201905372053025175590145218932541969975662562402134593464506295580139577687268733523812051833889489910646365952059023404037551314594998859660549499163786631184495743461663276374986552092700783739227637755179337053228663598347481757469575568977467483974938730907320707856908132918086960733681988254188620480227029796620205100698080612877296169712075679208209015547768629203614607468263723028999368523593939373361725223503602814033929502071287907276713281167256045133867599731881773293809479258042642111550975663087759346170234428316102521114427786021970746385501247585721299872583552923047824927165589267404098169595392804795547049456089510926270709754136454396532433210300615720975248938709249337220256102339218090057050373983672924458503536061755659615421654930989850577132982752784759879305888592464961563258336147824317462633223923134610658243185422122870965118451078350996956364150391968738509087563675756145918537185548507871399632331009838137421443949898203948452278123723787307552792172264167343162016112126783156950312012258117869068657584029443924505312038889806749033487646643829127825012523692315728602992934875942789349969708852483633047660873485190487369719975312610031315397272585372200022495735265602669116132276837613686019612144634260270009532134918401977300784884998004838022147758330581920977401221232587350772074379925361593948268518405513547934263020370050635184387268957127605536339574072292157821651971047556001233713149934189286715270497272515608887508569699667798642241102426384463529172724820539526864222809563340895872585807267406776637695347527951544373924111766569520009417839842674279403597236592742197566582173846177109382300130442623473779265945091738107421604458741040512464553304240399451319731028713969893550863926412239915927390451027919355755998712654896260958180759779535737415918836783108010393224591463079053671788432425785406413213848559759409490202951428268183974912750955741139718605396003559502572521094203903147990491348834391592157828807367661552377065506533171413507860995913161724963025128601148256310722718044953957449248071153687687535778330290292011489202152411936810218895354703855090967747095191838580914349063421907328623320083078995138048222886268103703717935138059698715719849596891219848797060631586262106577362897041654790509216731940749498300480202842369384597452639020675415186682704279093450217816438878615690679399037662560042897149721117335619518849970562299489398897955511832552256565410033497813343796672096251835421452209369616960495916160867091926313602572587425869133716046964666321870502420997603789177325434824750803933321071918332646380043089256373248540109249028394718425561998866303228434353168385005501767645940704253687400276162107575746179806207406991962440154138271417754218048675393055371330697583753021377767920058147210097464656423848806689470544221193520755296659742289929939487334201902496956502801036548716081446622481102649581146417961368913935481264314037709973458828981534180557491591063579533166833279452477575321474314822297653661633169090923505378769083934052809793280336942262528276281941052348040661535917809415604004791384018973783196818333616300179647719784164597089710239601078726236308712604756837122903668069499085755104393469403426427670923310404258108591307765253800501357754957294414720385757420399089062022484140170190387923736555860354915969203059700386077185787862377084330271190490047074129592235975197575440652551258764002871158051071022454222904704414290175360040674089107349380160862643628892652876508218173551121886194208793316956475668206730542582746830668704945619538454368508107361135406966911624054108302101817148890886246522531710090852105992521137717038332808011745580666618181981418301909267334392948025241559879467239728217924027793122319606615872292087283153196809852979319504930636790854084636481652720253792267905300077293755990310260710003308198249949000725848792246448831558130078899923016336698953066415049599255441925204524061802390905092366148194650935917492976670731986021402961355939618595720195073468044232118856862047694920476501073348266260990634831320714936168261662783920181840846745033459287857444408010232368566225604960558068332923403034113241718166401580110272712032407514998502451150871428014212694434618057717233915912125110679032599089787713420107133455648271165500796617571884204051192523143641993635633173217478655150266048566728842339911609395833775790894788638740027200846039742066409228660562003343365009572599177670940152855658217628752907556595657602839734574667045624189223913833570861546501822192099948218298247806463566970633673106083198157844345158329778528635136754479059830519928008994405761937302076509812150577325636881437766799129089088565934137541250995534023094184829912629440179536572817680276870665599324095610217346116785359639700310521061054359483308986673844331874175105192530727975608484351978327407884669888219963514074410039498392634237905755996191627654898773061384946832132728207473648366355273188681466455866578879634366224775647396828398853794235139068240688476163930821034619202624192035523900624186182226616151055952695762837667588784422828552853087460719744820687956142364062794269323198888114986391819899494061650678406823289634781754951808561903547457149708275978610248121882242723311544597606413136825160037514047538468741360719287223194825297378806635625285976444559678567064448853086511238624193810063905398475006804689823042272302505070140327186367294816802718097523503526505970477750133807069294508328987807423411329845556750082699225293158135469376161494612245869831129611634814058166502895630005832860240493930098470940623326622859630478422547133938004533150208213270369837543142797320566603940279560218442530940611252259098430662166597850845937311051879230645430327516083141501767660322544916801337191546532715558455101196684121232128330337863373855997539746841037695764866261980890251761528765050647493852534762792717792256646956647471145427643411616432098342797044988307473220784899375738230864964775561155969839602919066971012763046771470864489682013182851193288002572233266741880286891509708216973820435598838895518589924489901203580323773467134475993019824127109575480049101891880618355870122046831601508297441818767146420237734857038387922023597359142457429592723514925540787563550393155569016383477731224367943790098364594578808699920581145372735458153184253480715335095969417729755118833492115910178773911120237430064461042556867931279414510855490577169126486832298275982332409641687700793634660393295967162407817061027549231315143817435908975198424620751119108137899730938573842787017380884123584785821290843883365600938817698778372477774354559197875152360322011777402860616730836406781729115253798391244444578358414085488996042469459052702471084079146486165448987944092690009016537395586336008704536666422350942311560727996097365617198943531473609004973672755298286521895272828006270485811379301349065505913878163999247888173124791991767544808810587710710078557494653225779341488956718348249045507052219084721323933318667191186164330799050756007716360788574291034833243473113840765775499691049937363838681265005406218787146642462417532158617247715440819405287659183591873306067070230348352875881111660963560495055566112570302803342101011601937150325586930502859884061501436076801040802077391185711389851469542076605994656466602594175800876792704111289715690316263679639483843185382889574352111522706196199532177046275174153066068082350823489317564847709493570408537668507262585055754091075674496608967042259940192412458603304518196030830904375645295004243606750597487302415760549234541678201677296236526162047999601217448165147640745352986344650191933307754286973303661609117107650814169831296155476408285708571084415745206186826201347894635623861489272914779935395734706432805855070978674685589363672129124324297924279627179800805240149776231566274019455517127992693605805496818176656937389221433225887007502222650013793680977929650116296835953392562995873729073068797026427590631343273197182276025609743550323835546075677033005654936183296623351734354208300136714332777356911185073252553434658466759173206080141555043922999573402399523709879504501632068506267293861363748704762889865120992068049419454026767024473323892078255221273318146145908876498005199315602977706997340857231669213144077419507814789037448058194324164675391155153673698523343654583725122836763718064080776038066823117556534713277510641753459122111601443785832015326880467368912135026650534717807531564449892350017376911066345836419370145816926955177471907294380862814271695311954071824761141872288421580171758339632701765091745456262587521230486769648053584415529708816857862252782253738487540776597434930883444573267073016692410096993478491337829466097415869655474731708352777516338344741156687675321776408742910578622903130168577909614867184646951574248333537845324760464021066069000227283083313382418846506787032489424670459724809413064020594445474805731603790566731975762639626370180882116638858066748823926301512055101592096414615379683648948532406622931633321154504960132250937652575818841225512072126379604167823342671126891720344087104200621214477476594903609656080369458686201304640108525769144592072558901461613169131780495215120897931586030173092435969805031533882889823314960898448386007764847490439946189990376419173029542671637372409021364619302645263650229125704199286788011235914795911096695077648551789435978690797349283221709888153101697670231336910559161447168596742775180616532750945153628294651910137043570829955393966004659153712135207700060789723847480665156881487560169341299439696553679450289138793951087660371946410010302000689713521004896823506821939803334934761484497799487866708960511505631312735766116632002275939299023901601361502642216735305893385179911467513493805920294088065354077900733640115530448874485693184190038043753511982134957378495849142625742936823661356270665695455404795168639735696430257382365330787199247642669760019980368680904420968925657811406363403607976437471675189473251846834352416756606666927165213657486106125921726932260795404291518266542918895285276303062445253737027635530992747664215862738767057527474148568753617549000803175724781728219196278706965155590700303186251342423419667552224941119931409886200087874259228857923016472999566685122919152306017065805040980725059216345815973413308724576606883411391595019554037539981161045226626491308915420549073251557628613291111467017890059963003171099098135574821529549463361364220214192427155202734436415443002452417119315972840712733362798602016176387936831968137143410454208971813537809948652614590040486012056023770503927492530040028128690354030855469893504012756265311930522780675526645534558708076518831683963337719720780115141337470418025116261970700947686910565835321186130119714270816093883092590069956153777221320350167016405245754475565889564763582007780238394138070647967042850800240924125063972509880203560956821988285727244821795543407776255191720759813322450451420662057297950040592328198980835033627190875059497105859301310941908473337503662026189690085566397076857613980947500347258328834327308923076123386821099457122979178822813915657167577128263771246257980521532621652698163407380698554845912375786501801958972455298664427692739175235218831832992294726313140938889116399334959126270949610448503898532881410468489373679754749436253290969152639653809049022086953092985247676929833190503080139007541467831007998633151916776964266819437551988217152869059817713181851941464505027613490383669313782361595581896648376973807225164010831723409287843234494877714705541507862296269204051275797888786873232850246047725445433659736148580790249359296383412976831358244775767930468169953983576236107687812139863468744949198941184901361682978746147804506630849384208276656202510465533098983700352783143897313851611090109978571288200131246070742566711554517867974740213100898715262539585413765248522998358323706405145968519048723319134806441556633011658427683924994621498674545873699631368579461625935504317932763953701745687224685056582127187383517206960795340828042780664901291906141747062321387459612927763702336770191445234306767853044020536459986044743580732986781380854297910778121019216605952262218619094107353667811663305465077101753584593356537295534763780464897937116216157998107782355423896113179676137890790463001990341766860852026595623975672641138434836791244393041675300791193067457207620850339493093749006289443272503699201481854074848671924587957234821203981331484243501948865918990064424231280299824825606105228670833331125852030074966257334078799471608932033505336265558034998661952958256832834211660791302267039561479526946922812095897405773986985572805119519461583650366759805104979126737598208930563320278866158797776999137305793977148812132430654617572259109750982168746615657313979649738474048110902062602276757277197557386706231063249843922957068299674107840368371780609767106509643012961462318418698195452522706378112792565544673089275959441651310753925462917231518282737833899619155625771497227318104271015183784289539199388347386222364160126353459429537850195569090423282134738507648862665139396350473076680608495855301599791437565791511613824437487920730330397077329119742592470467760341424348728300644900617752841079537514011110722849213169637649063714446736385432673307545450462436874413147045882873891040656710748777931909637954775210756391021991124582283723238775965924495311687768785203443592462620088949700859215749091341184531977175447440873413125224284022399839514768337295539566478014260159082867513444584931932912872013370288316349830609876118380296257086244697215651811639932120077991723492159562621628659661178833040252033989996179711897778385361144372659876194540422156012232245725209188854455240646316672812364238679902578010588371499169514155332950524802042709020084532125597200145247111374710250464810933817866299263827323719851028100922726812397787102579970793515968343165891930278911212748955404863457471922841983554296336968533062865037473063557546767042696772730492000769427183108301750932116227554232698423868833765247020170121548427477518532962945701947923169954865733994474546240524931705841963742176332122635291505352635747338869622358224803849671071411354105866480342087752493162099014317816388849971659260016031774270882296312052291611135001162288798159680195778234846143844730461792908145471980613837848448569415298050265164787793133399128557032747758116202144330859446501359802429276735101200818016774141681384615407120247055002266250422037004217799632940619217044632230475939368471037581582701400849706229750053662713144117031272486363125914088944363103342430133771584813845510171342258374613135189367374545522457617132755771224951834576159420423919195730625147019308169187050094409686648730352496601895326792225537028262848203802658389218573855447006029319245674243418960584333120932202629883996087345445884725669429981961460036584350992127373568093184714382146680318095721167458416422090542188194131502702546324357154344486869831632007920802854567218626216969600232827497340697031237402994080170226077953273106699585887841759395742884296869506020919438007409101800460303723502273642597980155608527647794605837023105447051130383944014635776253868226534219874707095824417486555208848587915850337140684281896973039069422970164167528004908765872901333575353938529363096084973689670021237578828462290511921695370395001757185718563805643161438329089747856489762499705014440622047133697632146949092746691949246333248382092393997863247567320968746941239663897459078074566857035178181405839172593094314556419046843139981529195310950674290759866930338368114809233842053202492328434989295039077201777960688773695362588297556334110841034929615513589366229404286430829489905017846751672590706169476145654030332125518941780141490783520550035270973821446481906944425160421865385011622156933350956339820743031093327826471624014644129122827185531320162114455808372608944707725666708058219536693755235911788872215674011294876525768652917127529293473366711511787215509437569110819715763031582953121777282308734315898171210057585519892362409473167068219816615580292173753597228271439587436686014798266302633951492855962250949485568793987532583276916321468742853597664393723768699442792656288160440510643098883032353264025261342120109284739740219693780761612362593989476450757302440541149762996139087716126374536324487593006734148052902112676497133612616925735885505422514927116775186155145902638804438398010709731103991256022642175020153169169990390867555537116353013908964454309597657158403432295697646235877365198985965847047912354275266822426792996469229274003762182597252735577756870074445210609038925719780859398957405651832757148766840613204438778113171084873611906744150110092968088088247565707878471155118803725356848848320496187155748556386905550680939837584844063402039814839093687984442781715621664477419805309589094771635363450809314586875577608813795721279392637397722339094136075852149061185475289224625879465107073677969585097951379045941805011772804054799565603999174448270008007466095154985386175450802679317587849126131672827846830499299088511496070948914357606605163276335087659233255855366844379055728584366201944593508534470863609657410177585491292641502047262453155443429108924143369642184572677720843573562510576793899632049777809527160550272997482573532423361648923484324806035630546693655555410920312251949644285962293329135068433929821248513008419475166053458093395770409588309368359095279021992457923760121868285932707423894836034952638936432248797449115195916339347073598237488821897738498566709291240251241988905750271676379056933302965318392933620412820052389891307726622057655586254657152074367251240056315743488773768207466121593327620857564827236555117919327661793135546014780248319876206669185779036010474961496300219948618513547878789247735909279850826374954770011944746652826502261214856134421193825479850995736820094461942029635592106245586806174200747569827055452584371389958335341734698353845170743533996710205886713255379171602921554755343522980058042507990544059204251466490666399021646996079109916896872161115676273896581452395874246525219915780233650581089090845595423559413944818335379417199445798992679296013353502111187062274189071749491943326851495709642416684631907164230490927887798805224505423988143624057428300584481121641829203587794496304319080851492845997582190484404613232656225445122537128806758185340654173144565990192444622657448454115466870207823850485335729415572598653274126469380260913297098169961148552761542795371735710061776979527633365718258524403073969953868543051136622165667509728525688183257691102324033988732896756559043181016574947951235844980424757460030526340498495970005588697380177659741958385542296456241635001163307984435566038984166479500631226400775306935352277647669360424985600659696477431751099445539829363040536654877579549651677356245098575494779668665356520278032947566353162831918819501239367730676370289204467378988383626615528378169170380445976107549795337377072666541459922696561411122660621987293882291061497289962095380276726858353847160520321854911782282602648160600724614460060159162428070294236576658981107754199694964004768732111748653417416824797046831949337317258669429768869308860100868965826046797895854863594154230770789150711363255843198663655135521403338657051704456279925814016523163013508777895259215122869097157074264215808023627051630764544226809657986610124122129103415312037776712190352990508600370830539650869144906926463629547378788623186247542559626348554267291693814254151385239566858023236609540048513088618307689510569374396720192030486087823512424916395556705165370060915967841508555263571954293286848838413461264643412220915153694459018489548292297086966590092126690303802971358001972279913263904056473926177329392501864888855757560428460371348551049104090694629772765633742857223684722993617601727799197919403875085454213844113867658571115999820058404780856510017420155869578455219959892332607446987322060450370020410621943139178412198626859060315156808370575582383228678613646118104087821336931227539862859375988078512729709500753720922332175095972528350696719729739822890638743938247837646015150224921518963360129827310816473767911437501929211041188026322253375952696723315381230383727272593209220454554385427122671617146698772167131889128921776037246962040186229791567231775148767380987406775965369289815422766193723361563784809190159007334470956504399830844721370365549996465147810205466054364682085489472542784093218555583028721940295619902518842558665600686477757887133612433728296750413564168887925060609163848594636637671597840161653998214610588883735032546130167814296926344200243501057194733589435928143100804467228859023341013112633022964497704822173554781280997294011804718199251995496182041172967450878759496768051896293304586082980664911479907125944789244075037829243579348840994354740342475436155380192236024947050374030163538718421415305025518497868116731164239204858828205388577507235973355336827777299902685324889858946673412299431340973559882017277695647204780144858617289481956686637140552607438535451062980202401192978966626018594996997718264936683987431370712793313828499106808701768087420356476006629132691832126855496179982941736113741599148025033048988451142542659006755580159989860198205720590453185531248773348698304042973837163098353861191295285361001922225304486581057294321178018872172567335432003051386645925769706255487271003825292396168716318627497340271602680844283210073294617788466311730623670605723911523161387464536531079628937531669639593817564099914075237430564457230540341193419986514682143548792330170825743090026955465040743890737901579325702216857542238595984493976778598011863244619895549731779726924718500941574111924310616425400318708111788042203019110915463489165771064428865133920231051753997885447457339121813123329242620901081872536664724135657383462582015341083501311416526974416449928206773837610279609475999052973182393909247791128298040010023771724988780647901692688364358918677527194365063488890575544474411572231622982381528966211940730314246608034174021929030361082776128502427726549403621778494247986433434236632732020523179408089737196464283571117668829026791912620475068923261433793887282717090786939413719311377486764700496117533284981160880229143489450896612222756558747978463150841879141313693733531215015084919365489068107698727406785997649754820335545866898257157711285495359207842331685074844079566715296028774365908153395827233511500633013009734453391366281501982546911540798867164760595549809151707770755661250216119789788976074915254830456170677570753810512867271313995322263487067908020405373579841478602988532505283712234936131214646752957495305548028391281405403321752787516915132948205575200146195221901196001909737324705197260135181574447501677760851027283395184012265318070657465888701716321356636466088340945301297096619223237533013955162473336161828176880998159534465458331638709423654763238817010398663906193315910806378388824150308851180035876463400155885995048629347953031407124546550018595719937811931399642283977150575698715223920847491883438932444253987015833425450247017465310273978848959428245661823923373002208082144811258639433185396323972281579109532359352135255129720589550063431610019465591937486291193511352992059868591637014856242785222144379813263926848278727451764901426778137660357612441934549040097597595304831715385905776553880282315556761307784486258451152254024382503897601783692778432895193324140650289467586875318182042047237570639699145807711071117197187851833595186892141283561433772024618274317223322310660182134595629905507330847198275401592283894451403942230986096120066998034500440535392209336060247876408829461027889175476779537487064278884520171117294619833467663281574195203525807953685265802964241632164618288204010837392381910149012118419939637440334003054073567052260979082097298367470390670789026001955242380883278607358095398294173497011303548417696977063070390676744559127520361292729822276066715442444080056387735953874884073425685308772486502861145869930897891351566431751373051164853934446505978760717815481875241023804558324972267483537156813077316595649765267641965624790353493744059315241768227230331607542471529353038585525941398695154861147560244357913202166710623187413714305106624409791269624146279265802949134355898722809450217479674434386902740067028456879647308159860243621864282036523350233475769130609975090263112691571211336033449606192362911812775504493281811021050136131900341127871853444608906331903912825496234255879626260404872862249137121376751781047848751748450138382508239501616864333007501107658042470894004635392310915314308963746893628287820189353393671147372465199291848237017895219855962111852459684140598759876045374846546098991249562696911327691967700412991658535278622870057406676430726274037669304564827516875372325602823738263794783453423913059945012925524609978202547435958146140819171550582984004219157525016069156901507278108515278856938107786839126845958565355527597966425102168459455223125875980470622324656348387952267496910173825131731712993824370290721520424339467391574651134950768129688124239605601716118830104911014807905290463218304270853728952275116003009010461852228154559842650518851843893794060078155594275367136441238507493220941599139388108025351831819628575869087854379442584228473367981527311599219110435494563479252828078275170758108481941166659890203171676582585966810736105404678374319977376484989493275985579487071511448200514856422892556434065910180115084947024655200483695827111698963908641367457458961549639526651069457007929336770040601552781514803666481563476732160773437617406686162306517466621742864308446259560131402710338847945182761729420187801115417264300909295512253334512982972305939317997313875709917929361947056737422554308715259108723152733218535310382139414197177254509391514324870254311290744699939815744419608045834957416360562002525357477638155352066060270953624081676945115886629065182700832779461296579234299807270634911393087422378570902210250597507917745086725865991731388946599698241161312928248734856446106434739350379309212730664669650901253127109133001796798113820441879167925699841921897295895110035708820683268102416248288123545398875910611226823266533944951925345179965235636328801640793127194986468770405302544003324991934426439318876968925417787192704687466142666319567546507911840098772974754470804925129037974663111670469759728913756800127583999932020314288522794393254304576967610815749187127562620921836167010229140327417448156953515409251056843920937061018840961537225065221283433657352001356341389855971791486462054741203698126594355909544407677236907832273645312377517173917202041297867524557922573753898700329664993823061947394275688283427600179930345762866229547203769128225722234637559326778118830813296576811022362427512866783827916629289225514903269000345640047832752003129795857860434005591625103533774706665208960020744375823435559675651231545160487787058363447966669038737955258255216525068846371198095637819912594079867624244901891739720454530910762545417552554485346751328229639929766925146449118499246501508378050032376821272348868361919347172140795734457849569791477583899805763144596827938185435143083771843081229791117611899864537529530720316573493400023662227381946277012800461539346479396889513579360847240614825084898546838001301280005772394547275101291948424152256170513643808300727362812804957116608443083507631605890036967254798849295101018037620099930638897851609699930073248491734895532270604821831514777361258133651755412687016765734509201682431076832629486331239275368764047479017030619293208096243720842167161635013792238435960633059846167784276621692478364661932434837712375557064161914650351404766572767687201100276449353089816546087688242219478730921795174884398204802302386181741251125721374235647227355579935395159835919184513998444471680433341534378554978656472655954665787939991526902230005535390056438620591564666297053846517701896164630658769457669283736865044006271663555092091759679486762052950592661664526892972071788106578863308696225179784261670969533402150334018725087618290226200334827861995267089898424653133204100481955286429971625984431214539472020111887406243772213724529901322078617016516427676315798461823089631057344231633773530762505185572214479041670599052187933928469026006433316381287899796252990019331684153102884931752486179542664237799636970974067425832351972669972779655108447981503357898194497159816161532375558491457385133349066689244422466729351286161700630046848237993794525181887545224499068049851465892662512127273311994306228813763263964573369499862395553782251546276360938011095849505357176902129770343183129592562240280994062994151279330438069425513615053059515523708398837041168639036343535699739996245626035707804971147244112925636180579219222584059843511271694608247938679371053559262723950563757893472960970049007013130219008110850051383941011650272158809239089523747637226410895470084124436982098307926143669903272528866188031790784632170041947044097611317233523745409227382868315575902577782783840678156967159442045416102416427214014570600457186440883047128183005461122157837440063410855140626133815777827223238699272537982827481942564839025352302170139534809587311390889198081762297362713669826427327426318809744321545896102043915336357052309499250639298824047398506181092165562693846015638203669766622359814671429846866204131165544517965999955832195766704419522898539222243370452452324888889392709048984046243396178442166284381216717429383486095690515621870006523943235621964553260025057084212850613933556165609617837080313651136049798297357870183910715609696411388611391837041665636676686370955903146369929600070651374988351677347423339737236511311317483849221749070592869390311677411457056341428595155149043493438075956738504684329767043607070414526988788508141392741818118282248843636947312030964515633637758914469237710158126174193831031478637691451193373700486004235812744891347760144790425824602307869729713529948829136103981190589619388852945029466187842409147614704825339470620212334594743176464345413859654701491979229436698017629651181846424913053982436937020021423481374333693181277421812652652510203622439672717921607713817196560568739470879980740666908027656334427392910909191257523751208915930434467164128042184090972416041488875328657156567931996596505315743057466015546597674440758157123465671556916903339740729028660442323717903211721898464706842982228677056602700595872304292524967450167595352393432585998136785352578065933038001965713380499374510168278260353344745796479925506105695377705756394225963887725755690787721522277681498813448099922289891171798389367254581090234771979693568541903428141396604109372027722180804678592238542509248168003425621707535861552089497033541387980735832674349803896697931036072125979112694544674564131754758289064543435356818010449866032984708231280988986725675777436529099514875259695058038071741562728104661856512350011284045412054041594741372114133530136160414255977083624375742587328992907680031567291626131219228378379379699401529786612748634226040100812191566302141744521452765351183400582852412964742633742576890417888797536507978397647600868255243210924742452178934911630698479634657649182113533851831414227218521804237213432163793811777597629096771526576305353191411035051070346786361407170170118768371560645140047194550034520279724966323025704826810767960359628700557039580823062533601593912788295344088383485936547020545476418873776875214962136087492760040435179379909927511940885116819211721328083060916727114493402168188571065306314803743251259520693160498096024475707582226479688071564804928306545742860402403484998769543692287821359790409035328736285947592927707926766486361143424423501949268395113712673965102481334568405779238116982726655714929656946593054922689242765046852734823744406498487950865121084244954306757132130082358822272883055621819225390684329854685193161918680032023641790729755668635619771540928285606065994901322820406769124942013636957141115002219460881798463520760688177106598375308000409709147331606356843986375537479404895737117011335435247987466521179369878154449363633574830494892339690318073078765455454111690151551300489448401621842864155305279004165601835197091985755999212696469460560552317879643837499576232226793966591483958349327218145012667291226782252590454264995873160412073901250064240979717784212367991549880212130193369185519991558055479767444702885634899132732646084158280865187352802285539950982031302557213040168966119646544174223499557991533783967091855918343023885331028219060544206776934779942819439952723446964674524080207698110160565892604644338671583677156938549833641197246055774185718830386134698239293053233070222099880557277552669349665167249991878943975363756016292928877711080840677841789352199136414516480243657034607540891316587374906318689361865716465822022458524728374810420202961335274271751707142555170369065860328472822481784369287185519067704280070312175218143254241920098859512999882733637277099887035335810693533529514512835791995838231323154111469649022417101937358469091625998077678839743725800993017419837888342970633687771795766792453141867796417557468260508458169708416269152234703195491927821169816921711963148033247741026296640362247458198781359809233128952439157274043774861393052138189807982312977015815387893588075529218996679278418322538841279280851743936084642396210701155738189831394091787057190185833004988227120127754345485893770454932332246442879501160539820311029998871556515566113509068952182562947478662837775349757734002913325892753855980489969489747555405312950470233483863137863870453505897996282520054438435122400965480476752855711294666704304954544277108356640257842604011572894880011298486446951296673662879884315977036962670603519227826215738686721358723615231606739257553662693596708878790267253385224682598626619003817171263801176186968548579128080224121038022948039738799786151339244588189540435624591234618998404835245997847781173630799696686652316699908331385646249804713996576448207391123844406780839579944132222675665037296132619393896506240291232358513739651894796357453003150262039835897365623821145743350732889276396877423415412666071119549808149909159011979157133306883256420241263479829086292664053080151406535440367526689548936821924080933900814557941399632132824044287647621863255454077548183044438088551411880516403624683914503412235425199898671035439692246761826317489534373260493876959033491566179474802432053646417973591770776115331235959253072791449378663732097849702593500658960906330206475593183114750052894867181301851381931318067629478471201291847011936197492299228588976654216924601539407594927321913252528092010041897611356420791498533860844809960584310415503797184838364969829549262847289525868111855222714130078684661797630869766071031917648352982670308221776390080740066458810528979410414766450831035356757640525219778710565878582121331910993562781263244971096847836564923197895853559603033032396201821085264131445539785172961583848744564171885460384157945894073807825951191984168695350104783504569317127703904453974419987690801423840837620882388686086647883672866608465763166438277604828955859076081531220899601748784903868708111974729397399751648732910755971551283425163323554743040959725707478332356497825965448649222090373981788636841036622787388806024487315278433659955739511964362927321710524756612811877530984747677137126008299430789251944898472384888889245285580449851040480739535166584584195021697601780086294552005250441054665187331302544469285517476119726854056959224333296244392023909119771698889734300357306132161637206598665303284478598911836712572367422064947346321143951916180261269878758627031105410062195115027144916858267443332782921235664733917638831767836583003334167903088464344639596014626722017765529622045431835156183733400758315025364707415807882421307490335463057665459574318559215040177526152198547763690490102000760333532209713709618550757244147401357547288934890513187495520495537841581503226145973722870709280436443295019703379416139176616866362849358961973428260628362343430158392677160432108478965650500136776167756179714082177957270439881976908684394542007008893591324037376054044379117252029680368827693956694327975977158244153780517731272331291590138331597255024598584081047825230541809173442173287779821928853527212611793966651691648465520696823102786725656278176874538022587172078592060303412397451548375605425984265779902094696880757909112606675092471329468311412814176938024292934999291211688885626809764936402452009867209445252169110080548033034001161105327550006197359025904639596017258464240382202622087898503103750897064770421143881478857029316520294004174355756202370261884733091262204634139710677947576461983881838485166893556170903801308190186050623972437012083523918423750434865713994534526010584308038876957239540427918053728889756158255712329000655914178736205641749326968285192159047047038801395194594175275630863850626510714750038345408893411670056934567337833829202327842649776173241256131300421599365542868301066865814038544461692885053431985118714987709321520047777123922126560927863388471328750772501659439890061864712591959810456509416317936411554125294556505133872390328720352429452616405746261299861593380325155978040406340304431327793419030194323284673527620465067355515788620468762901149332443906324859528349164982453516363126924713816731002518347687369258382981893239283781884092202302679643631069915988942381089693531780703986041633551881902115199134856839724522919430284034209192839881891140020489601072766896888893415551158319087762736501206920723906267524723131641657121964632565047137242162742385645832560681275006425190147432095537500892809174773833232394943406561018354034459861205407668779203467582142342110249693370940145156201477972611764527358785813649556639368264184796461638356417056184679791065672105992070171340520828692725335851446168695006515322078817200575351822203319106874056412275538600523134082792815743935765436884432034230946156246363238299096601434794735812540601736883155908570452011406438235639804954713455087767672552805702434332464047769559565185775312140011488990684598235525024090393433377785476973732069318967427617532945241405705700798618767238041937398302696972749376860448075942004080604002121615913523601696219018997210930776459475842268839789469925389173229477763697944648410780454696129955187755647828154968802820257684806136731455935010828200723432231696973161653719985220829394365187812706700130831038046390938220812025033912805097604209753322763108182660042520854814607599604781815806576916709522787304661925976699325083451845169695457350100401481719665769419931956243382109580525083798891260809091725653665427880676920487030669958753977306677180456594424979563880655258889648237301419345933596199784021156937712510526731580798818075699677003846646789022346414376588320953175686351814367131439170799485226113075169830293654362933187653397261373451270026796849873346924859423568799380517859972565051214020772683517621825391012259555386182656448710319739774933716392040989435598414798502221823257691017774900779664160987153158466661561572158571320887493329071574499442580716331985180111222338404818442082434102289565115926441361391644029094913748191115648795035287473623503318658958817040884141427355929228186558031657261186262187605649210046131637755707412230942814303988105510253699040246168628251416482862938769505017553008940778060119154789616482330005463102064481199498904344782919168715509954508003083492405677524045931524462516061284865887977981490787465679550485241031393825262894824468600103954889135037878373728315279231657891248695927152818929607204049014476663220054236856005190011207074758943764340786774273353958891763578234051806537291929104998515358613667301140882747045783043686165231391861635847014341383912939284616416847132558471853827533442716293646431116903114676639081997234029562383567115981487539247591238496231274397383823575529907721552866555066306680101012191801052430666930471665064018407737300455688489876665449901201148327157025448998967765128072876642242304760012789044326722742425533701381289885263451967436014450291825037399494894980456812028041795138860330230980623330222133029596762181303915168679563614949040287325057654779232986132974389593588121377575247375522150922152396870847449078811549478412615548735301000082235061994009616830874172271869218441162933305154969204611956596109603041166585292173601020731290993412263901786418480659900151634053615393137631453236393175698994898273084468036043688586387747378071420487993549467750080740366342188147712886897069930991034073918627053264152641182419827819413368040071707544911497062092238617568470341526362255627165570207148080049512283315425078857323879710180083374311762135692451741166254506954765447089673256297694644205653879625205409891128625723883443953892811035645901556459176604818781854491434467692406996517099904913355413281372171097211359419427162820666026811627884325749518521939209773271884689089750249320472549594130987036937104509960279531866391417154840126151591586613556469084474480460429761558677583389562945082424317552601862104082411143147970098045821875777796969484076981493321891410961757092778966952223219213431582663031683101140171614804193055259183820724488055646503722481981790170740778972796804264238801711897019529317925299254032328152051354283593919141929848904263740431207693287739079152837255002776491924600545830304705538413970254330707753276546926053317737964985513588879034690540995908479292467897400471192879302385419449359920960926123914341344047768524695179106843925315729488038320446711456810674662676758231619290990779602221714773665046133911336407980746328228021676004105296823734487172136579646622187765650008211412022761868558123700162134323768640385920231323440355034844305313267795141586846668600279467077835798970297995503194694012130276003311901484320498218603625018422080320402024011766161143484815773872261365052408715315381225694453794325950278295223285141125606191040986551464161943733877226231926380043687858377434895524837444076800041339684772487144017156041222236298142430639847019353752764780105085654458580450904796749456062150079163245163760152334185318062862779868782345556257569069172841567346707545835103491275121531905458992373548040756264760734046695010149116892330005380447148450681360841291790254859865929541330118271023064985728631555121264375567410263439698476274386010097182576572638252529438747570235413946417820722437668052873262572544742719047215857717181149257204857902862153597877740616935693459088837540083166877874577356600192179054936511728201908411891471916519775793171359955166021499564115218768873211361960183135927184996047444263873349961319966983497658364562113363594850391481390086302264524909586437918938421300865868329650118297918923200611888504045107266921131524614615193457119411510507157005190573815871293317724860104110154647071901369138487980732782924806104723404414825455337544307275002635063603112732578595930330695723209651738383316908881524465430530399846292733407074097156466248746962049390934321885888378703450233364817826800006705084662848277950627800466238264057793782840543232208944790877271947084177014563942562992940534406365833550432374981869494196755057644296458247962858627380179764892506755596257367173489704479074127725629799741471148874452775821513289726687393838860571484045535534317592273933612175782672339413182924096060477809621839361111326751204171006304130666193252690221639130535209129385467119108177861688548654399704412001182043432688330916802337090212353333217304026679383708361480036699981291399233076900852960291755027701029498457419044650898735214236783108877702907841289633343279802598044214214998159263964229745386707212774737890024679390543633208738595736782449143701022185744213171264792711641883567099433367477319934991127886808188947986086145708357701147642576991837350329790468300629213607795515640515928006527268949777600625670800293008110767526205513868163788155087766758487168767741759889313595424754523339941430116479800007585130592281125488141003713649822585469879943077432409085452047781517953806896607220738300227973261209572449083887953467081846007929526942268167799198144610094467079558013386336349319479744686712481272927637530012427579062469121383748787415124614770008505699866586936883956401179947484873317244315047756394281970301463504421261509767501059239309960668139560801459992998337235343168748412062687861748092044116396765827526102009735982448128290494606304743184658434530063176711196878762484332966308886907468933869636527715940353153591357706773024160166218003758380595715967479480241179484369955199042843455883857133648942803301387848875571979910209762246352725401165615021876598115628032823633674611785117962615127645370243281223980241407185770290303462901847128708900051970947288454453634257225875636041044966170796560821348731731823932004664172730852510758515106123333069341802319005059117175653703148107427901246846163135578782034478254917049021265323262683037421632348538007775646165844439360033493329017478342930271025074588553098373699217115357021307839953422056113525611510928303471932595681473787087817960918775142789516543898295856306168709823053324395965337429191139892844574603586849999960835268967806767467547934105425612535344859667124600659276464267265546451417578394834911530631318786707530971045114275872478047279846241877251829267714572083942840416293433717121113638057738968712093029417676128574027966694972996925687474539873421168171459157347005065029490997629022545198863313220144770569077665188212019185793642077877059808352944499709372006218691858870513726943291643781219265938147678175727722913713204968176350470864807205839137219433775206668597553296211898773852790933292553400346324546927059317415045244422777945084645325251715277707272431182879666755883181467935998714660763155125001065211465371398314020801779607002519153106259775050784730379791322561599994468310911795351558985598760438157296110829496451810711715245057301766121234174934669944387275738928215220469645585561279549206091212970920543275927583738776100757614426470917574963627567724642024782878619758768164676063412527594094356604810269768905994563773540909859211633165208689582138329265702648862770789690284392116608561020281901815596906936209059387458768702809813761442516315675367359089739786308376031452855191765538209133218173821358733280500248464919321090436658387660943391144471862831216446156917737136745768654327847723734798343320762095144858579049095723109070815957282517231581778856539243977098230522144585181740983055979761932297278867785379655827248206474485676219304611650333971268201418912605613934297112065751384707551999406361465959946635732119889398416086449140550838851597092486282688323694128176523913666818506002064926943412343635620143265220098641659420063596478827103999284050983432343380032176381701278072139820965523350979350819442514427198715893846190771498477147849158877532486597891818331221952561306684043228329936369209740962482611900468987504180359884233798434560415277047573525860829022613519412280159449535540247490472300741290706574438785701245962471030716870080767273938969823787988766944891085501748321978140419636656804280272626162038222411120529216111673577930378395292773582287214418165255687924815465269441467305685335699734872831159009037716222453348726914129077297518529722561693673427160385843364988145951207937903577137285066987260737228704622633781348232016700214173632441168254383463437287124337062600111860821604461176060053498040094165022170088679125299620420756220588002965055204047756035200473197798993009756112975966246203768469454398973413797338428433946587217974685490519120037621057281874921602591716936279424966379560971585707004190502289085851551489249108848006351282023904481372310649908896451880871010250706806039481778255706952903281547258420446115639677550277050468965711296365296959985435146175951583146488917242613857418795628698191505384417337760179071225119841591727036934318801666633461352099532975687428804084784011134583254522915609936785276340915032786613376147799844166880016970353969222578501383678083106457773116561588471023834451292471037033715149197499460040460569132071895960300537542433985074867911779478979786370082129311700135394070866944637941431757714715621679691910015990172651935860960212415749153926975028643087348083907094745846738013844021379861883065564356331541574113963777591853783238952764509921713679319245679960672081402577685651400908198795798984998461037356313097682845945241644591356089773564624701477034062012030270175739300398436921476626929232955445149550296670417318642814103241042530781341177985847025594960085796868921952713061242740256530913370016106267351221111738907169620237981088592070047950889171780092782647861101630768782812504860235286327361826363528450399289537921204347677024861894016410068566444038806795095029079546698893541084742877306736796106672327560433497973569918726040684445616194501107012016310391523681503524773716380666454770055521804273271435682633635738891391466179740893075971314217398568200806293570528262450426111377620411493675906856957207016323230129299785247687867626613219577047827716424821204914625151067309406789092711738371691797480202286365889640245460494211791663745723276777965435394837502418564475467120086718175846214360671908518554685010141138265324794474763085251892071584005960646411872355032991365095924892909034203602275280059815778864146510117888614580078824924617638174199921473603322040867587057640355375655790510516915041153590833147366485630033001742781130533278285761243632367792478794221656212637935252951039173408110611099103802643608242816359864690722445022136855111522226829229964732960046804296307065020418115880186109325259706863111525147194400279608652018815273863489293702308601376184822686983646658570985713638348498403379690066651365991151354044470786828235116979001084438258662846665567726517404019107190761600468828268365741534493173020586540939597930862188349091287620343082769244513752954032021340317458376864625876753843975968076040502598732632417219760511993399022394847745121295289194979517142853237224239186910563011109958934934638432420871833919916130715133634244672519640435133410389678823783333351386446348002387923207105228195168781008399758621853358677907118063333027271919450274789542115883285549031121772523537989410898288458741932978512706993518171280927639182276601535560994009698639807694039058104143926592315114892501922008274524149245683452826848365396857050503639445923639922612052974245113668695407457457447308916051517988765636062476364215623007708223518732003464345222507067994946019237305971308345540738555654254495155600264829990043645898733881094592968506576388265675186638647125828861862987492881345527469784388853533923418000713120944554706961421913413587454566796643030627979076554725109031102584980548270976563795122400657405650201766106089335260440370352012228550470114876393687663432336374831331345950289134291285771040290133615070620993627360738736531077861192393585484954020977381940724757292338678534988821347805431847943405834592092639938575917331576392460271144613094799150833970588125614268592099637178975367245987396602317422737922236297319698107484612773892379500965751930913789652452140405580560992080032613450218053285623278242924258928795066996172278521970282025474115824619618512196103790920615239967175247518972378565571476929073884570643174112516191899201952135812749704178575437023430280949857265924667686062589064840216228589262360584678160982291556032118577779402546535839552566856999382934231370047363630427695556287438118980369961856640669115683074153130718054517671560892037985774610267292788155684495364735890802189036984312581369922547840191498818004600789677543590353559864745305762411144716226259344699431787880944913800362275510406454154652502568591707210363532439370843385753392725144459325125062636459535017257836741746629791020191281823975267737981713320762637609165152380105253981262350764362763556271813730294615896138139211131218789975539656937717949210281969074715657930498952812388311570748525645281165949348855383199894274029349436610424212917214186707742811139557353237089719476063210375176376471627772875082047305193830037976796994651947677729035166636556827749812398629142091293911077977923631176950260216453811748026241771105848414321551106829198966855397911765277177249051160850668557860042833927279744724548850981186426407783920473472636091174567672819946065458605961643517516368987376756459167488026059537203574336512736709318515731534302063461718356550742525408811241443830594846512309651540999459212919289782996802073973069327133244959651698173824805169371240227025971514345104584366758402025919391606264668706360386071441560116668535076403947239446704993180637140147338486036872536487355843398465376242966897786480206715569662799747657430502188742273081087723466918772005692057488218936149072952301019936623145847808227019810817363038898121071922943826288270253903803956893738582942384719928485285644654200441919761975952470039674230377548594930785386653679174116327053819849495735152816911734843766571091269126044702532153193377720735041259431362605035449422338179873005396147719471647148754485266804820641494530772104141760564812483125491464974317134600945387872204968546988544646609651069743987414849068792928101821133953230025861978720801572099394534821543420355875901349020913128475277385159986631965541032622607741491337663859884758452701504847154729206187121559114067347433441712698515934821508773512744579694212107910724018093591468659168555096329514534261599354404685696176714835977131307142331104185384671322174712098473523159660694869674872861755010374189435356250052620496569882783697823062712550168060790998202874544843074282555098168873296743685508749761797373938166907103320879797569734036252261512368335832910772404847880844355266114482870080609412263111629258180111093125842014293735157027429275683656733911464534012171633945267920374688663820001702331880873608850962202074245545799127927046705519104629162575797979262209331721930256291989749447753523508695418418501742637884111329100737469619252941311694199618522606182166929296884184665065602562552157984521230565912168067052196765706868811772207001885950930092456276604816990453237653612916564494705225632289497275480180187983270145404026372367830766861770807220167387133840161398735748319879988865186006146084048033191394053200422768572085213178765892113458631118053631521522616317587040378853998599734169340910488256966310850231409541653542909009351596657634261998946431052661199128795365318785045986074746865603374195169967564684526712695817648503683209030038064513313822215021921088357984438353197620482971540828460479513069229429011654434443761097213545353120026175196847346654431385742914264343369543112839652366479771279131511068977513989115130381728667761022135631447548133223744246487597271615064106385601877939060149675228746763855570321195472017155672765539643671932025282084666117391320613358173777738269419386677592787163790107065405927879626396286723994727352608655947900319657763617360068951868418073012807732574545161907725207213449069147536443614698025894868776646277910995053627856968433654960567837945378250936261051825364877755487641065814182901945489657792723077619308095512605064366891174937766827336466348515659061719048686498426148105383747193523440095394415509999969485485906883576930744538245201602185552959344407948491751429536191316865605224815280784105824625664715187858021914259424229715024132392767206205933009236087507318041441891461843976822340514594857536743173335783096823944304351388716105551142476504513634560095577476519495181892394834314982624706323622833253394016356717025710108417768382866261137134983925481814144628324116381482231531955013245961495763576743750890993864893931448143866467133066142323267970349974569327020503090626052712507340790102976185912099494675193788263011652095068277791516231765721029707996699771458369324710374636580595404671662388359837326327923122771815804261126472461474833978485012409503579901667146677415016817271881305984698387044886283392081858484415588548058647231127706160311654434894110269363373850176765992502350031071813102506026992754170224412709323622124596947799547727442274589085048872551271671325213850937373325894515416870660982228201019120707951040175246625953624148586093983343347046912488083253758826130492910649230050990506461255841635408794902452573805896181132233699346825303376143759220397758861855515761697939652515557915534972374157350562530292298866288213938626017821035007578643692099288604857448521861827710507704316991914345545824240807819326953990933306722124793454776248773515759616624834521436319244760281765154996514756724469259408645426051082468533889632981915641882191207290336046746324943020269303507829016810621507293954377062560596946342579383421846820047412292038238835340416174977874719695291685122986682870785909878892917717890376810238399824699038917454483817504036159892144595614013662376048130878544230086262666751072961974098603751416160417180912785138446647175251071391101559540639224772660804001409200084048962989930758468703367606934428958958871165320172134221086445580295079610205091509727326270139078977162008549602281508616735704898392048619015006968298013278740032937003473356964138359264126115569598947594099493332082494028868917070632097370155827601153749099701984383921645370554932554720417879442371453363014504345487762795644156350518030720555937177370875938112005134772528030853822511016450274340477567975721863149436721732810661469348811051677108916956506955867030214496825666754090845272745671184079527971247843040715986477040913841279038120755674566079039038892561751914263362767040446434078276477126113380928549117988037647613615689617794357965092373797565813138345775135112677857569839908263720546909066684468673047929136479139153115977835021306120695090433314972510511387709516492845697926299033964103019345707332