PREME/G/MU593041

0103229062759735104859466291597250285281109135461832919747234053275594663685276698474266293501572928715617950317739772535587166153708046311773984412170015594247199448991266157332961553062818258844729802209335317635703284093492825290885084230157145393303252536436430238817898197769968708422555913763145192010931394240247246022666246609401561811006938431707524759788109179862166280672948744384449112351507419127650218961141433151121435462878268391308337336924794939990438785591694384792313316410401353707978987295484300785700630750406899796671800252983073094681898587346245473433320213425000754477696445348219836558225747654572944550381829936017476729964628909993915884817749586048730488258829695198962555762429129276181682513312041255963101234714894298931877294777371285843167955175241876023564326380375306220099317590303381141968607708820394270403269449042287161806722925354784087915204462818777878066371422834502709656764080682432479077559877710000217421747506694786514436956686690242231794210186690622845616679499024113115858475441020293494070184046174754113632327085962942241420861964984975616464139937738447336770638116123340314533077108434408735428036081870022135532535167636563287673871829207044651798245840785383341639374081115105154865021412155989187397786608602391469927286594557602538071572129244318815716216264500991555274157724082512779529846600351609029678912363311212504419264536959056356625800650751552206571752739205751746384722754101039279426183587129684243604792394324199935028411692316819158599508557690703968714206613602666346453376728639210407628538811817851854565485235872903319455284685607156643463121774334471869640122678267967141594648795077977866180390930969883399752401030308857033246577345539589085168047017213757012781169900272329320486978982038998200447797955356776603166736638433749389401182479072517408513819608139764453546393525391320625118474972157627867302660230030224387104255155586749975690184156326230936262846977766163545831455923230672950878458858231073204132085981794742555393784834151632709220795999462132372088983789820607511026272455622998214416190600424124498636073765112536056664534352461943640215160685461193579461193695661371856167046139423018336913461816990189944609861719470324577409419425717379411960377716975527567925207291895373242839365000918928681064925524818958341279015786255842971162327740416114470982161942743170480928563631737839757705746162531831756645723740832034492176846267821885262601747488161363098695278456556065695589703436324095942508465049630906625642310122091721432415300775440193348990675901759341874617828967985853772724403708190239465495953346180668481940602782251703508815288421310897477563019018899771952704962451639551696873194357476846117922428721766031660121030125579285965808100683744658352332205863731294553818483574144635032687750726944441951082868717565595199523582179889091017937086050974280736887799327278208639240921606817997337912098805596722663268109919702934221621426645218850595129399711313664187256726485875354785825853714211184255727567576997610913311501451280483371093485125588749345634511233693749417946526148837137585892583161308877630955290503676152679143488918375946424311276200140300807648560392619330474201525491546169927666755224529698587557216148023948151932925928882441765619271966438433958389242417147702635221795988439290717760507670751559598636644135342285498423371124155827938889440041309204691838481703910489666972107714851000643385341940203316516666668027331414882787855405596452639267647449167243325460460742779188725601140239467375237863520929185479474038060931416320972475107102313885955687395050444036003351768633997322617927396659795322655710683820942411128836046503647056521509473039246050343901372522160271398825879532175837896307158453632456990310355634492233028563886375647442740335383336090683760790564737737513568860711778352963457713337111021895454691976040223696850824409086897954712686101600148606551986923527714237296956726547578961069873289152322812220613364219673812317149033878645002330352585833938442476704383535262953371424535240194016793412122940369959097137831699797692392519215121700068652215921017976774947777605001760952388252182951341017261014585004633701989357873074404372520049686700806675164305164937790813765183339255145257158431968593278785778710703947663960638038254161900574372546453860956938445050229206185992117774721141257326095263923348198018628227392874180723498072402570206954611247085013961490210380966784662023276134907054177067096707655815600450696595652883667244109812760836316551828552388874290113842115072104449695884097887061711607197247148409976927043612891636670840976899626325345866570412208286581686103567853981958019882027211292125435685526113358829663977366180911853663673551133126009993393850729984538032799494057264697725751313401890729784480606115469356344778480450795380261725470930705619354835564197360961144923766064405373707329552834026166993947831463662418274960182020274215553748168093858908767799823038645958990528004218216556141478777868897787571051507642057641511608328748507682252234924345427901888549774065964591024928092415515811046976056193898534846411807028504478920754161407171271342076239665262416894276411184620505966532385186701333891117249486103506382944795852283224884813978393010401873595501916109314628474183270200715437397418360247322792195420013303151081134399900464029718749767940662934385472634577751094733125151087650614793537838798424683017333553348396949761824919262353994447787629933301154818769896199784627695104946550526779978741287167036206030118971110469589911114164469871018463600924186815460574394818778551428648281778728015755403482252466915563887545642128123215096095186133490827842551164508159675863855838500291996158370713515097952813189096955093642889635266293864016814176089061044734775260534885121789511820440206768963514179819803286987862673062307302329825587573533458983037487995781784273420164742818952874206212157905566388434838054960237790264488680522357685947669669824389503208376699723509414353950163419027389282271787202228970022306684773823824330937616282448120291640165192868251988234302863388011761568923562383927440703652286468910472264538608525908084427479100062882356685187107582523133973601159588375642152660249429118127937605256642404023986899475579503832222682635751091982798381701112093068615370620501324461041811342243242761652251333586580714228610640238921110038707602487689111052067368860150364691712855894133216923146194849134190107723424426532276791778916835789536416361886992219319872614328709229911838617037065821091508683398707212814878630326334022856362949506465805750609867342606285165919764938381799084258603691390859588393003820252251819262646459244270644664327565458541573335535746966921560488767880320245731664368869184258675363361213401154699248087835554569080479039906222183972579306059772158940513316378742821892284376862199937963499489355326194096816244061136119636534253958326794417320094513667490639503476464215167959506066095688642756159932194025975226019507410793795922788838849445308655714618442584012255857047166486298599019626959469246647247373263461301758273166769215399843184414358677044053869000701814471386542319691705982589179022025207497350290001260764114538356679093082665997927760349680929124286226516360697757637673434433620486199526173477727623025842803829737031364571293869414313763744364468335122892853141071451332846001407226032929006997018638333686386472973283247040599488796718447492001563152930690222008350758726535477218872909152810259243469865980861115231533480776660998733618570350829799687805292216168688760715299358353785549463300736268364740790937951492299954314003991035317437765616397098795120795949111198045410117589973505925492812522253539152282872963283110944705654743460460469486147067677011763518844190666859092414874299427257751295021849266120340636806808662689524125560458175640343457626196536739560498765180358751278283994222178015817929236357112238682100215356452227968924234169031761649280579396393861975986959061907387985455075164829436102622249351373440754877129854566428223942069341590390208141027726848589540249464302304425546426818354849170920297236405416061733550503162439782011177661374238352675799773407760169339830875607195587057931775893114227062959266326447153272926151766575637969796488867906591113603253794423307405880377347157328084699437458291133755401683627852792871415510582307422297817623718791955790970439254273545849061440764759587633630164083504475059141518242097033930140424804527235861598298092535792008660065788526000965525694915384249113430220020343344935894834233167254873396195647118232304942956978478011005814802911223176775634492712137009196176819627407190701395911921049692391571119326829655495739794686962644454402777099168921922595708890116071101840733058335515357873795420506748766975104462264391047715888552097425029580468248659366829895880069657976229491939771618326229551977582168217614951270234568897891932865427562741047783952856516415665578710859471903774444534395586517916633897309689184713931256641001119784854955386683337306826900906407421049823081335114487390492565155419622968197433844497858251839493633775272647118386112026625781371625366444958876058942423371034781192114931775046206511828379502779789874477769531613256127058767959776242905167404163775693057598821886056497378084127088229881406147515311823828944021183498224283636909542911443612605397377168147598074764720959281942110308481608178305526256118685135423096592116084949379491451429604856477194602803985765200032984511473677407281109675653977374244068770683057660145798993386792133236322198414784348480213013753896845372831997861561425013032588812006555764891897928104302861489904959318204243807252465556970823972781989757713736855405808005601105604778042506890625828281303602808163448014434807649650316329728675242126342394953933876426393280767098786676567361005996994889165793396881091447190626683662717431897519406694219241286263275912741525633345938361202858938280122951358940344074957755678053352611481872052144988335909813001705216867601475608353076531887557577129206256149270906249624949069523604365940314385572857449814495710681531440126580302904905347269216466787150011700851592762548390908207951197265904543949982613590040078220651523436555430051935975467725605946574042230771760253601699507092376279253869423056095193602002792955107519597330132576211885785186371621015180410202342944398886188173316254626853182306801486918772995226100124716461638430423251145380561394903102057571449890309443390516974099467123549587159158049631316141456415493331398816152191520084884704089646010332147900982846230270470913903968609861128739642071459169510492563687062760166499537954800012100224795637540714037218674060218146220424710902903688538095219291334489332003261706914948216737541078453535124011768727479842825606120451968514285309435523870253298404238392450267652460284394731455515186473163125191673126240320398538182519616572541168543355989042124133336362837284406350265318542379496628946048639863177001641288505524561991063637342842577993838155569765822756067964573023177428938964420367175392216736439996358664908071360825529621219876640863220667269202079526005834709885012345172899124457973331490090582025383168156980437819244537778483829463654514729902760686514710205060689412483704427758851426006446848084844897244327675726855781072056754582786298135909452296380973464233144517337473469934942829291540135603936330233503105984219533325999166898522377088429855925515180034801346982199040401915827292421149682507554378623421552189338859672967842582730151712185042337361351024983267489650901533790484449869476472818838297760708826820624587595273495128865407402341840199656299601197376097776537173290189501807297796159252209136354286752387182794859528172437868473366436047570405597143981319042079838642088805257868079491007214858143258149933766371000277628818833999066540377198377847778113938621264523102709290196861452061726032492088262791525129807359138192831470654646147244419279920074342423296951193350765776188859450401538687410857309624312446701015130584890879788134665602016086428807570153930125066160941523738661280460261365983138330657654246052645582667759829720077554484732976279648878072119896515710351451603140657399994104832764108585580551248136622870274482832290790135271272625181815907617750960229627933361050416326525011090956255250145084461611155209247825944377987395044718130256249173603140092709912588626731462106004920829515193615378679180315721709413352627265662488752411455115070722311231625054498185719229791420660294313901988847214600115825503570160017624347033783378615552457468577515393086196217319315767051777718703519832692379170895956027754708984158148011239047515965066384324619827310428723780598933379791113582890766659831869095702640231093046850535567995140986756506109262753397600037756273745509009260681009067372202075036854922642633895248654924853321196032703608701264843085168260948898574565733664896106618558164248396547690000788096642730920803670936071267348033313920792022558673505950298733760430108445089505754522395140091508542237909943643748279650020569079203141338199205878146819386187603295773907524271521364764844978548316457847519718724132561638232365694892292787626074458520700963411427501853549896494827629704267798271464162523773689946085555090808597445145504338913518483620423067937696984934902068355568656040996929464238104517677619348624232838062011743189954351667657772497631359985906776014604929905036971351771955822801577641353776358925582869373836377323106561043139720905064041326821663995181694360162728869115058345230153555624305830319364484758037377742041286978202920841254786161139752239385673230380288701167813169781911200753085729131289136152305372992704616454654344388947123316255055672387457686575227689132021064871222004700484994313304878764669042626108647485362449122467790648179592899159203806942925983423156480108728141397452562775882098248479272087338262734271766991709953590402888820147302730141955065418281954365953054233393549569148440570883159860610582744407656972288689387980691204370913083949532210079977576566029866584708131474239292701938897577408649120669507757298496868260137545293239611378331925688193188909520033862156196407421439240471961181213952741994892682425060709006266566458033252147922042665963205111864126234801483687561351469384313830804620436700305671932528129993617804609401218007637704214467081577003055909896631650373248614299356194256056331322738750300457834731340852541405221739204925469728500604352043425945710872312355536019706928137491555219730081867526562519787570703150406671719257326301258735420823498074536756233940460141377470719436867270038978659224020276937132411229211182884098710713521859383301679727025403864467888861259770221957702104654455539183926893267161743990968194435567497513482372993807826728766876806860584223264910439863267198311866139392199479829921511006302388984845716067724886881710551495899262603870731398861969210599051115644447857864449421661754722452089301282196138893046284861023578900764770468878560666217207351972184232446824080067909823039677676374722373170898053562002211071609021604527766479864955450645946117539832077368375932520631602916057876372701401655452634518450554641828420635687117730594836172658022901517398319384853586175531445962973513715949090137391163634021096310048215657850636864149605487443075217400879522699339446013301359885406684196297169893445903446942632209620996794809320241270040044449492425307517138276912138562686423827070585013222971908446969114742882201263526422798946207625018508695389399903555333438181189084412856925175173905451526157726351366530373283353351498940069135498943810316733474436205771578463876883065326278740688259610140001844815888758272650437249725517958174057785823499801418727816412644523016286286058389453189019477349192892185189488233860833052363198588005061871973870209440541172806029938404013987790546821746395753990722914632678275064356087670785139359332879952091508302427243624698820333235837008013620727177348389915809804192400269010252881206853184693547726092320612447350832089460601459374675132910055354894717774137312489939451137298304037687033826211085471231917800822374543821834158778928471679810162982920468767529970152264975666871832989817004291548415106112890708560558835488790616263472273156707123302868132426674097471393503645433987361352190305605107807854306315756734381460214382970393035106397484122786027505044882249820518482710011550016078310370455478851511082217334204995969188870133281100202213426850439555224319609207920501100416331035259018065195365516673395865506857927144791250791882787509135514192671519117530104794394743318605585971736497409962333269184498761830637844355120431813851933091792674922360676216506885636636389576694155350593750635064716726583674123684319831752226009119213135501388283810939863419903889963098142871076414127393168332260252774026104660735220830241210077753671431708842810129450717414607872565250963916310265739649532831283449001014377816009638984941157834890375515764015503490852455945578261802972492957148068099958200843943557298350330711266686403470412030953437319670055376799471596986450121698836982769644390843941515370477330080875254591456832162906725174202582617360337783855400091177899050383990432271406520655435163372965010079694057046157359321593569919441026915677458405388222892427325863551572823457800382219898421106336644149336394821342190577514925985815349835884389069071079651720840890620566554037088048906267493122272113572017431751682086014438690272302935496240100630950283200822240940959647232961327254331640647329698493159467227006770541119516744287458214741669564217261068378451044978986774118902795553186264901524831152760416848384411934142395706612128528069804592300907764553740387388208587425000308432612836022622900783338395492436339235944249356115454485764377169734287390696080412873547554402047115526962754955226885632107672023672591036299025280280919334997550594750661291634401518770680127859622696370758101084685996504097528028064246140962376220130353578311456247995676560153654764259222989984598221012797899087740089971380961302327030387359541405059487018194054648969401317496538869308314256406538558946093062856891322829690725329836707916980086164172150779463134300828014436431659670865082668922609649585002280519474337711930343281750978667131646465808249785733878288970226684266781050340689588669885582173848757206983936840092833222833489893087249683329735738160871943139351756274666421606284361098305143830344504218502552408101722944926568840180061023048322164706503424182803894977463346003290781037074273572117723318602426967471575808190204369330181924829647573926299795364343938521565427985838086394549012735337869385955992925953008629281474058758259440466072605454297149284901723377429206831836626103010012553727560491804112011146974561819885240234161217783402071473570922048646026936956526560290140369312663757955577310698577242626460698927914732010726591509818272857292880665265471359195438845181973860359139889685301706640800044780811330762837648084601111814152314679094387092847606092016119928961615126226512447046124064657792802927299218062624807939453749430347778608575100973586293000232021493084152794027245644411955024073633769291116335946902627723824216601221699554792955443254829524232154255406758982305841546807157914048570806511267112680418758204032682751964149343885299833922057759777904029649545083244942201398218552813703666589868215074992369696881203707570288297005184189031182294486226360294812411204023554598487314908040822428605578613042955714883944133824108864629896684087308888239525813092881712777131457006064394959773360626290443149761478911553875929503921312338407652910826835266208314371011922869609569781485753351931261355850218934498113496044132374370966850728694454107696714095103640197637830251346561343487632092801770177562048613988830396892576442654200821834952554337939210642560368437169368695613630911753458337118318893533048594973924201073349461976624535244461445819058405920310439264554482665953276208315465398192308940002867686252211886674883348135342910583374744088327129310974954168526646378478922577513868181489986047839675401422716911042567973535364427450872608066884448360084389462531810153205800788362553149127341475573665965994581888568941773026806499850277882953434405860460045994760354338797137667173079507830118827747513754220999532466349871527352394480571919124754064571709263069203703553886619504993040110634913080262880631552335392148103952410609795538073044050690319038255544816312575945442628505920475164527207895900891058729756864764443287269851664944990245850055079764466233208439418055682836693734471492231870637614562121983675322463761185720707426997155378224058465138150057556564818669992128796093489284816040553457421789148271248525793474797243372778229259860995010106556400158232862251115422847856583266704313800818040669550974088424059559052356551389510778541805318137021447601837560107700657704788087342747242584416967873811815720589756709967086205879839340409714600576202574436949363323606115118669991801205915593083814645792389242319550624645589307988310635976293626210308736025795985654229947966291800478957904119060205905590707142437027291249581908215842005778280021734126137551720030536188906265940920407193265934744563276522127616518718419613403767830974750718473611791375840755401443783669372407840607939324540909129323659603850213461006352245236933828815941221902626798436969674812323835240139736532446770688417759661012528547794187693709047983255437409991457320668418090545369504712937337975607910759964498785846128537937277572242171917170508393022519275211128016928666649260999554807217074700023017653983906761399782361449849093093388981892166684712367393102384176773441115820135529124365090162465468479517793561633586469943995231155367437469350236779945481615673519200531133931371295525597980313963727567832502246826405750863081164382028442899926665773165096886268730215495293040034806034890106853224706634230118177568241351342464279931066336866930828315357638985502102280279277182348602791402023449326471211790125000470670108589662089839231028631995122967964054218491164037717851220856542302658094234414407366656053765744513272248194007472345599106843172494171367742983515228690305860882796642786335244798959331723788221756003741016017326279909125401248321615265370022896171661912242833080649332776553146608497853697600455022740570994920652769994403064643848948632729849720720228987182807063438798924794408238505132962495354528261852125692012714244521915935548547651001651631454295085337025799875839506991627513118262180057002096516819530829277717433169844327795254540442367567965943837782544420042502742951698534416236675018256136089928461616131422948313717951196268486376732429739682045665070506920731381728152754482565324724960262558346581706778166114242486649384665864595655600891337425105636286901047812006366400702174971272369985661475728818147312142803628827095361895533780724937042077753716631136178663384476264386222168466346753128718874962244470970570468081194888082757126407098710224538788708061159703467732580111864890198795827507012176103026734084073775358540952338594275923687517382417395688592458932547133927844062332561196947239331245176111688912684180729948447700526978240087618339768541346545571293639707216802105415843520895515513813122371779526324723029875356633766166350227132101106255628269561905065772657401061864574009727920699646486369388785016933888081341117003591950519580525678588225132483660807863252353915621990222041789880193893728230217923457146966970610266655330528104005171847191078634387609991488043511854492513866704592557768409019068420008739865428332171221152818421228233010047430504202635190754270064936901066068851765382052055882061272230334735458103513949609041975788209176835112207610636423356746453605081775901553361100967655439628572071217140894609574756154106671273473423132790459677061248348145813322738709293009510952347126967822620621287112862157810818450795012725393919889200164665548269801201430739468828196172740815908618541474936451642997338239616950809679263313836410902219179325511425821412193412413722710807803986550457842676656185036933126143269510039326440791982513586186983971434020388239810638377919436339324543022590316894402259936467977318977329346748914801150519987539449011883356082324595903577632779187374947626333972032444407791051900305290718218520793663179544039883606183598404869571657535446791816817691852820909308811478414427494084639808764079144845717094494277465559299998716765654011901552518067784661485763773465555901502320560627955180733977416382202301947954790719748530386713247780194304668014515132114656059188122290574607507906521332454368161834286223527827235135214558526824310255866239224996391659449500482896390614354559375707342872225475792092959415584737650422040307864025009901337317987020547064387078868106739864172234834758826362171172985283848267360125206543759642316949482268305758741538854189025153162015514010641818319342141364162562890566710484531634728076026416769369161646517882379774034257084958083047195103964611646009326836023492615407030658014652688034052814413614047400797028797672213258905977512805920271099678605957983012766121862972738203252803239605960660041480598041088394796389975191592426506036571972752253833626434138548956843049229480177321661652705271002567402919423287002461522842150908273034378598956632670952421968061477703481019883432687593940340779946900342083406977924889567509234094352666426159227459169404158340487115669645333220671562078702284619710930585972667947564286564449163583266257018359203252810709558442958598518463582347205747969587549260925161869321138255266964092350552260774501954688103446176265892302790099580164556730678194450216716068293761065812058477194352957410415221691801929515611912114670512413013843010841463870186505652198023065968116431029688059411844480272147310496314454760590685549642266578783566060922091786593035840305705347099737937108335960644794757000860305161859895735038098207201303827373122687658401341660829632448107431805119375154063790406738498566454336819486345845242951167612719929215932924392434133321264742207402069445721787996941410258908493493180333320536782661751028702488417215866133121965649735857943352290481507930342657135217616796007065672541676838710053438488358131973135037669258499839602067111911572711598713461546661066597204758048943972525740916172907596545066635808852382576053660605350355762452992682327071576560144235579379497955754842904251958263817563483968346515783385579433753490085425844191399495770846109270387050612116922474610131063567351470518381461354345295846835296027405784612975082568439650656729531997056441573455644848961080977084410918681002097854232559446010419634804161540296445232907556918836317999666377205474130229862613032825927168937346575852258504135215748302934886099447760829567432917709849654899497077751080984910935671134053677347203543321370812767377770650503504055636977178638337989354805153565991747061277660620070197225705883075774492906854272193370614725139648020077741335575013573511748180530576429145351411263959250400708717916218057896428074008571083135374544073252486786347409809899575905234240200821555419085924804810654487994858193938765502420588910701817380396950213513391632715543021418408340498789292019309968425843607614315079427012673206546594651799282709778288135517483911582830363190866765131379785888477914025645438686358917167433307484328121478449794870261987343384221046913498421763723516686315092968236642071592199491687426990859923618772595895616239127441062838800415341896704002051215378408928474792826522312498150744023365028801255873268080608267919617462822216117042666085426980341874791331026378175067178562851481034800243550143013241590173584382371443789955498424436185470676049657235090039174051980870047453264178735796866606796845054009502193629091268132271699718245781517477577268845848176251277922696683957097498810085708434608152862861682594128800576066552007795271157614676871824673219272748442305962117843579508063203307221783673541635790578940663885701514578115804191092872057478104836082808788637624920282379192194314159601389935304353675902998279476124852719983041366745094380518907235758582395087358640256650884396084740060996086843851419127664437382149511347326277858152295566714014840030584222428420978220925701154460625270831616869141122376058966766049996965356875068077563751868962021708960605990941788819504288664373285753113114667694865306464845863699382798718055956561312029704252630291798861393084893295122326671840969868574323470877396967414434241956760347933903163632350712954439107954397982674029852265479067984481528653761312303582549150954447576012587854918067472370630880411109161230484824845262135228444628783708866615144437410455679032730130174050488510884333398700731843513884058542011526520924250563972396942555508434553033022465522949362696926535096330323239376814087351698013415203169293220426825715498994979120309037554252168917888359447547202792016526021446228895661513219152631046250329827252702552083699630087522416426347935852525691712813880427526891532333093648043774184997492681571445469194413668939028649888059268868365017567556270106655463118552142551280267507186052164171649102990437954654964646363457346355233394575318667681327735385127266732863877891378800951568679427369035729889992050056406949602813601073554738305351592528733296110985980524403916422290715858494731604310880027457718715378984807656405415046153060083474528255569519681473043288167919002795502306451500624319602332615087035516451243682063221860379070000623140271947835224193257282862242395692996421164248265277284967353856487553425031335592198736375826681129179575821249293627232393487430342788867962253770244719642629911148344852562598469922591658989765659728387844695902194049934245270543456262098330239455905595209145554581634534452431104711563234693049740136359902516751242509154699569267964569499509444834443323055516262686893361108413788253214870221722873618136384696940451470237897536443744434273316302369865131230851840979021437290224435870781504261949953911601048646226707855128590690869646087145760441766647573959715711438651895240801692526916038021293586265247042284394515126090099635923323467835410654128914126096407197983952500397282202341759488196010737424122139961991124784870329127796588284525314317257563180629387020974064460654616760366135938288664736831792345644626614342420374303873866157885846293778449404282029916216071383674314495587225280709264449978455340357940917091712648239275599317077648804696449118171421828045676046534938796074546860221487287571797349457209142862970011659099032577769748210036374197601376343152951949546147468504065597225671885485648365738235950119358356871924838961648143292977167712095459302643749795467322916304018422141629718438343399140091600822974407904640689917594982109379074417126276369094337402696361323515803615382517809919317497155884961584318898376611112145783331325217427174328041039491659937819336066472042023697723102360382714337398583421682502465453434860025149025784145365411958482764544319299526819228204926645243971449270574687231858956829795599795232401159621340093314589619827529180300655425717596197249469419441914306944500844002761741894284551346604914693802646852252001610521309526617435229895802333480841239597832433975466304386024252970804361720386103465012184756032062456075707491725296031550433157124477772666242290246850969346214399663556548578297833674150535789602103527948723047764752080022229441185713699492919252132067700873050879930802047683176741941458938141048019774057022098244878978869725571447201050667466717023842888002770064155046524897463537190436615770419179704103661317535424159704733947970278154335641358480203219192610358892657127559807890794484583853909485015594158451345891787871073041632848116364913455304543505118796289513277317194657878211832832458070471288577707549515661387081020943136988652527966880895761919493318846113886509159792188040061325398280768383632946025767211999446253339286520054111387763515057991406916297119805257687395809700376057239903506185901363239842467616043180457250449200246688964198373337461613317308659941906400246053992617455085021658299736711197184506386170718250573853740571661885292560368961198525917468927392085397457450253800212435075290995661105371775315504427557260558336333355237515066039693164592535389333382231413750602960169327274817301694858456290430993388940436031231379609171516831992663193288272985375312804820951245963206374092913479529383198317643597368279135922406623599668014535820560331390428540649094163590077570742313690411116847481588607164316187589098307617666421975445290797921825919414771155806789800264241051923614872450143756963878071470311193669071126836070398280785875879917294204682961429606046852024231870788966018120883155531500036580363154532204629513794318638598334434372541876937186930559952666614691310622481634592261981194378176448269509369049463237951856032964423074022010904098564539686539641597152837107130868742611274263235483459346599914909275185131547654547408772923070100236646840581281949507349604376742469130509968599720289696042531712975131972535019989869657278382419326804571853206010155630889616874271835030035875780385537951519680566497434573783196517040229240327750796960950963809541493477350294083928279538184882889078114513626880405166417682184565400864329112633559855017949436571719437876785420316474282647857862454213138652833177637722769236817615958204815012637634626832328240976040927813730573160157823909258032667025915618082812199870791338965099831342175798502433539157996203738843546932343364161071488561267926182358435848792726817909549149743879666929062102294619495460513382987985851912238835425369983052874611734774056224474519938930244552449306500702189034887568730109237772649852991736957178993479054455592889724252942396498210705371278030273723293177649207731315924378129925199183907251566393401540810820484474050757790960102420352152752261271484902704763149264230854247495725364738699041646578819577618261683897189316123167919050893278845284163723328932156354766040688788342808417434869824908094678506670419316043077317192671328385115879946061127170234907906977661745752644369043157126211071456143577715710273393393055751100791551563973040424216773496235186070898577967562044216251955323525584984734497487969839065616081384511436258723076247711760251517772427271601210978046518350332328186206696906093125089863662565895511899182029789309830067310170087645427384778791264163533838258482493030197263778111508335075643685303301560896781542723763141182909900625725719755509426472214168614153672069719502753433834571206789166583060942822216659833550019520504507558779040623769437766625296161653886204963593897090039694389293968039254182694326868330457161686339887580174174075702745787594840304367925025273164396202210383461984148839962297256434315111962913009486807365145304106198024024218289719002137193782908324250072379794249778659408518152951965939140030520766954952959804999027429719933268015432917489109450839263472390240256277113872596755837861550068681780418591193911395022912186582244638728448629821742342215328662892667830128408889365009372360135379718068981016457923616344215801728081876606264633083879083168803695572172558158548384680034397364052946935818778331030885573997529759746370310317481064124347935888059758316970072940826268096602199710811435239838180620007741175083473255882955087542578702301981823995122183780667445392593293985943173631419793708129178638139970251272810599097841327774933272776731024038426692812657619922050968259547767612602396093995056083567427797095085723862461036581058817962624679853061982109506913203932085272393994541263957973909057245627496025200973093004119666501791132387720702417107426129012567447254643900869872072207741795018130384403019195121222933629511868754993361306817708844186173059269130519377688450279226368430246218281788472983162756393718989980545068680420763370750923914832075310970508462022864822744456480531875517153231118603716265393574108105132280800965960007019720601657544288360116417711761910641707632386428562760287950743923447550940557658156308715648020583058579914191314037217555990838209761053096853845423110217115968427427823075039781592557568606803991741809699250908855118797789636862553504283212964293702273192061883788267381592174067463187206121192747116333638015594159861812413565680207379060530165323634917940220998652016821339726725696472261612508707812505909809015420708676035505415064450985743112579621480152388194122745487705278180257243097385851556569058535886837815039215735610208298397315643211788318340558787767127871670053795402864823736529819202306063669402576680770185591004593282865884510894623311415788021704771735037515119838532332032063030024356471876214361683871673467870864184528117761053402058671540551134840509695263491449357724154141096312715553841060837831876742310628062978495326564164510006363185414256667606250512650854388552103670604432245248313392822692051732284482865425020568985113895740857983473605764679736682211250808300709615040776410395074678836914794702141253915109771281909099177093721486746596293418932810382236363901792084840054781780524473242521702950221008589988425650347682829376217703159806445885394763371270672265706718521997116603020192200641603007183097528058733465188455289135679348866774167775601951361423815448000713117917096274648345578509144823527871269216613640603150146379133041505440990880822879828791470255626952637909614082135151218638028253101794699618628201339171175157084939946078243450861010722803021608586592195532535042679684788979213517383006426858771919788108836244779359716466359674166814382122257784217272169323485367527915262739864800674409989261369423238479368741675844840313052078715031269747884470044741153012143207879669870028738477522443690525540136698123758653525255220392510472845999633681688447869056061510013474244922441788169762277327392376497779908689376318090098319624985894042853535181255077495424854240133116807135974509446728051023406449148736982185064706992263556743055294187873851947761684565999045024001945068729358379366765406838422234767599927660621517522119732193042128765387184662731011129513347015405793315813992518930033176413007819054544182296475319837459686653641168585694611894575420808804978864073205654984314531163997658840248471053005014545740964693875760887535383429894714831492693570165350060443873308240426940763293837806751639611848449043515205092054383036692773088193648279917979624713577387919478277517612961926757919275908918177357342821186332261742407084824406482211212952252939054821730169025832985275927303487841983918413147014548124644372423511347017103809561178669535934668136319045279069842475813642640112313446613452691721078708368805422040786917297742764242903722542990541130942430620296967962035419272685833145084763584464193651497451538136771325101663781267541138221382890188620385105364572288161933470627624596908092482464200867296124501591924535416491118002455045135039605376930905262799233971211234403882150117055753279108555056513513498680053703836002753561828388957009798395446225607131318358235196187094207783012181342956341832479214748762094131737480314266093413840652597072589329330135046489063638554054887312484214842769804096834237643142507426799656968869784428490594139554026504873104264259922796632458757277100491636446597204756164068611859050618633735532225251701135907337661799110743137068315631114166169958074219394345389661696236654641927961176607909628582871432557840494769670999018181173140129656492063270753628986068581754014028581427562584248320938247902081964692623288611121019851013253409372345297215796844014525059661715803710158804916698446496528249027249486709160370155319869276863780808787209895277563404371253229758683767729851644311747966057917758048029934998936808411382179464938733073064757388322701716257469450629101742702018718477915823468078642462146310970718114578506045378933123598383188330510644534743346906686629209579883356896575598549445588674050434557049335408884530038147894479873719817213844404248201541912939702576756752310403144963603355419358180846504308409875553331831174961016099413573957382229972681363738456449129602735162310547471402418315838555814799516603879588426643330370625240693286371684074894221512793315527139488294664613590603964682414608260076827722778948540478256261334438294900083430834457617287412501005917539266628534087893332261193010509790882482795551593063492694699822628698524289302994749524248217736174897184698527000166784423387759686987116697687583630513184475914992758607873863545565629241353608633636186185123194956667342676467254456159478180892860832824431262692280282799460424163409740681884744965888319385784968410582782769944897992454830828339551414373775661948969023704103915999556634146070007010869824211665026682203448811525213395177906549769920343820541853604895087732585759908885358868489100265859265850030744677319475696146719054125308006934126954384308102899709274750979577913735606252864164592996343163788058723526669304219798226809476951075061799248160561962575443943874005320230345515412473176341346524523042879837925670956190321996508258187917134024879015588653870466147074748086820413528421055576776412660347184059037740749561237301337512531960010557609902865065008573682555707523326490910076611107561657483765713464980372180683171376093300167500524301082116833399166698561961759493139743987818133328973885587857008973620456259389472188951430467990660763000084881500321802265460055674101559807111333116435195471063242355589627759054601760670363553702142244243645220592740748892184724226731231064449627025882890878806988736617506817715071378682926839619139436573980135478560029740683803886953087788709536382206420014163451571942404162997201426034323240767044823186456733301733815853606547843667741565964946503836732597277145261576401965032311294241013770095062485862976584652877109568782265425033377992517823135012902719047123170675731960265725115442760878697356358896377973959241940654234897533094536719338076265824572208289864792054925246503631204903398030460164857355516606917201565361517879460410253654766073553387286560617952599658427612999963966126139100198157023057901820920751507422745237915477700035368865977259019539304332924652443268506666815986598792896137924616288732160112542773698822272241287885354167722550199880217037183154329287389764183462524559035597528485566160524031195893492828540901781293643650944579808758063978724816747430227187162937007227075644431221775484998026655843062830545928531025270202076806119362906642963383095028010431741580244158010516104352452518117799588711166293765028261815505910683025397154568092155364131645890964216681896525199348183559941081756762906585670733634745711236114973330163697132106148543555903940498283343504936168218320375204053222362214745675300737483994319622490523709073524504722056327744832772923553823001499679610488002127569515554455960376762605121128140469477930448073610234095155907808608394278098446341075129269080345610611549994205235475959855003486359286375577200520110907641147732655111985716992497355269373447782309271687066342105758536142219063596794089422519483363552298700371112291632886026919320826678249114659231792535423737614004201562923562957734148292355907376937560664010400960096721102936013358003143293755597398122052834017563911568163917722304433270664721971891793987506834858148864295104056696126821562947542331291988907284373754329727104320279654134303044731846611001973964815353061540010039629164868687673728032052223131022337991861139707348536954434649368677184398115515103622340864734665509743612547407161946959047130061415196839121043083320696114954207482528945966443953435633530161112173742328825488263053649763721041448905575318298740861176788681650596563949581276928777009935013550462111937340963816575449579267800364754683307207467389406120846013450259968378755783098045196472097520352327254314384075725226993833675973189183225753048545745665293726661523268481425809157012551445988473887518585078616122169697428305547260562541389893554569761311530446816224225848363388180114211504943088554402165400886609932610205133643310730849453919572303773718049223433828483614832262831908261073079439037362623430967065795439234271339734594335126385943457606103585602388821407404368740547584761193778339845040562135325287139803536750945138937900037023517684185221547249252271818174488204522243939575447784080716372432720180448665915135331490439502348968446937012719130957260027390472611500806580979539464209351889307675146492418484604913702141753234232900482345446655648464619694538281770599046943404388490635838520850249497398523636049041056264436917024170013248466057943544618401340421606984492820248930264239648882534142556576176874982844142633615067755127937536919943390675548399478522273839578255954048980316579794201608848565352452210245093688790813542535283120141379367581760427644840315737540346245942504966602399208738073100647231252963012729952694049193802455811775813018775534478568507879146151866128594340109527713417998508433954247203554302980698814682304488959204266705279137347967791306843214969436770051764907964729447549805020272243183775384836786035561195610348485510542798924176610009782914780415127087175078019989425568762655076949517310597700695050349422409066840348145583506328253155823672393486327243288448127667700561400008617889644387072160723478814197789961075585444885363918688919040745721485458447350451018698039137466282982365127117475319248722464129811484503913587818711549324510417382481206820209547300438882450296143222360945272541212106796499727144573987354585523959200864848686824779963667812612606645661616533183356130137235592895356967482232861581503981974962026381454765674322361989060592302683953748389636454167635123045559737795885554093233380042208453775158544731157126035529905284267432977232489011131432250796988223685801994937251927326058008646164773618510469183607483792108181196902216633584907436044591457458456821374495502283195403175880171739182712929999283793582265587097519861371814534570807209176572245583628988119226485760352382017931837570724430781661847360088613332024122046690404562553497436463459450096132967716188326428686499880164940470295347233669712489582966067949810048406305552302180614229066201186178113369710990149541516497330107492864164935159232175407967210789940293920892242505845496861173849114506443427721212716602051198365537831571906828153368809537761070415332882772998475349416028093865174253255958252693528839018524305298890292078942141843500240458583247878206173221360791080050935350293476876973423625459056991757086505841827332079537314864148524697758053895701845662398819432650825977752114530551864946167168275937425182872952505115462167349774878238372920409625470233817780543552594715110164093942382470534080743101879747802108083055461812142185092903386040109255573757712952131907282469140910614342395353441134206961464143869070483413436939523331871682227303733792043262321795987914486075940160121097515234534914039346859907419689601562422512916590354959939719960686610047230804401365808496039596075294902824746452305451988520561996827760267705881369136308868083034493617093037829078145218040480037942961392459701096669386427300793944419266626402557576805505763090402563309803593005238860914659979056492625624880278737088669243918078185142494631561066567417301748620355682851360984398650182189183315676141369761729451716129713270473743875045027884077453939148469605215060974822096648829204781520851383297155224567667581969812297518603619058590126175900126374971605460685610799252980834568690269404734579041276545178511263732263487609985851078890495945627306338671527167727159781109187366755079698316993162028788340976130075582238846605331153455030754343933182988857951207010829530375147742155368043910213513920994360519658018848753116227030662998387758090583645341644641550060392070978048620894700298620108048297466034078874135881455086366258924382968038447325814118107560601864163928104842701892695783520434968627911668243030639154123731667430325326681848374218342796656629862977756162604212972678917019069096439222047653001163095749741018723762826761051570324998618084008135303957480931886877089580139341518081564092723047693049761894436996131857985211796210270396086692931289262397966912349074658801040586041668282645974981891466588699098559970240091341622913777885000486361390515052162161322550309333173498927060765176074818556686173677309786359751780912552582054564704880878738899860389245216421766234753998136802349728239875064724970402847558826031867138611378044586150665521297296284525720741694677165511933823223666419974890771586293873542417334602240357981859019283649391956958705981822347640602308789695671399779271489389899881550074735810546933974232447913434808697460177199712645028068357271656303381316100299499969262509177676335405211628420040053917944300792420429131629435268573043823012229217091186059970972668152356407736714487416737261185243751218293381886275793397717666605598572915310887625557530255100237987587777859347238870739678351057652630025748531621914557977840183416607068934847677451801018788287831160207141951546077409063753479742426643178992218346325392621798626800779214591328163415142809231968691837400391912738913905138218587525749754597057219338423632931252949613517951647674488319171540343154116686359956273778861835902565195284954124341747509814062697184141528369941637211189284294403420594239527082952865127813253464207527562935410895713077852120333386537979493066917746744432209704039398124247477969563902604648536849458559693773074155415562796984019440456572852415155949980438762807120201887730688565755788484142441712791910831472497760713308809540126450933213023014858951351324851179498909417303587465237922791356712769823897216522638625724398445249257829383200395680729100069771794373575913528006072377175580737434387305335479816333937744939305981723558518547356169400535970566464664898052412992437539606550265333395115230963619801636706721446664854290842268333527293333914380014584508455152247054657213726566728656085420471888004665230763005019886389112211049465726129343188833968996717962691145544826852927407537061954343573782513554441601159073078818570201441207863204833058869549073950521775370505703306019612328811793284206594685633267275284471307025633800945440854437350154394985886990526697596778588480728123321631062662699336076835596528495436744961735021076061189064728378126145870571695502365212085025469457967843701647443398240069739489709861337374838156839062017413537475708564948258412817024357281402720501929884078211767843862357610157628460027556123774939132877962943873575152749557703236774626013418379087677148026119002514282816672281928720025955612718193746046446698930467393392058536694230652246899933150429469553479579226297737200839115511756688785166171555890072871962131575882924373112434333632809570034611758131918626047574904858548414699288416414960666239805774983476846423515520037107994909008412932305524185346373616959533481534328127842962887730784951959668413523962763003629111796780197733113122478026724221918711142753808730882000687316873114709841981963958573169236434920350140356907281166518485390423113242370404733978701372130918452624639601250343587801942702300639235419760903139769126630144891220074447035756331417473765116428446052409508488367813490398969078480040027089538073279590111511742421583559476707750653324957343700965107012156072531613365879550760589329967558207191424595522407713253986236493020210160615718339216756457134145597088497096601598908693254148897427836405652327243872729251472817970566446156191389302513833547859692147027861601755420694309283553081211518359910764914435319127109624152597709516442412887457360094527654263421561605977527031817870474376551582700515036390893301242759174223502902031884705466187609818699258575340915399838174856367285728084433116384371181627167608851298660574038751276914289687366121970798325091887473731220009399442453505361010507473505369357045185111669910724096357740881525131385605055375021775060792322966752228895793598980029676005784363519374650084346589338760270470001228307587445965347558224624778910826996711714323482440588864041835196349541921391739464002733919900106463245645656252195442356187815785642800951467942933074324229687027901874817487821326281011716182420308836107917480227008702906198752850730591809980627547687635062013189844947816572469376092911722294820236412621450010040522429049061869250624938973792721810177505527243996856230002301071477189176943247639318985180190489526606089181604199691471713134902799653309614138853439980438022395876404816252391180619501318450520762519078817781385508416375746655117901036600560701135520602510364784214885733086196619930588070182002556241254320912448260159561694794701543272848270039713352331037761690598745461295765197132446100863007103104933279932425435447640266052229805130954005287438401359002700687169996931259859010905889188706309094891914114820465694281804254629710248134390200391647444843149762293330034835798968786759724830179676151703140960704891527463045945178154436218605394507837281425344327955507190168344540572770194972053858544175276267596549762525283154072377130069865702781219995610260622905540125320274452655067857770725094505274454305034469358007407649358890585431990353159156041579564786228852460171315902927182494270506316822851611398176140802644733528614121998307914995574451288986798794368988913365100109990355921115211918991502774834938288305358136498157041192941373227532330013412548128163898495563988680046157466718846289818707317391340465682116857465886140658439867152231699837464555482328332132265563745162148229098316716254120766812578966101078985007686140095804304367032835140118086948790962054078848951342762632675568087571860854008154914448800297595501507792207792957524424681592453001898821197457003019727401583079558597530105951294789224749492357793172661705789322089210617562358604754950763145386786128827788340536435284469941022461500604842006436031641135843243014472286847958893352453532696856246665636043618286174592647923283735698929463575513368952134983607684773550707578197888910894726626872276933243594043398444696532941995168966278151267866687361331428350909499121038298353443722650031992627219513750565238654014714306331970050714230739486199607742066465453355162547923485439767919069204735762171846483277801070828324016140969863757741521487669913464562467329148268686829318238691026216038226682366966183893571010564925890056689014662435104615243319251245190927798813490315746392912694877724735776908818888243277112611304682313119081471901954525573690787851420934934686691755417829277094549751325999393983029024395987757552498967738346211810855920962816236717344331759664572705573273164357863350493110247433166513147168988473003941394423907061359484595976327824306271677936408209985510419825016643521664351231500725901666560865771677670977554154136895793190612196227447628239650656943550544943146072173623769363272646613752998799365945403924575663883090397648930364778756972213079983586307711943571591657878044590349649822094337180960690441037087197118271411198741552509186804239944589451609317454629038845652953395709131488003443547570077688105839601670766345802462619218497187739967436539477808581399877147295799892187777132844206408688385105831068759912990098636640793661831722996733164560462653246998052758645239175873849259828903975931213370727134505137545031666270385586946437048132253181114352754462824047399142149337924276337389281279846033028006065862778094364338201117947960585686786053949072677138867513107658515410683630997913285638614458280191944217781563622466572071475503523182143061700102023536188557262505027260294971371234006439298194207619861627984140409932537562195307888297803905257108827219061155891357577895198769688150222502693553832043339061391663861448183213049948473342108774839325032503912895908935106871937334667966136518936620810624403466675804734520189681679694297081098509317835028136094478198289346774999745170687708242267270728698015968481327200514073377052420395112749784845573813081409964561189300819240085452886883692790442382862573229302937834162568616428024939666260059860662884638523207999108361573729749786713350241224949106043711652452076278612909304469533246857283542740164324508646784989859278017950519589596407535964915912667499030407089885492047859285087606085555374827803347287547696428360067329420252206203584705213605519160830497682371701605930477853070216019629272372627938253654306683753293521898749453314991976276781767093372913328694291408063786574536205618849560594862157425549220653055763685731062883937998862116257427839220994199538893367357455271113473886878155995713457464925431701155099019550237875701379678335157508962113321222917213582975278270228279236325413391541343276008991382251512613335096873892039707773595176426159700141139798603166973702442037471321543930061908940165074490855573977530324031097949937254995602177645390077783526030857013699053640091790630778387283134522230771684790920693025916904456861416469484382447191833561423577735110689509951557671346325711155509710369449764184260136516058741362601673885618710566059248096089509374359858727711331390318712740643459117397524969755385710424640919298661840930427675875260176600667633795517175277595268794716613829135298819361522933321875940946251821756165794228821443016419521508911100750097217542359448947245339756735662184111694952271120083589543508563247473899755872695734376344003613282297593791939280656795252577973126096889457014273953347169617634844006160479381000731516791476724948385512193283333747970994531022012313657267485592123002287090830139450246323579076126629438980935290768684793690067242559585152745215013488396754605471332961075699230172114239418237191366396199524637659493508961412113952334837792308850208556987735309586564050643684540947147690906066551645249450464407254920193932299993755548078952440219062507568848485537923019007659124202247202648892231857650734991852010472270688436102270362580200487533240843659261041881099081791877540663064705453805626345825705302990381878924691166977606164833861307306986537060274658402695436577556916850419274760485010733619891535472545628001473022405112499195530315075175133017095725300337842159832961810125527892665547904091758102877142520450916042674232389531246845095467551544079796014504312715660928441962563964556208919757690305217377630794990005593007591714471362591616186895672724518005009529186981472306384266148199192199451988650941253681205988973741222102378340676951245982761553893688591411674199381017219719634401964307710071838470722883063741067270755744315462244274758863533998530229038175221167802281160202805321292153147392509474810472830203065613872580239398334920643001925893339241581477813886892075497027298326126740495631955186464376529388162780158910372906927844235748685099129386237240781534192861835662909522294249126215405169251325533381158978103247010277835040423863976473361253790868820862785664549270443664554057906238723356054027142250589321186322912550618036002252665994822197634440635156451620524538704049159637779754613743105885597846771956098036275550092928518745567036319318524440734075887094922140166637567126208318411967114871429162951658308473202813950470273916563191750328320502473542671803499951893523253061643533963213235868094476497982213011509013860801026193643853240369665081774106969464475424149311861005063768836406656167226255709814032594471365264271353584128022280527445169618738600625512844017238577748466434959645217998004480349668172030426309569765362164060386419618298886283825924433906502979365719036276616908701029706442284323767823022150987345202910572008067255178121713274132110614981457187129671276735246443104503117094920969180112612225357351681787782795295666333524550569647542032850262964547364262672477670123538757795733918957897116542089710780153152118154764787969575897312314202291423408045846058246830223938090465442312693890178711577541726612739423353606989096627621806149775156263069385929245248445861151665847564718989934776524090314632124139872751061043527518460899243168929057715419161420372014496537788255023284762957555494526925198432106890926001126978768977268478302619432832811051770386156823725902507812884817176768885385345877434073464940446225061758312372633460324461612751265543099726915796893231541701901416087628526523597113415489571855107837067799068470165324577684658624529034450745294687155219277453345699958873184194391815127529391493278087715864566737030840413420103529906676649637330936882622197654171638915353611699268293100308529002647637183586468662243864448071651436354243174449448612853603361174394186332260425158446523961034508754313262848455593033186417225559729014115041968651918107276056149925832860106923895830969201169993681304128860848844539864824267210597695419070437291494170267002194665371314492697543029726388541310662399299684208050261324183136639806729951449965740191595042073700544698905927907778097533528075292834048282686769475041807698988064020247135942546143016287016541689957359117436193754567680476088768435231332236854432764631202581773609639303594582205844646976479697368743717681973869404965129123831236047153651380548792207272469859118128057305838834750526774535098046261016164493825267062713206577991409221785252290491134110202310021865385682934062731124504339980793364450742204017266123336949823124391407885537538289317870071444845574238808413681008579006525561034066729447206910358928307036594252497541242523640914157983987174289310144307894669800980206439859466502386681833388210482255668692291943302719992433089399050617116222195339653819880816166963376185245579504484153710716231530063598644824086346057718806791077996255219355557707225185988377590884307464597918276651079768693070220915046316108594468975319331172733023136975050804939918409470565058267281005394089529184485526594306596928066247461464515744285710852053008434696303885590169059748899962766088332048226848416038159298485144237619988052587779356430915091275911902673088283569614109411530588105456254669755510265955554284369861183491950086321619133798255183080232851651212536733849891722719301461084991271344847195648382495184408627884044506121898878270632979858525467845596147807154483475611464385253953265885120534948114878148379847436873585877909417026222182807862075570042311957421188259656658114935352937663925134176628453368116531711997586632568222956845632280780937549144780262793993717213240606160225408782394500896090814679753331573021435042671952414156127434296289247847603652290113360213680903369087733699844789573387189815134866736954575134133624513009099237352264672784198319748303194748618219535209099342101387664706067496905837284894717741075726985897571789276786414545584992865403007932406276669473593878869817812837774432872892126111155778508262786535643801616621054474962330002463305735652040595911257563295407042005872855924343819524701869490903926528840710921827931534238107238939116147182397664182617008747495031617014511613530880675275715418174788221130637212969157196003976678984751405198827855453323662144977843639888995713413956671095939130470209360624281894795212066388291682039455748237596264814354420096570571394767026116069104940256053302132768810631796848383794355376120219615954053834429307841172141076297962381999507246809697222963525510938595285642353169683432264684799520200009152009622229981549342293085672717682398739550051550076021999681861232528153797854821111001949927550445088007120170829580540083222579453165794131988912473758444301149600741013430201973863229359560866926723125858795684078271786998996078819741982925724183554463033770623125956508561359787815153358343629732540681125590958466650435861872914354129213626650681458008705886795320628555745842787707245543847307584777356571568918144203769153252869475167608953164054533634545300728965662479599304639951832168771982014261855056481135396226447283045572574832960061319363895285536446789676152793580114755426367983400841310526233906960393397434276475608325295367211922459871811384041518658466985590257664763888681650743109083051083701885833425471992218808817263140970455696350083904372384032045166376646348498698558507684713874762100186632678880759685474817858620205261817819310858719119498716074569503093358289651413202981717648429672489681307396344107970409213922518357862466284534094171913684500469207214108674071893080829656633232960302157371729125374583315499408067658083707302115128544324210261521797194576824578947147878488825765369872154347002853551339338732680648923291467817924937189234409878404201787867911267409580677819485987806179196187012874557159973363760000490516395860062147728363401478423879418119707902755748920444329499412967679407492217495581175216335788931625008882506117857861630771358770302041193936760772641271884517235339099861992270843541786956376576475077226004937268833948502519910225912420510959935290935686018723182597481978034100761552477667096091265514662408766624036516873482757303746078777373974586873510724074233046545032351370631060435175450390877599495832880392782385011080893830009293545674289016684197349279665980728019241798181463359685558193741158051464388500020593683081178184832975106471968981128490131883806972348200584276523383986958125936780285784387987665091466300651758793184000180590930993184225775748147081701389465881187769429090711014936781152108578950925291239797866293374165971703931832775883841842134120577317118441775128854421634592302742534306395505263644463589299389148101362463250486611507823688696975605979287985407520009366049145256958792759740495780903189291146641134503866340901600789358828277060521772672548353212464451798739884651506491920398916405539891081965377080427072289042581921350083662716189371952328462713035930395718464875849205367787916612597641512232814958111821705477561391931222916036648942760235810572376951723589821448616021273045138469271047026000590556003497740289566956858513532057218548317250609258849116706324548569420455072388812717332667831449803838459853344975660003792063954154294415594591679222051977575605748650292047688846194284636268357162787901479664613763071058335064681143167135431060886796403422267709401872510250006972267215553418436641565053334517363445149669082615216486863550199634327744478292938448758121618588490505412824288350282770242770749157886937942342649772376943752727540882343281158730454756538325463123914020994704059505395821746911458282647342723950797946667852780703903552571323566596037624077317015550411234311937544213757514674403235831138078177046898806059138851942123437493442265685739583668570207259533921878494462009873296545013180365600562896340226155465550682656646304660462096513546786697411646908182122363168543942442008667743669330039806614378433242517016509316842734285486406822493360085449087685266648882202176948299211384957620229602751142377347690160852037672678329716311926807227007146292035317860287523323842322329360750837992041177053174632849628173020212504466648983470663365054357225132071314285906178638246776980493792060191671017151869401876819811608560970872612070177023458200769634754181598349911752899275568632176716421008894545823120727124461776168726113347082082287747726143679019681272304165210530535682253782874950772920192434940647428541580695603051035996681979933286488352585370930546989467948605766754067495563758711700415227332394292164779208678379641681454090520670715877507453996984435614044265829331313442372822284890207744273442211892185530182678746222200238573922599728730595561308657125424772632869868396135695445022980888803844588523575649838779508214505830386884637201244962626740630495600542822819245904423689480280560456996994889414544155686273284946556762999507218207326902645897798480935472861931788938489409683698200433482328270932309483110202311801823006760364398601334183985846402963030031652149658653414497478097736360360118255526437535022154301437636767898421391511751408601006350157454051268549843874766502927332941003147000920555158762565826334910531313360802053232368673376353673323562558953086421084623980019713546859860633930017719532726206385242074627416090051665051770390824721561953171696607723420190816755085660670355100706998012494529614783022877675010360976795545601131215614462244704628370986079048657462193161025572997478372297021346250051177212586573342776428270022037326623330681995966406759744181804980968538287127419786163032721897606217091199455890155005251370091516885199397313949517727741761305856751180361252488145154541659431316434943931902878775508755901554687159478183020653684646369578076022473510006717588759337642938842062957962874203154235782836701152747033328120680486349564612647665500318745614967195988170765172977712584700429318675585624650402124871636841126775750306650833568969682325998775169512346547668632882989328533204603898356664587288224004151356800877338998871289280731633484351411640220081465533864397877031264570661239561376569235539557444826375198425079208414174381295969902499635050049125252838800482674698862568289248611937654893003329209273872675291111468269732157368991027598438058063404418043489219755379039656796898302461242664233830065187188662455084209205114729777145938581569602303339180749480518701631093378751085016033503979568466813850091421995892500733495693259534855867952524851470872606396803321167900427670300351195779811498352501107429461508161925000546872244866309121209053214084418464422663810975132931661451787402874239968589055583723707621249657599911627744993943202156207310128667220923907506107379464435325515612910761853210525919810180328536843464929411030294901422479004249864414172334707817404654029756880801335513290899892469161919409839260514939371626001775203495435445229685845723630999812878475957150788757707611929370878125972575596189431359686503808948079973105910029540073136494986314692989996642913278904932126291197820929886862766864055124604532875269929506325157383522250138729327615958804762048720592432899250110456301261917196335141206923208895876279090558716469234095828756974336116024554260176201092673506344217171884760283915206761337018396193450936770187160378157381220110872149715453096813959244224375681425947659720864084960511809044534871517140503653746747286323916938466456703558852532799143563864882106298099794643877783264441354310434291273066279636059513443012636998319300969152758993923409429736718674223425020861023544057621340355106679725600170063306424623663079407537709877032603150351507270923016130278426822096335325382296122974294332397590995970845775652934823593170042704638339802732901250215204453968903687693142468945396859417161755701655475828521366500499492805864282801870716923660692562789888290203681511892498349166041450804803660522206906509708570692670908162224110922291771266280405008884964942391228808821386017823292537169629948108961149090895342098450315967981105114732017761046794819194882169853198219568175274838885328362777232651595278788229123443654756451785295738879107048203700030787535614905418491573291670943683449163096591303052530520722107977311956688059182040210150726085583308793422734160134274182062913346277696831608998333672443214101716750302942202232984563162307454525967598178491299119682484214617381870317137735332791521834149935840502703305038382451256014235092184338281384388497770494171501397934278123587681077326414545463780361786047599165365160877229026276977337743015971986043654788434000384735640600445507126188168473141544979015671081504139207725070033425580205170871205912739770141028782648712609153129325681454863427029312977165054506942350552717894359767998886986385238193384725236495109117580886786098234930964910504837554879119320711588265271827781194909906389214732800669343074290960789989851787435024272614631308883063388966990410604355878010323338284490580810577829879487025390778099783343940723451364777583027060217961589275096950444697340566967810539923533650020671213707610265894908230086331876860538453600515582137333843671336264950554076141123991809996575482192665010248700349734099094476375211021753902346501176314773390374231596053907860919726085180137577937750452752168030300818785725369204355123184619524835826330452335668197382848857553100029965808899629139523824742464861661705380184398927913562635958438552595359712524633984593869028513814467552224397346340602579310733060003426762561007588755116672390840046123337543610790992195611087733908748460628808896430282229465202191458390968118630723420411621201359046195069096239523485096339866366422999758462057048938831940057455933930495015592256190243577668296348994797569595970644197453737823919463217211165859727315797108615574670937225983123384123538345352569316883514337960826185921971610144568354318581672715640008995661205785518315970189172366679623890257806990627402608983979022548855412463709156674863883970637764121026173334160561312553550353357309341893608790896776028300422243300024293275939862342388867480395222116387485969720684289455119575325807025532098289914973611658330085601925564076353308981425525769454698085407387908046541017849767941191036487755573232800506720156015449960382227621254828167341597410359543764354481455265427839711898707332220278686070921155620523598992701915449330879990504331283321533334766117812304112792955063770015697403827825039456054729807801426173649537681781767346596003369344412746324820340725108202902944606824315833131763524291422325419438975349035890382795067351557604982966558698721629284540897193000579230421305979560905977715620603319985874416603592407653973621314335061871721167891096928767390708157313726229439446356294963951142615956283127972609207104684149496398194945572562010715888224620644096379820529197443653358217293342946868289457762190559070650474961535882578546285290118194895844165567447167845928163838930641720818369706256512279346709466364105844799242227730940871548742553905558430333571524156060184501406227564754880051858753431638185339564351874308230216077468708988047357560652366440465682530931148567221819117809451315051525258728072375414148608984038248467335208155621747845333577565158787460448861963982706714910783164741415745869696900157845962407133316236280916939147709537627977122029255593432607165480244949032605922134164544464788001389831870042047851920138110376230896864364377598258931346827836037364776443034528958688944895073083118033666966706020109101123896067844013263281711082723004854515424360965183584993015349683040934337580583195765046431741405548654628827080199642587016234318685428452713315960588761527229806500563077178994678616418430011558609990269812346458611363964019261125130715629070896044272265919441773594567546227352898526631832261742152603498140437185360693916430614078778448547624108720394937195434426896024598783071427265749856534058790616813949614174923478641700317427427849370185308923483245832984665731034252315015584594191631911066151262340585702260182310702699782449777573756732878370361514813625968919700688898866784627909690730162104975126588524042967841010489634693730747454653160173415209294597897444188011937977567913293235353112474616556691131286076991312380651304390373316346713853421099125284785537198128119314070718847448839898383626173653026865165945623098274849247401383953042404706970013914916464292128630490639799244436596635967304290999892188872670793751329921273451200338765989063920969181190822823792712933302681514632207841893737608914336766333135346842417421773372064506757907106007550452946387209971047353029360943083070718357479113500375246439142019139498362251972881045949286439087679052138154952468834325100593321205146997858936908824109481899284107960095594396000563249183451165770434252197128014617800330965076436072269091896369323507599823579173333835179716758800192933502089403013579734012704007581950500034333051717439853454881089779647357157588630416484505813876470757791125325381622746122558125183092400247619877037197375417133460840900068026880036114229030556218083584082694829262206358349360017617550187743530905601810255866893619528023620741500412450790584384480610280824331286325132353469813478837329574561242660705171424074435537178424737492885997558848074535851152295805228329068101544355040181497907188503308457122760123140021290694443822699965201048772120724077326468601334636637068425738049213921197589731825277277677993288359935696825678713433570046203950791820546310254016385022861809342360747593919305685937531587189639347762446719096541049881274966673534939190069977711288122216352888168189767938535620567553181520762962208556476439030425090188922767846192865804044490648870948627744918563291175972382918979517265868982791454244428531876730910427953476105117507104874829882309596704972114989725780631253343252862898795046212148618964238689689455798165793338463465501732940259181762772529097157530311965555920430875056121518874731021794001116133874450113524042582665366774619189040989102527266394389755088011913528216307299922604671806322490475476893116248532958828678786969657845407599846770074130563013669199925914404445116926389754006774524699823473904612669773819857297198223211812028114015061830368887153274485087401688898680752073807523318899931853106481217871079850936654327595473479074685291564116501221899684611481884475000667706422874342599772618268249342000029441792220205205303262359159136198956530312422025733735686826717193600603906657862108334324652841967255119118811201686023059502372369713151605126839868149163753275269202534614884261762687399713426016466866259482825528949046998982797614456449236417651877854514597960549329179331507397587528216577132579754054038027736908871810760940648133874795454576496409065752581819168776680515780839801580897572126001164722099169693797249474074478751797336763733554050217319859993673040787758201121606924525507677381346862682733004447342318705743630276759358410415356730588540791864045866318353039410340480714030544916892793016411825440715098637960035765916588173308373647445795315755748034383412147002084657628664911356021790053057085774249695010442197661159219504033505193933127235526438841306249333818408598459804706267945759092014401094193787843589581324515331903668304991430898365972985284376569425452114630770478382961722737231607352824498824012648435687049548916646114785069787503858587849762179570039172816698750342969475845381538912752429479871536778297758583996685829613212846286464839096737557578475673309656370356874832664654271928441969179507800228057373265081269684301783998716131517012139942231986702830921453566312392054289410271320359220999549347050829292872755736514104272037910029701005608427020948209125280814539317758937246208793006140398391075366713516665357005124184801848830282538447122379507578091214889864397632956646093590775882006595631077968355788680448991218383390085918627114804656095611722061030068627135191964761209591624233289122702257445684345688132873707561473847082540707818224090920347848586806222737118597048107792327945303662740288223827757384900277596816884469219943708794198693579592889171445368559059816010818996058745979336743414748104851479567067904909196311895011838891016590019443293278699715229805979554039825843653680369759687652439547577136104913795764274261719747191250361694730650939352398589362209393139253201351525709985141125210554078897263455702416056647053786885197728428871220575434418025088328997377414866707270976734516958957901776893812227070154368417702043694274270366064493086824745884357997946615631921113223209085968761818121971032882690951123128444459116900639706834446728187638821076086524483896497159093165405497580486891157060279929748139699483120519209735975400533933407648088800294494540193380124916000408909104972796406008528704390927805087883795659719491736394081961430434406089637267424405516562980939644512857469652421370852131986640789122624606825442994910543439268834585344109928838200912411065362275585837286974418471040618121361891227326152449331390506265350116583885296472932700912645404972333343251386396048396375030281652497592877005834796415159830354843493859609602249467931857022914927269657203601231884107735695412600474982882574980065202515135261992599582299366402298689171403050993012272276221710006503063855987489088184619851688320408972256615865977027874164058476982489812846687195070477141779742117811946207076039476085533641084808667988077550700536828484965122962772880932114820332317969102628378581723856090320134293902310799443777297444581171457030717435983746650580996675573039332643402779853263623451676907061066938500742835364473989836683174744457311740260808328582438037862254967231380360317318870500554531228228404885254037971746919857062735053994607641087147582951566790085604257904591735012876256526672457670848500551395838459896244406777226071792643659445433528648132288020937257546671713300050018401786424145173542127685393150612162930855722664268557833641830715298799996022738150187925706243079749471587973468229431004010184167786095756877097657191097337903054377732535884709244173745244410969086005126755457472844540433717889390595048695126925986644394714342788397886180602985948343530624639506698627331890696419526135645511367450940795764003580933224236985789541608699176127325198784089665075288354856245758318259890864693931188025830399768941003862677882015630087015887670790835255767420011245205228143120725307855624182269278598084490631011317175683276161378298507735664975040182687908651667701292771477425811731284427174857358080148025142436077527342915938601757648978509609278170325158977688934028733306620569803284130776830916861670211516737259931067145690228355711344211620714275735801653685498833544561030826230520718638220155021784452207244637589007286156626898311519414410285567516437094569188384334681435098554923054737197470485465293799331195733653005215226293281164053868360520539997402543992542577007432327189751270822538344357567130780025103383390942614051549852992913703229982692792244245646382319992463005486648333829761585186375174091191033072190940581216772299930441916999533307360498413424915906847278459536468063461401539350372562746355825996387967362295986752073877518311749413870920984002111522261189036099247012947300061269410603098626254380838676006578847914757991585317921334746462224799774457881164222781259567614192815811622933842558424871897237817251655100993674049505477416441824255684584944913788257453181411472854153640596367609631990256647103308900686535727209614694702149173252601760307519330214360536937013398301687112492680545424614241353250813897173715778568015684599318244310326807821644328802797952654047555163359719630005854161113952255441699303960909912763652445138904022805522504086891307738586669002733285522692115474740352416549654997554507608295329419158757983331382147584677536007624555697466982270602537453434455836134301417924275196706555613390817857903681198900954347486337400824847307049794955166815379000552722996886084244714614611574859887842105362211583385623967493248653035952002804781738323467559947718854898440580233786470214586067016890764556334300188326143811424250245770158208406099738379067508997168927663814008448775946316522288262525578073674550560440893135247949899429113979001859373419450026454385944504299076546274073030525518404560636459291522235021715002741502777894413472538545945218125377365206772813263183829017275811248664448499486233625792405198835740388380600059244009083718002125590239624404111899986899535781730445350193681563649696254706812343744231401875725668252448204784372650812709991035702574581425212919098519732556069738271870427426202830690138479977756332370579025924825394787854445683015058139942061138737843413565383263724417029112736425770208974177103274449809539936737698838169827461561290833265058176592268255891388208150207137686766514915288318183604248625865367899169115693706581066751806994148656190973107194387498900514206675857395473482880415644480196453104847640105560412643596625196142277111332560669080790796735480336820712983831551323243190748017234073670009879088207844011639839507813882389725277479856520017549821717632034484582094072184148492010627238576087842588377569748834467407552550555137453287329971995288536545735547926495600274782123448303150552163849023496337465676224780719624700815519926218724324798463270807670645728536192319938249715911804261858891954073810555294757128637725087486680458258176486846927276158498998349066633456522645143266730874367383714454677790333730429186243101005552632902770879126427095073764384868775598340205274536334599528306077136189952708191523936548244492497914445236677128364442922781103559861678762835273150443945724984486158564830656911575071447849546292199147408845172434374136016726343146583502543964895756055308465563137666214597779979509077979182754462594454640591088866254010182422015586812827126240675969281344998411575645614412128260708010163158980488093467584932407087480706461373356121506469686724346305252616384832029488802901774910997953921158495454923292916673580037861294169025545078777214120839225665692311887844928035657712425299879096436334346037646396819594520856942696097061433136218965725426198407376904597879247132023459439052104113053620677968395264303924269967664872096749896769351662674614680643859933503976417549455951363257147730740953030463880031894254494517338341420926443541871687496229220456782741119868601704916805746596325974196835427853447986657028531436542470513241284681539816400134880721787306657319271137285766640673573753165908473219472396776234765293636748989748914618864688213749502958673665278864929022982827703218124333312108031127540474121319292569374655231209295729675441998083416397350964250134272951574524992200456726734387868074114929157194460370512455020758331034194809967844883971979747031604961704816643697644089752478520953536376750447920944268722814425413141381811577241650777497400998238164210691869124275057483308227156683574629966119496241368549760223743804732133914669220127143291059444432432246550316305990579915767272539305801602342409873657972266755798391392896380081361611679073635413127131862021708509596782800940777186637877928214167166964876107932006262567148551706377415330708352886334103864052545924052601555039894251067885897175748067026981183394132719504114047400835094127455960267588383499022594554896954640722848669131903800828959390540696966999899984070353802716362681827047180120358601572132473240455832408621719476054256564671893213711339194207847886523186085977439515810614894979442078083086734833923501091842752776528779788764608005686562909546545176471876525675081609304674644140787787026629917537749313309063857287221574390829686563576828785170598007009015313305377295608336300505922707237018512673604666829349385044675808068397599336887444248245186221804528031942033922332424098751945111765271337993928790931067236299965376909357578574750959532026286889708681557340444049830429948625614323882940091443538473109289548448148020258345819974551144545995561523623063280632056874025340022690780140390448349650716302140111355123926019450340074399211547665749277925450392810969434692239630446124890519088528622681667998153405254124994658881642558961644853417890931804565158109838270930011899212809728244333244051832778107498064471298492260336244044129441471039053239118092139632802980944216973982972761988096289693384862940711799556790937499805704056241046489958405353012188503279138128756492845381324156605923801638845789582680638909823714199056462987907698912028014081894234550571557681579818895966770169920964201704984401404563211993300335648129348546221488814995290580272509672582004168919723175931854274500281373227922315087695279973730668156274254855465992280682576693742577626722006391842307690185907457153736463173553986404965103007484509704173802209000776367548243649308996055231312559077109373870365876751433077760097275878709938825899289667883197007395180264669600648545035067049541981484462152792908601118107352807185184542276501507618291538147478635455775615616300968226081581555083492908779469393977455399971079923679312966222547627570522391048041707173842892273879045310121933149704800202084591769516463843336877020728703745438064931966134894181206727210807890509190711310581702850871547269538836636205529458511271875601767668231170003568304446021720624507844254475030231430961212080919890637164428783588375992519161922738589761824841173351581786501052758782074234063172237354591883169810143599644394407336810724360554448682655270386219273979710934928300690236997605679539190562213643533771289431266885815442383010940070898627105075618657856625655492953022245677404838379186214265848863035899440771993761071156179683569327728093325481380030252766124254133424878285634773602629449374013663129793787922979221100611807047790481013868110455195439832458714727673485046313814018806149172073842216123180192182086124666234092907866729274935265397068211620199608099372165416920209580776056291401589809349519139876109155301704574876510902236511194766998677620384328708995577024634319450989332714051028518983979166123197180872772807126340617338096807981339065451032276260125894442145411943832064768872796163994848650353679950833187634016633939572156682712837760227451266083845781894591792017091493138142144089123183020268244736485887335220869197080732874997182122055323817990788353596824895359206867915557265783189709542635553343717382790406321830816262512013464673628334883282888527136955250770294786930821058143506092327816722614060040951643686974857202801296555571541630994352741542992066231820174245767968887050922406794052322976755359940402169800721310009058597179986872428578899188078795918360675676799531834928219437723551240217458335888065812644273036716111017679931623126217847274099298939190443706516997812638133362180052133829650315749322970358953427941070175274409177953564866988118931468343566354912491991036816311390112756644194576276568079435176553791284366820035147130003380272236225922890621401698037596082064815341629046978065383385146789651824889885433862577032113121180773738643110236456733922329294735732493523808591297040304858902169992827888539120674164454728924177621218611135790633315506248816460449993840904027676243754678129749262287846189894468543865604331306611999044781215638774703553251894262389355531771774675377570217918459119638529060546509583919037984649760404010245470295640185967271726386983928505397169327809120355524003988344484867597172605061615406968181533566103496165836781927619129919244688646189885828685309326110748213177298906223222286527155987884077824656351039649735914000922722378269487477447091788799914423269659944765081745656905981413113890081268768444318660306676329987532934223152198249947632951185307640284157392107261313354750097108676115109805117093696069081855879956684983260374154317093307547134596083574862527925640277291034427671937201837442697209132382807299578998047352062556289435443560517612398205849706960610775971505853001989567178548058653345246919391864615711253925471014893391267444282783915681696426666589316025847177968698852014199426067228739306747359043745520146551389375445869728886650172980747931645936857997497114832960783522719835306202671806964714709538162484591518218817035409587426339389523956508755127305740228940756840391195065679667209911492363468532504376724287332391421043282705889368335930997936044242038839020210775769439994195936929916771162639345319513767709669913651976715187742932738457107752033178289768435635490005160879060808244360950981972037578680425035077565869129038883139675728684423170921920340942700561805304535882558365257380007711386361465123024433033870966768859673877813696062326059494981767221999538623499630730025445870744796846401368689654343944569241900927947068038211779620648397654398689341188466700101936913535249263470745537151916181635337674447795701421562860929461734768429196249109341996132026924460259885222636644445895976932320043885511012864802109373498782892191225421661042330853562486571161407714238482031534910530813358449938992822234741789478370414888819136938240025277817439392409025840229301523022113806981084083308867942950285273646079841443095604993672650697074040351728624920125579156407924181259145793949382960452143958368095460440587295014256424852307362795067816097797590718557289926648333109527072494250215889866060671965212654967638161833527554975799199878990712999206299728437030370299226866035026692233121134516640366983100252954509788193282793210298494553108145814053465459597622785282794001583605722499903548298117360867264508291992872221893466821902703698904380822665622580969250848178838358060292768832794226993284727675167075811473082982117122354705063410240436514619832557955216765772019137298195388396838247628072384590448734730354124833734702989531505452042314721751146636754574527972772301204538009221536743527605109897370929967312122104263132339801744311388294666320572355366458298254825606774923021298696258683620932956384703281020308893966766937171103815451262657210632375022472195255514128432050953647064519151592291709603595188928666894865817530994648288178429548322334460366423974353505124160083194639832740306892077002890212896027240652657388000287268250700758823659368461492177933986010958497253558062613543622863566154699336975103559109646672511820576785510668694701432038781302984954855541496072538094057951705284681752897207481656811493939397007291480427420903066756983181450179505750186070622159136082830272830044596224541455772147149790589214545416024410124108840792181718703300148117036419626353144255446265912592972123633713323419438110390905264038525058945225425754153231161651194749414284819205672296821622445133125938180899658719078671935557948343407342923320387413121607428527422136946244383645375874140858729608526659297987847158220908146318857621998822890360003417517010512687262172765610834776465180494718667334399286722472795218637573044856875940858887066806998818641153587065705445319516287219163862607337034698895969025212335169425081147838207819715118686905808575752291731184298090470392575222456762559292405108881546029735484715521783119138498166575733399969560204738616779628897516942145629437512310455908507221833906799551729842187696385421881944146307213541463049324181155313723179524115798261792172061896404679866967818307839847512635521532181836320578754741481039715017857117655550460176082070033426943012249254184130416489590044924477624195019275205432747321777371563954567293363900534942781508047354434552267434390978922355453536474016512935643600287675189546222701399423589969703835695549008014038632345894678129434710682563669861663194568515353098752194431865925381748685070934403779694133617904771963632497432909079850955493596506892147647469249661701660414437394202789498279746485572440471246228762566281649444674683351060838314927198433294775254533668963874691950585819210587203728420469587698989275347255761119803634915147996371752441601041546686000411346077157667599755796438600028687068393829005979573884405176457962193565966967012004071241113759779002706931156476813332767137398128583869197885661350686920325076834375727198220548073405737147366980561296495754486687896655441993692671457478076204939098988448335502344166542249072233596540392620868520409171173350958656691744117277226853443880696076644890554752464040513859924063619389565293527440065016793751378384874975880233276207631250274978494490431856641229997222667967589749104642959898935812433824645393226100442488121264600392822858411958813426173034124449126394153267991363144559126833224288346126223148731099039371449513445906798500558089757754004981388144795819008107675889028072277633586823025636419647273577970050458547096375424682623460611830801539900736309573307244781894489405460215217991470937357994964921480080531068663090741966801941236674805822370408726895174069163096099683435245740160939195742074599391979284648775141856146620893627738524356492666938202034551656205883421445839449990719148388346727834945615934287110734613042289514861230450176565904263662415754297909696652561556075660065511061407204181369612521806024284110906375790795629409827179009822132869056033219439234953517886054664285886502241453698883283193148597016279711630100922274274380771978893434910751599069223577992847724346822182924636592407285333141575200787832650807164271832535768162357652376928440799209325347500480827552404298340951553039175754870724625018827560375506912819095425661943110204998868174977551907061833947956409252973041100590234935069955088474794349850294832230192665073173764201367133553319097121061058095396280616030949844049743810968325213081054127089541978994767206420943502224897449924931262885062798143595615299998951461761722238022565418752491976170930984441970798871962840491851233292353301727097806885689758496728845799616230786874717530249897381658368000692240884747398195451449839425651416331668193690089904772705347383763960595437013699413795780640538793724324715843935687626027618124228331173467075120828923913259290060321462438669878009273330794472047251755476525367050827480115450213379267781140873450669901091740383124830627754344890888052086241020221419258046322711068302701670984265898747944596896027621729885656177028347224094798271727562677746237134539485237365335166059341027441030328928715477786909611278754093042442902537037725451160970056966779761764797556941914013961850676027777393665483584419547734526867956972342152535700972616791976387112154407141012274976524481816045919456362902049226503610743272678984642218379152425504054503800609863102424602320517957524916815911584117145503859396968475258066443929727830796091906161436866744626939015895551569780111445739781977379543387276719806924640291336681785105544323256575363203491531420468073595911279190765840228719118463692618542319786705300994338497081322394315995017705453348739179973146266622797847394106242469180765177559684166204613980951348251125245855225705265840726454995523614960106107509191995059485024182393332403471701844308917429137924185712189414433094501315996840667318525566899424188919578694763249442154683323729053028579663425593152618062999792257632265376148699168837768210698626144634432393205745952564733257152603434130863722499920905893338801428072014932231041225165678066229985507565170772096005727156618816089039082274300293383027992664367108749152973803632469295550577660529205693916821637751347551898731974386233471117391794391038203439443059678331010177835354929938045458821338752174348381106840784818899183626809096918599797426768636928806935913697045217552035634078013765306310994342278263358274453404531352139412221998483482170286873197353663182829687731710762690519842138288705564205166474647297394633442181414147399017868369632319513127468615851235285780666817045029709998526285077810522749840413006879361983790162294665856788001727572512631349223071147497408574764652398339692429164012089533648892236594366196299430374380053355147327034707220459607234900108065840026442458822726578853174175403266899989775405021228450702423598597700033146301869675779132447558763947012820792730313433793220965941305089514010372087801997396819243925123243789752812941277852063477472729038669688655835936659423718581503775593227780417786331332222655738437580266270785479908161500535311223841730612008741751370278900304073757350031881026802211271261085619390325656265072539315883146354293048219221164483287896902490579457805409313778683184909349029124959365244020934627309661479970158916207723968108065701680863008146246440867995152517957457519424235945370788312852144852118436567762699396567171015446900632551416299269285004173784873299526304248546991392529176658419402634955578254063619759330362348105737125431754625212925147379266335317647575111206804398846720331352706639966405119260787409584609235605558491906111273042634007634127478364253420036390378239609185684152315689498473815098410440233267680915695997368059814496553036354313512183851099060893247091390683639278100072585384013638238724113320080588438342676125192301703961385039827898918354134862739786317153399949268853922611260582797646771661319452223081066272386425260302123635160783030637387413868043564418290650695652698896112248403999445707183973450208243964675276423940081214299775539126669229925140316564285049086719210648745622712583894033957221277847597616785741865487238073391532362123540824014599083388691000051008164300844383607910899432342820324263790940828311631701106035137298985049937697310042433962061944051147416338439136474462458040054431678353382674657394429235153184383845565189016758695503517189150378235714694753032261728595263615969911830370339268390294427953275541832371837476270298345060886139172414785398069012977341057984099695357683979313267489177171210587588537745328925731102380218342281611530274885629677677216651718728368000983371258342782387822993241732164039072119862102444685984511132340647586548997612689273928972367004947654734091756667331775815799096362640067351380415978822554177115239107453839844072210131473959050231722242596042776008333738091326619420087393364966958493344597240844724139198419750457657307881545959985862459353454774783457811339812840150891545760306083641939572843397033095554522398530612244404253833726680626826334633102228965377873744699462044175031050989033588253631114667933500792953367733798865470827678441717579566733771489652422397844013008252507139305452293365392385354544555201630073186291042206697003276743079053644032493464690757579497850025694388483553188522228245490510561079261908201358545135293560088515876110354291505985663731698207173601765087935959904307722152255793933860179533452115764608547458541329105492544981386869701935904004680937539749634150890060349004236981424500891857094647408614560553013186269098425807309929971414745804382825688048504859046273846485918125552764507786310209801446347994741573107201160459704590283554004359938208655776692262426279395535350752074546199857205887096985552236950322468533102923917631048752746672799911354316534098201240449259546287175444337365267861898553675048024731390187876066309536158382464704103472798709203554319987336352917342951914688854359182786846539677888940821582236353091319237748437589766710155275674169578532899450047171324309936040100524905846993854671262316365478000123030035974233447400018727911680356451585778923365660646061806283706459581101091160857517037589811574954906039280177724864452544221711386166305322534742446170232107686701810573945934002857401033290218899207681553292150647462225890352565385739371224733111112623653957194150153377268615203334374965985117968884131351699472416063188251646935584137348085284079750572795452561198592449875942206287808156374641773478296514087111435415264636631220219387888424987319403256254350881293702058222791013716357239776599919737450999035326616105460941303876833317741585069251285626682400063637959272513965651522998880027665559864452567536802630998767853731752076623062344063627594334050578475788645390795229045344448974634160144801172105014949541511184368707140114432086897462963331038879840480308191071872603645532797664370742299493428854931179828732129080495510733326715437491303577283444330879008247809358707300830883312852650940477454667790825775826057338194151448325714001118430172907498504698427416111336518255528566001636117917089572732183564426551030038166767807393477472989995568828420570029239814277315103418344068536911928107855726214544529362714565141151312263755123293963164999334521026620066004023240871020477724244434175267467553602063979131894856533631323042053572154148069210703803669804640698746205830994655158549958119478110447438966556418964822887459814970168138906329918528516785634504782919748142485330853169900120618535466169259090421810382170622994415835189521740491642534615199112610659603047994994323536353273909958451586609331888305017382209152089060458712869165535224532915535624228601502327453413631824763575180773757947679764152432966205129842310633086001141495824501532374386519213743208540777038311902823614111500650953930496518565577025202931755266178040478686703543702131468255897572001929111029233487388016648731467819414572564537898271772310355179889503665330480705541585335521782260898320257401093937437667082364862531232115036404420960586506287220267186032649218105947079049506527322904578134732777811920907490263881560097135907429263162616872132944775437349142835979993311804707114502830980739594012928198605497818705135548540178650433680964265289181299034781341762593596313310314499457940472319261596929959586645194203331697965628404541477815501007430859088641386569131907309231983272956004576036525461276206588819871790310568493313090198869422443448853715266579691610259268013590516566416704378347166726345349091135893665791389926835474982625881570745241903819386479477605101174026858727285123137097150062640753309187169505037347396139786140839778689702230331474319786755483871683433257160210578383939705627054243103683520624283930328180599315393435785300263369177930992863398262169291376445835082632946957153927563644895515216906885973938939169815539620699773676309722112087135946842423156703251998953698792809509926492728442911277876271004280350194481408824941186472409632969240841507261493020999502330724532183211961882261879141584549963527618157176480162904175331379496488735221158988684863464332459974686384483200405567236148361575578902970449509182606454535405186254159950040109490528043029921868195240484782744638646604675461983884573874414533354209753162407624988782229945312518198541830769532867283411522365749445553864935498045733721705385749771702025929486443270311549300973404438370095514871920548213265441618043724462208020838949529322107118661459487189103565175322647095681870086156710998607287973419030624991712571597384658507784797031930817613357436600744628455295073798747840334418368918035515143217959537295719703238245775876840239577961238048527756907967109986044055215825267334507582371239035073245029598791600227233901567100269367084550673742925670952832642663172041766192291769770791082818210523297923871412727985880410361125054994011407264374378973008378168070661183519218347240281984641115293312267800417593784232984414853308213804027502031391377581638749571949454533769521071633454301758647141482084075648225188158928986592615493396258132787064266335409306994176676261047050376946357117513058543238887436615645420094054503314389053158146389797494062321186433942137488659148483502311735768091682237016362992657522629144204268647157864006813320424324961988301989880194708148632091707342992069321845934937604945052479743222507707937703924782935440335275257174109994781816400061314901096632985761449057641072241630435916839948457941426546236349635181583463675483956814595185247324731178827246628176259496751634015870012504751057207506105598450953799590692106313202903465184054073641033225270741598221523263121810442959956468837953187477648955339080381829740017003543017404201588168684683309145299927868186145800533129359670361099915178674551265484148331852046279337217199369236878449562709588614888976271862673222450285151004567399907324775979365060344043116605343128654411487365618268626070125758825483419216912326135660547130145407332791071745496854019293705804585629750739698346014162980343595695379158104537331130436143264147139429669621083261609624587292941908950091858767690430423093542518950888214075846262270224979454721601329511989007854478753349939081368447146852765281811761924603347475586055900573793375006613782901816347262190539181347739085605022748099790532796851953106657338308941823384899252812893245729864031606028948300864680703953501624826637388174692344530854607112716150888578738095367766473155913065184914565614175398656279696439033237566931461443533842266973542320166894470271321295685546343875635398547366151972482021088726805722271115666449221419517399067619491200468615294963753634827599994321854389683144021506207680854542974313782595118249484210543978758491793888401260591819278926435582996814086712881733415220072628962009772482189391383946753413274930312370715447141308185714576213539960309841911959325508128685821400923960839712444906502452983854379011225311391874283826678559746772523826240755902754476638293858500258356743663196891100659492461679899226299612616943194144619794533095671203990951806343100159205354445629324611405155940775100474035566848816766103309667718956480229264124735069237950873637947086358388659256104183476700221997998295893471231618541443450243126421869768940059243829492007691110764829106439990255582821757940139495914076723553561147541133792820481389304446370405995064663278530749564295450299311780243237024546391870404265855789510381986167937776486817197221494694475073979720159792260235608246930913217477221890099414081485399861592069330100232085337670358806650166130173208115590261633264554314742629480206081455581643130376837822993186475200028501868372750013543750813740835300200452982333101491699021014297991595392426138035072245384908705247054605009101697805060589856096102303375202096391234069356090064072479594454638331173663548097230648801676226634915558519193166165372115253017361534151403565531591963650774897408286821587862023881156193016339706634071714081059219112835350700033891922571654928374975699740535859991466094822220251315539859752220536786583570952073576155644753675445101464030886240522873011381444246314728303834505348419166927483937227913961497963715442304777477833922407603962624362593763079240795430550441442978012956974352492294803764977966847337064402161264936950801215032079004277748367270179387923906597132860417232076190999270074572657754504556041162036971624086729645621885078050236766852025334336081639553827465232730896334239718854661883337091255683766238319190340387636058358320624484067179305436447644903555750162790932328803193879274025718794774685329212556608387930078112168618585019787682431639142230760717533330917650031314838046131054673599997489110632269219971285234876945871759886689266751087795388493040244003705347214365710058259361769743078686632371797746975500598223249523315859979683146402172602563958989436281892891585149550031168826454748136302117051696075012352431045244365118550759888453053932500059992635185666377465884824203036671641240466573477104497572731969693431991221741693905115433083588156792587440912131811212664275732680594417331748850044916293133334460351656242726037492401943464310325799940154225380703940674328105493350708426829341984643425304507360012855212602438638517224734846094570331684553006185334216069279809656168743481979085069285920194963513423211097993481025784246902332308282397463260985389902396590476531751819683508012302948887890262773475274945239148468454886479337573488603700370165433828421012418941733079283924606294193074628060578749315018776034095542787857520136932577695254418077358413063058581279265597035006404561211722364303264914086091742596309508158567176252813408851750869408980512945971514909253291407411434672319447831190715667093091196094592614884302456058444767048895828279669825712464059894702211553954231388783002820142573443143659900500576874915270382687702222763496126179696828763813406439564363690004227767492673925661694315392326437827771027112728623096754036220539665200740464064005842831469703204899797028581839078984192096760092367677998297184920688058501994860723658868698361896927645179094766037747710054395644593793162179626998488908390004092565459960087195195639653994391747058938176291852648879302665744121031809181339124157222563193019242133518052019165980622065753305913351378495739581207003168996958524945390450393590017299347114955799317457073116153878824175591166467186107441057497351677350264050045483061705379683366071082315180880363089485567100734678216889240657256533955214451395516215552458004641363211033311303739373574749551127557553788609059264388120018664781177382532922595075135854327118489060880349201012229589337776771314753519639041426352166957668445604777318895079651539074341367160338536212407194797277047104662092690350749721525324224012175850725683312721911760118179321079865435901236093874825725360245368775735751687223852649050498747232702984069491249516585869446465686645211013407522416070613865997050148731698175812180504766509220632192184845507798349380340969609434192539345092417401202323867362362078208624233824072420866405056216005811939366077963380057263751274978073152986044755715122494999230090190728949129377376654437071437548185657576826929557489852410966319578455753958997644679936663376929314017275470097663981494342280802288932843604426510128569772241420562842000441961788459223654327067634626092349577776778326883009000335311971988334846025359898442860194955740602532216766322855023321631079025186097837189361895239856914362520303773963863551024904552887703927847609775094946168224520069109690735770926963246060000397353499776169332586639373476128397173951410723212874777437973146269946222047106645044072351601111467466810272373492743835651011629299138049915529988956173528891863738482372338719157600020245123591554640899678124235050147823867523058657872882277484525820446511396945505528026395188059336191481766955659369946543294844457307434065711578292198188936318688629539308639998598912674443957415971682567587537291848299798610299050561325578004561602507341358163201120898284164646886527176117006758054481193966602757247595649744393737138932397968624649646829168543223323754743119032522280224121244979253290095445630808045474471707433188851549104108024916661904620307686882036687552118585051997607565844194149604647126687253005495401945988350897912882264742275496789033118926382774232124362827018126759143959118233305939630271685853405295456529439242769518873804675406169115471251800162634173130646600204478588641546201480333528372025055747162139557416378534554150559845151655878241211857686386264213896613847082813690693041239453149153309003996074062570746415464178129469759423401279328902301806458033220265589326263181040091273658138739989949767285510666816631835987276952821200369799053858702655028597311587401872274154923492950385656306690856726002171596706496757167859092048581492978911662300043314558490193237196095147158385229460634188950824406415629087461649843429244573737251459148389689738847800989044312169377632617734536159348842798390766250891147506022200287632658038648653727448347539400745427497354736348933658210743396199943913516205505301787190737878473098755593569188848626743305028002074503012310262745927569023979460173289897062616929146916742509363876663175623212853975656668468302203910643148324495719167671450069255714761213845891278890282809623352547980396115038622016879974961817878561813574425396140052197627362032244421665315293178987359817464682218854099553050203227630700677857693988291504913647083060257523127197074021471408788712500285341327408665172232119393149190344044223245848863488653214938140968003739757548018262927364682121254586514032360677811093294218649423204723539711415230444058495599068856042177808726315696256404838721780751834423545207069459785189212691644012907960991084270825299727499854505977233569621128222259480951357498906073031223814029424868889630282609925045000880021422326370787606320303963861151111812563018031614084241787683356825219313656877446321472299758848187472543156314377680078407217365801897403266595892446488235347320682731017124826942142469328798285443029080636515565519520228732073208593388257923983223051851662424194693497590260382216518962991398542092631720718864587291738273038732923604946760580087536262908304915799225046821388780676413217717502113506635808198560955708144180191906436147807291008959284571471419380740473401915043973391048413934801331649813971768650242488371860471197798430920128196406424921225169864432684259494377891805046480970294080605217141111378721381807280252027487372479399368538681115100297637121994685148027966549591728479968559477065905441896134509433109063993155142702995866083010622219699304086623553656556333508017416537729819257774935512914733836494075414759687943304604717945123954545777950303970730358856147315615967797008110260030430134226098229503705700321173149899106026303515416542108406548539104793608884430460557302758127253885431943550255526558439849979997057312992138604330556086258310777275184313772116096059740129301356586774586019362034253770476815356877828660900938311596700742383022491311390241423310716794380929522803147064178686106459509660332030800455369793441171628632096148722204260899892807094067027672253527039566849051501211109114063767272898609740266863728168253766803598105926604308142710086262289463180826585309728461127970346363913612123470523815741697949709903278618970033762757514042626730274672141868802478349942432736699800915426900273930780503425334552281869821229314456290704388134503364172858188579954986398662901494441988881876511945365244661293923984040300426449889869696449673956303377186033817308974272722863640288418013632210872381084556145030541505628570079080567606270081886785468673811574991473556670316845006373206174612300366030042270585785438303661144189500700880276631500496405870549221837702313022625154722107504196489819982000597836564310675248592630936757198881856158304514475624513173557271315132169689772149955844030195243055422349869907401437291411548311367963404867623956917710731911824038137163579940809793049494175176722381778255318752569636849692586737530181499605972240607217631524415097459914021652461519677862237556788369470148249372902569474359196543603431901143234309837821155925152767965916179952085938000358754989250908353475494904021946041526969683774261752936817008769212927825993435483961010230377353111443051574045640330644498793413697273193364528188854140788678803203640180221403613544082394039010002035530543075951743274344514999237449254999850987532534558049047145633875246858997292550627498580678834393790112869441241941944122177769932687150150712618703372257485924216912303058541806685640469709940190433607871589302469977918575072256910503994023272911650491930623697754827645833608196301460112886590740048722732283354563816737926508092157058791173458765147546834068685293202514326423610954397447655037757519138497886886162016753524511418951832832979477494509013153775933116721265132937804061835965503322227031128899861117602016164365590267593840077721139287977214373976802579684557147628525962215679941638113560205571649023073767485122564827260100098154696392600047071446478224059562279953081801086577006009041445548109569191229550684583132085988080360259950079377619790385829343656311702206136482764368376220899972367200785070946452273859734249737365783510596377169237117138361339253358445455765353172148990305728214136402990382229365888867810552083153526173909129227635549704312642794655306167183664097118895248927843972617479406239981500353419313493918692310513053479288138021244536942539683083144775416612383170097262666681251920327968573446213613224665698371981594233023986938454110785121843099894935953048031741418198378408430375932702014199679911925406944287579328997351113022814296531228450713416274458598396730664206039431258710381467799899325214398384373053999197674405300746766003652643892626285236977761282605825411283020701616215317110012427870601514053310015914302485723202362229607111982349398406717837687145011749334736152966899412906490915561596151296833823115584752404829270497002043464780104171505149787389907456060572376908372901579629513418716293601802258686735510213160079252309867931854841722438934000816993499074355475021486331314538519964930786750994338290734665421510447565931791332879025273456165170070657704137478817992144328238591113965924309147213144631372732421345676710720544218843021943232726404993764398536966715421636451063246042304074591894418236886477627180945094380973898439251949056077230915848455997029511091678409956327563067017678672456916392715631176394502173441537292043138928400386395533872874157193868164672998670577884235909354146722791559421041855568138258741246595285470579802405142414114288499313070812449844674194553750669971782354972376777082731522812130764237697928315238130344619556742718038694170194983324885843432748383691716113253030148710168310513099499624884310074124882967902859927067075807563212290238666561439397277856165860637925766639865932988618510748531861204183625545661892366570990602953298147993736961398104985171956332236702172565006344059140326641688793391823856661900145452994794537439906718524887338952512389206836547595769373292464241504248859516646588297513103143936500118819507725299624241349160333959740655888932308314993964244156173287047034915215294805742069653124000247638297076510673078001442714658430649596269289467920533228665220287581179913278967038336189726727039448473989946282213148085164511427611915363991303369372170170084403705330601507452830839322267479782495672206841885925424405611414698987517994669758084059394863383256123933995161678938102840612996050873101589647875079153072491613764504309847979487619749585234323988342335663543428040652054338688292154690511787028663341110253028801582723467411186633927946613566289740258842311818888655885329417390791078914590938574997881841485507647668398253815104222151099771043702441968602583145726303009770093750471836240861080623017732250250558388041555769332866668111963729038696839161782403544662968186704338503641500566085580972180412345468509709497047603925639075929126462826712921781635782518143933413483075384626323340679718779284513652646237855446899555909786857669421451941668846253889139189981966818982923720017708445211839304513491406586688641892437452585351857522808652071889058576501957734601839394873117142183099643226158707752400376949283278023906565058463489361073595603424480967201431428546104845710721700906893161170615482957430482180017661954927324784234152284182285327291332723063474944384342822229762908004266251146576978361514835440804347076440106718108233109456790600696188792048990366016551918854538411386579993639348306989004846161293535998399880397360456098893927488979501720794955462206478866133396000483239933491606440820757869435385150902347725327555105592353968316692046005980352328477054399215654549724356657162126660503573448774375293578777143373457956802354774432884191183935789192776430138005307166802210589825190556722566014866936243164503380177499321109561945785674459873908164256277504242586646811046607950151542753935673086817065304240671679880139642437141398823839862553901159353858575206833092661741582338596278261740625907901944220932738324901810161729559224811791000137654499393322474664814080490883983106081360135096498786026135488586558887793796140059071485533244110724745336436481461126901575150571067849303709156240789483327642478983199626328925639319318420422498163081660368774945988938700742606299748539886990718572882323420133713834794740092317439175150622738616418343372547982779628689177200558930890789161834117249033799594430836094648013524911994785129086605175307774297341044820107299272500937007866314604139821662158028181375153265623836827347928825842559127655088263068350518004843195663096567317791246493076704351552174762563057358788266240459963958648893310336181560225168962037341346756950591896906038933112353226576471402680199981096875540014108011989063580680940591362756408062390584044007695490998704681206112738392668791528813981196160716386043260608479758692908363849571831818130810503901769891540369731469378540253597547523436014953224066762642585114705773716047898561152475527516222631681578914510615277270745913130625690099044370583949885514086174849573574165910030680749982406676040129122927798330391711809585307107624386578161814875768658209978199711760664758558793361808616957716119398930076333469597011568992022180897947878182280268625881426433848378913805162677459421023412563450412910351338267132762862585068245634210137046065065188206228735896801659211309962819507894765759135340043110697246592557611473406358996055302935394313168894681506534217772165542218361488538487508125063683255457667855339960473495380684588944748681949816589695377144307880821939857005339099318731109875813039916419408231894703068629029696923772565097580518799640897944642160494879682963312002948105003675924489507579083267968901642883329796448318171602811438359132274564272028599652203257212590174051314137602925447155192513883860362269432715731054204693118850036086925114938473207959642363500671146429573243019801783965666040691866859620032552728452761916966360904123946451172962071690442761800097165618399101680630952075200148770478259400428404150894590697332739613077062469789396773444585768935407794171252661475122360195171857629784924795580043695929603757471677814820248137760822673941453158894034306507855088600386261787446694289517489466975391243950421487132298580866251119617737620841652029288168856040831441766252968687156791832489680175199308122911136398661338232210305300965431321068174300063162099628875260316179921130681683646829108722499489363925208122506365099212261822409748067599951648748937627359652052301474854415777026030858212589520828787283590299993275225077177744655490022480512264898577818110418904751514427495772859891031876159039396885921632182627753160405743754271579459738274669383068848785447929145240109366075813595189145550731704853695532956454475803423216748088043923763151604482594839209489318144936949075374990039999649028268498469579843777976392101291904593526191813645875402873829281529142229513781936663358782910469880308203113146560233353952003674470907073668351855387791457734546036214499179134075416050869552943211261919960443347097490186595643234497538101698290020082140067972356234897529097067092304404038825720937595235759710214526596145925884452206414598160030563646406468419948660086544058621787600431504430619551502952415708312295997633484704857513382576686021838234117152392416317487033602676897407375055311626955518659192051904734903051381768630188646974794917571798841854048778548843633475439050904286925791787825262420410893756823810696083683657110792314850019133800939447223598075997137533602907135811396167618955058019225388277205060646905022476886818051944084285972165589187816859808869387202561117980657682963548664328851730834254857196820918659892638903490528919289143093174564457696873725282587437709266115335271428238279700348491133996571984400938204273564762668648925408269572715318264384075142913542446024758711885384854819824531610943690086309557275837980344642973997150879103932076396723266414607927446893822278073522416502243234738519118210689546249082642137344116005563820403751072760032124607606812878378945645969313637485923061832792916515134148836750540968947146796177115656373578384720307647353433939126902916781128406775838008708012244657389436242383690633005358639958906041779342705387077856473222436051429394437635294373908859762305004877327381988595305221649119931695587239546323258516313312802093093301552237415251696253162596921173802336305451163628960014440913188735614546749456430527240414885877809855077947001532165143085351941142314259004861207146571302233487204870911133232794763380782249986997652892917803371561176540359125575922795564509560634269917808092844301845076098310714099400420853120281724663671113334213334805011439665529117080107704418527191382228371952351525112999597915702208925210322815401477376105350989517329298827916332735787341979875864925629273903730691875239471693096211742417901824099430849454546236146645885643972913132319916220519352084852947096204898739995196940825974808381592212824124300682502086845492488101348876009424088562811781869748960030044925804254792737854907374750134906539179246867856715517221355252453198373482632151868873395529339358107945877755364335597049892043407790538373631888023390891474327764088891938047650191240483897664824914004674023706887948788444788860896343717703807513775834245252165400400052780748200956648741950475156285856027493904863505535000828346140493260514359322463214668813506819256835081430522773082389212115929346592371432149223519895750417214489959135223114356899249405970733921077921965087549904842412153068705072734506740407263623444884366529063124492033520636844625098076079438827181729849364664451808201650093517199412722451311040049570781958426104157642828008516604295439750382856229933930619324855092389724028741337573046100392975113578986059528832967013555328103768640680766994123031864496574936828044183617752904463748287970233228393801342719322833641565730515728480346905398698832971222137030101380940996391983632417391711587205012186869496463635684355987468716812531967682827823391553871828350891664171713475766709200796259877298553186079234800136407983629773337456221317586421957402856207156781793757333583963491426233046331800539675844972268098227536417945288337961494190940044015860864820157156766632494596017581183619233832757137319740621488681746975622672457340744642911479387409487167207726546504271975156775089893255729456733416826112432350742210478961107790335177734120755175078411287029965492568308373225428708927301656464779320592344290554358147564561277922305476909902136889741378560161349203968728663873784700940953244414600925532662772357359608952705087925757617407431659596687210661901356824511904016627466111740237892379611886691501159157986521828734633656005657163063039303666809003783412567259919082095113626330433087502657983516318562102185740524035926712235949808375204298860476333039611986373682342383696962794215620252208843431348103922547316373688376039332695871579389616982531144557483230574614304183328654568166095364130100607675141281207375061612214064356879379002602976712915970942209299990789029377938291495098128531584297232787066029395655719523031908911844366249166153960729630817459297425912328972386568407697912018871319497687307022256885808548973209325931422313872645630631765570595809532519418814020570362424213091766118901448716942279914028609322070950153552597653781902647624848494892348418628342171145065049911764796996799434758838812257775582119210678697797311087091700040353708672918010668124613551729275143526849382569172394786939461687550023641565212954946089576034110940059929969417745750317239188784973000223455281375954126059685817749269139077191465616723622262978210501840019750712886152668068885709100948994974560500277445414580733116286103780839400889683817287645988353017266357604345947761130266343171727696588334309408824188976897788189783466475439246488262257589384122476905244424015019753580837663901246532686861761383281728094525060473675806293738912693585403808249156121144451736304187952073270368713766972594999878015491407509745943663773999883185248677824026162083969087142782292028155027257174311966989749844118307742782952810850066934925508481237452705917902628738096199941991298877921746226202496640968665401687501784685846384361370872551984423073574706036557455834259908781076046741956777129714427203700990365105361555263616314658682670881125310505536058578755520426098194479150879135723297355424869547270445402381235089921390519868905211696166546775388389026422363694090443622087231398289732134816187118526183206994034619639761373306578425442103716835295580579751321099414852211455852475555262691082004484299191417273502385166149943257787858142050565551617409580456347530041752101813902095233551274026811515555961449526554455327582989187091044236425204269682503442233135943426011365132063043034515654673233031228535888168351006630736254449979579098095461577162403465635826555352693525553636398288339195030344113537494135891090307989188431734854484882604647092358552282664661001698673838226274345636643510075878264016640440000795202083161530871391315264234270779143936728447908608664041320989564145168846315829514672718340895683129453676646535903597197782558250981657121225027385950575590746574842692965560066604776887685964435013583417402486608153510626760980019649621585879794936415278490991848712523248173175883634952126680941542032811599687780398957641374364745450760578672400566659212495613927794617650789905394311195506015459088807212623747090353755853462196056302676430392261554012408253044749179786837672383822329708322748172894046093776994342332542930158480217079141270160510638154825362146470693531619819343849356954250382592196194454693219304091992406395122099575900635722601966433484272510975364787184217716059337368188147465662566227604464997991871190911886566895661101370136405130673292203699092665614958681528777708995441937405273859400777690001308028834934938266757422153394783308475584473460785773675156082810287216410175591185831452355181269470082833164448299831252541850934042737717510153690960236849909923354008789129967401793985581137201986559840681754413204781468899820957677426642697527795203636243518303327723101284844310979609757669095706847850282108191882675411692955760160231845829736322296045231667036062365222644469895855991498809029525070605400146002535979680193478362510569928082751629618107233820775557516602906832240783795223607279235401230250781490460369022604962134069992129174799905677471874259444018846157794785437948820204749727869201482096067092842119121594693895819791470811189332536322673001195643585700985435073224212949910469956393613696151623939272768493709726321472013024556339234040470477708188229391145399827535459950114025769189018543058299687440414319931079201275202018430838061120544300302247581278209283139666765819472316940277790281161738273584151373437965774594625283774688101192092984884267425537392301414306203186673396530990759252740798158931158998698890238945768723696966568794840142452866788613843449917433643865359655880950328583759686302333109638060680918507550748109567967339541010917989358464648769252212593149491913959375309036670900747997471912290283987978350569856993741739220936834870464080720337082402011624996999059356763424036129166619187554806583136448680048656674799927724257494586547095194621285966551362399332843023924309897279499213118542301095083859024055809150709622702664253690375882008667541421034679642073411731782129836258786968669350793123807403617696246334388273732793563447084877483553253367355711127017648014797336647058330892085183543111007519978072628334653153621439276710883509377366400113813148463521593758662576563013296094326039658969853371776577437530416167195737523744189161853479811703859158988393633547550104404790208899312323733298372029455805155591944004061775591969358406313645834515467129652920830549782335510944775763331203668266696230184015209505922972498088498850807755193855117746862865850971820073942609838884283007182668913667187605913384023270483041344936105575254709214992592480819959158551313657267540971520271753951999113208991082591716744440712589057664067112637903623062531917603916136061306420882286571882825016296564292814027267405276456768999321741932019315136106536822827392914336756641970783449341313576772666326632305664224745269933459688052297251416407819868235366125859848330234587941556154705854650891757961882807075978148114165224485149130250515711364739869667323901439919281144505039645211438742117943027404472355242618474321148620128804367189604282915016528172610750615066341633398082952045336518901959337614486415076053791331701546634173785940122450867881631993073698738879635732471554955582985851524345991354041658092365830365674432063220186011552656466613981748117888033720120402509489867229843065410697413145928915204368387117845390112178853001341931295803585222819637454249206100151798930627038173804754987257734062910893669566919157584052769087571929666808326969110037784499300363867369176636570450270068086269438030116774579113626585364693272550936015812419337421934733586318786770903456976295710670521919976050499900113990954677382518347641240487052996441569259142375091959437143512230205360471488567064402583308680569550291973695458535778532692577170623322782209792569497804876817704518582553870985874281996839707394339810440610885253380582496161809406210448064120771008660611451694379324035636330252284764825099787065258806343058733313427714601829977126386229036518489863640873729531126283148734810482995875780896832621154150979762473842278830512141152268103696252006236597723231227282900295679794422868773970130730160121702009206421429476311161002739576388212075683826187779447574046241229213793417789353539801058210126667832060911389810286758918587702515043380778618663861175981375564462543727003217999260389558763345386629490583918373544734109924433295628825631497160932927678681252370618283664675193694038035080324894013287237599592767416978985289959795782366142712978446779203961552910631652581543273412970738847022183456626949424931306333487534976313136803905692370900907970039127586296658014928807575754365931741863369675862210023484609666970903058142617151838535682096993861187926608493562446604512560065025393818745544291356853241720750265071124642276412650274531524563920754892571200639931630299700515694261272769700762584491380947513345844851560297766409034725308435343027638406608533326099074548734943634545917653561820796472550603064853020492925926504838565120127908656815470065381618059752611149726625276159793935484440449149657341880105060770736698529570529230223470053120006785165320225171853246407858003582086233602683319759303538446106209811176787398857993527852380256642581161007996148917545280813552905322798419313468165622490885032094009564758955145157840595107252963180426381727519007464885532643020008638162738475277963278855879130104937345385568269362064638820946871684712448839865770434795384598826998332330171879694048050170244748195323947160401627171131085950128577152611289598604509778315886842191770904454984605856820167762799976641634023435004588953452035656143354497469948305185790164963502226141711341471451207243287741960548081690159615350645450344342024551505978724066535887386806573147535720105807704466096086486493053955905795423412308845513473770801442232793585795371138596501164807981867822438994973670632140545858214226134996994822520883207934602078351777272820811124029558312326598275882715948208697243757856548116346313332742184272703611442383604816817556454002574551019742792025489706445414916939975002855602985716737841847100483217676735840552054941003660960173652430063245207443201331196835078565794311166968121508927168822825729414172334820346965857172331407768867836081769153582243161339805256069275414774152919001195910843701990927885171556757151792147201382150141191745013042377649273680560784018954955016099568765207466771868070721581994283248296601513552203906442638793758303118688648463688525176322493421792477874410322323991853313949935261959726485747987321239609098204122714008771364938645778422997780192495807668355867824559583546455804734057118518091215644386864851114358580139971586792297794385990355321816464413558415326664748643541314863697315114103108027565564819425286656169036540038878571678970555389947344335477667186629791093791104723957268540642508346115429406279153308101505302731519779855704807711975147891994431184575931834471954537167679766014113486005465769542011278117279261415836269248999891368890800422555188569929726431312290414803468428821372782815545063812363091075323362247003528829981079280387266770831736087740477534074005173691285612778605863422292425993827839596354521735781432455273363450163974890355130306736008219999526134354740786021513921003963541769464487329020087998051015580289862045998725667878365527235303937703305079440159796096920514800884758657530675286659298922146939035240036853223722714990404547051964842898868459155550049296785477457896557607089948363243215637341605725322027413914161137262371458226675093627196218311734515313313144941362192271246523620812008158911614662402509255106643146911932330453612662919973916700340258118102418631024198482034460930110369438786861157772594239531547254336969620534980070290537433594226609982794482096314943713231472345556228080431849419699257125201216349091532528203222617290917011765268222360565792874880475904676194424607668050839307881191442423528962515173553516466993076649131072615377621569791213602847968596477981619864221961379219767800130177933921514130125379935636981136989389057721532433402823318029475177527972535673451282930998991396165945933830250456226902695896858642538035462924201840362170742928192245834509235181191164038545842447162867924588950616377787657630143424656692160213659887526138921749575796194311941717646055679669954638109369573780599910311719788276818874202902075480694682913310512736372608374554030491745388082605251324173223095577518685685016216900296608448747457691909226080910126452406268924242585220669574686382355709588341326347250734878304726034232398441724144908837465343015783885387745930750473043543156232023718061511661471615755747819990850722951463119011625855074568269608298489293498582505717501867200749660660309288392666601913600701227671285996190217976792089352363235101208147023387653051170755807267608633301905051009283282700988140964499588065130970260043660497382580197615454694909052216401628357431871055410440269230209185008101878537522383797845201962801308665438228329311136546416116777939379466134068916140527534260789016342471728406263370104359218965351640981358225234660229423732457136054804773971282561172570886675011146144442330542116031968879651139799870277117397734948208887515308573174658172904529540313538151290867555650833199972568643372220519166402385717016273543556938370805109331401967339894401578718433210000485322816792797979835516766025827409751013541027437213107212831636518869900490585067075586077086070072390994489985935604165295601589802248271337569609759611850756067053341693280954610237598181552996649485255421614798236402914584045379234631147584477769855783390296044620268375973703903014538850866284855514029310805606802635962747719070515735588859540333419875191216941996040349895395074832865428098978807744923073331260730787465525480937331649454762279779262382016224030697309267571962988158727881705651500885831452348342283276958909017512403818784303197273521467147193426274134785515621778212301259805287827304145775965554918563405405524953234323104740433785919791514520199877228747845085156618181482586471072493210117435257067258222049387899093225792672823316385417014511277339476402989553979147473258360837988752339463629751800846541358912234698438418592833139779608945126020468225611590500502868500891488782241650441619343396172845987652550948608190152944342278720914480119782408976775977416997173047647855184594241746129870949683294174751392911904952690382710963666568518118818249006965501636614994189231587331496939529511830049378575164395528802221465624761729916937182312399194800184139797808450850631342408985906328439405162549057922478392332175033097614544240485550626976850588240863583119057882404071627930677758213296389654461391150290347717538977954417539923919350000398895185978839940800522524926821642141742672136511405681389444490218965329059474191695867651322143696748018705476715119944470395995641283903248276504526356966846414870616262597304891020346498497119708818343040773441566907063691999331874333971766886786391939538468926266836667944863021071022769719271701700597174984255009974129831544607879872101021207820871995687330211924195933505866382077212392385033136936154615274929244885456177752484570570613721784665574663232030864290085302597736169793533052479925278987471582895566906866961113302224083197754708855909936679179863253356483487207076325205520569207034498662221322493370185674865657597092449142325301317371922829664727034826798688483252144185188641547964596027369733475774123970653515055502348631597672046931030060305718594521765020512277117633183043649855143049720861666915982266071561355401332803660956120298439023955152354354682436675479130466004348998606697237322977367676804859669222718870694221453538873910446541014646403080585928520550981873005983079108015436815288277328515638734500360226357443704697327795959691680114498395632316642533408106322534833164657727216244403828709912177291950944779206427920536284222612412280667771217706806658672614899976034307159811853245328125852006088337730533303149427250028374792348016942983454562145386732727688717897984286172001138246404415885841456021175296431335607095451163248229895874717363763812132040243831455761313923683484753199997964529089005129529586594056981973524651492141455837115312896388524468067878846811422652547250882548221509082389511168833348464463826818629973406472243360439868888177073968214173543954963093740933732190142193138895226380161611233943012906365261163676759007032156235612898951381576455638197213660102642422197308172631756131708885009401564316130570193044346836033171120952079435413467416225137809699777343602709607245990676177453697230395633675383018755477225159372301020867504730016721975474098823795905448606793319303385919990350791451894385814311004113407468293849182488401253283217766573732186432092005938646213308797493301864675683355943201809230569616014078593781024136256773895540653538132060631765945160775003793722329260360982945171465333170741640506125212980754670364174443977285459178013351165462871716643184629071984328900774798617683080549304363730517038645301841254519474462318925649429013252183759527623697460009569183734713577768261375705526550703510399674514481493785300304976318779502828122123651659646209822379816711611452060777606872714857179043722199755855186493981874440230365784636622948689871377315582063243061071075447915687835144815117320456714456096331226904064427422862767464440516067277412527315150853983857980078935430969061604508327144965941216360911132756575799661850993222009605200331024524335947747893791527889783834122990566629955180950710198199501317813837083957652696799063846584584919534380342486541432758390395884067971451147467125026918012748250829600791112289314069972547194981202781007775081419296383564283881261370261340494850832701472386040467384767081993959693177429404498296229677873527446965797758772890912607008962851559437669059279197927466527456429195715216036781498821276044576229370275547338292295824810590061989814491967988025402305217923722948475361752074383336783466166627623089459954728661503390231636901123248674619800316436783466837663730639840711345364980930830668782347638252377773855497500029109232710225578219439194102820202751264355425442970818849687911294722769570772652643121208717670728035496468569867070353611531714180840840717901770298690766246671060272029004453901680119406346376776341574190064552865337743034200899962314319543223289410365461427345700319872427422854986933562770199595106178042394396795857489961786527385571763514210201634915355917164610259193498064970209653171876865368564919142157467748883367125956991845970531753757658017700824270019692816165136073744107964645728716637340456639494033878910645273867403012975341531550271334092331973283553682712832418833234801969132666535620109203388599331370962681740380291524947908466598303026923347077931754885700084394363335145764937210176940837005961081773506192112948260830752638938804049323133906646044019334174508788203864705397585763332273697343152118289241194995806962988902783780122239070686818696734448415960599660274952341208116209240395875395925958166032405278600985567743577400712992638543414978871316435245224856225456152094020608034893558859443008638190476263016335617345526947349425022387866207066135991420615135645926977542525486378787096604095147789538346528054134201488913293613523526159267254762890564736271963033315934054976800559576169842383137758728752020443127799072637416129796315281640339832375182746213324635831696743432709867866799826882422639099498843364356587365688329840345995989804401337258827790967595539858706298523996804611014217416491946670997484141839809842459104127392890233573805772362230321329935922878434320462008524740010795910902952954708335144987322552466714929198771255155564014176910439776482996368515683518075599016001761579581540510140451626191859982679088073777992469987495014645390141966527936846600791270002478287394608441779810050241457128726611934004422000202466737783413417181043046720225450466248776087524144181089482453320512246498174772788440774112797732217377189472745377609023719002372943280073841221899143130948191470146900124647244619894018518052474733452607796778185488450712094557355313231941071979622353993710939335369682189035649699602392807041454321731495873103822820244514370398275563333434280887464967814269617710682638905489578141146192079446634849638425361984910207814694949099268979481111455783536350688785434892307232416658221463325462852140016057492299872144584673386314873866101899453695525216684071186999101890823821068151186255006351012305923571396088531245145963875344500047906885694266949376441396718809063525552670419299430637388595855790713709133636125384282874225223608612892598822961938216632950994490174525113847435634789083861759770064583158585369719294361197089178928804865700477925840751702122724320769775401147833979829638156196546877198054659167048365244919039547425914410083883646954112362536231042591327963756219000960212111833596098802814732199334870120550053404980788696360083118884366163334924176313549628465857698794019857046140612724231849159184492179666734139968465079730136512244927451899485618165612532880003479266199460016658006214452842957208669686679263324138099319534105215628492296543371411714046204159152630607374271989770525885042753927671451271957254011362228676754493281428263877561483976710627158497452780888764868735613072323757682546906932376889379237628139471564472200362109912492265503023079337025950072076354260739497712471862666354524737946549202227051441240251212728652302459521753250373865276135137663531363966564571633574856176373667102560656631601588373318844597823507717777099787887274483583066972349872294169325863099958843250896976632804448911740761559362769087798764680101725893076666073757077178354856658544809377228459237128631205641770101906005981697867095139079237126612329338126656902581733995748434617425950320805910850871716355443612083325487406818851665787818780509537888728495472430022780846813208228998166960976557113772156903210721908952915696478225102258697616865734179021004848463710920553527762457256358732048249717474895552429160223157315067238779983098094712764842878169800789460235156288035118350100963887548001396557885187338999714033946944919599434155512216016060475662455885289667226826317014333363638117789979961331511395001388842873654064015326709789457412915004650847080589800395513463654380847745079354498723121963855449420446859237779845064774228611537175282450844514899460953963707622214078350157488741914170870737385120320903400218401790695001046499097961232560302999471858558812758744060523385645155798533793240025043091814020410658895269514990181093491660636809926603675298711323970225537927423157542806672558146070103903962308505922436276671735224227535361081963854030604664448858954453353807445362164055899401766185530842072977625060190630847839159058991198616420004552344993527812251475824734534639941627459925903246470051559307393219872295989827961068790995101971838778889176320226423341862158029731188009944057142956750361559023394078890652993484244703866173446361763027407433345376442659579372012218369493943039072513802665577853134448306149699827341281881181942103994119469120021484284638005884835900550277435985788135942676921233212518609324395015556087713219928211592405127421857165662461391089876880997549881207545059540082084285555184252280628070068499662866415168733953653292583328567531925071901827344059915306176449243188575332027588340800952283792793991707145017026384569411540278043227791887593143352867004720904326087196660092001567851501504521101394049443365170173608172069963138314169654029108255069156406931561979335974748486213015138198796240817391151018957731713020281781948155367395131095143926737419392625121774423843442755433081781179158299929526801482708773141819984085468790121192434867850171470555212389004931575306787470901583500776542563890045474895903196593417349387290977263579076595263137798051032842540809532655449067159846039097239876419597287418435112778011699256766083115347048675097687561843717024144741396257932762487585556666967878048936837447170675148037770004396346080741970231064451383007504791594100523685347064481739659003194810972940292573197268331883718584022519427576467902980059214993937529095770173803419968743809490102073880070862346890458452491678436645326832673463640405581452847899822430386527624206426281816824434763373582447811352475411519871987507384007555713881622269149552616529841968597795344193753959305522986778297264675817718127696218853355925839034559511113691739625951527706879777165514630166062658727667743603512316628790026899057410949939698417409884608298030831751459973170362395260335881932705917488588613502238389108045415541325734904083222894397899058785732967189085184096425432065062748859728293888882189880216954808004569064446731637738367763339767492679726186544936243774620813567525924756568014115818598029666121913445415522917024632530517548488558394724673510590859918441256919932564943620234161569904166350201159837566508422022242095001148850009255861813027094995198268697567224920097679547936766741477067111605982403758235178458771911504786101769301985140308248713563477175354497235702617459248028700862643093408154229743674538181086666337335771820980461324263759328382647261560724461677679251600000628854012011771554584042715079586129912301730799229821980427739926858101712407411010684402938628735340629422013312708662432026418462320317960812030989841409598535423069062313343895494072286672537352336643127654432694972906558112608567094365186814415770913306305118466864109943724157477933164383051187710909425257589169125721251568539353806373379387853088702438824247964996134109689302816355119790196711345149849591770437977117700477935586907637083700706069378848450092671106291979806687851039310185387920687358875014381044123197914999016280623133062984714038894117536829464568785415777391319341572285529635823347148350687538623293055949479161559999348205402903884723568996405307299208306767136728501997073518418803536349944847469317427807327909565815133340491151050962457363028393878459803320510273598054664520882197673356531444551458399704262352780566120226529332551688371072589446086346549043460365164991859311545795636756671104172229376432330519267498186356516911186018819641131306553182461415929686377434743275200691112769022702838571845960650866224057870961039023448286241507334400539418667596177863756484831758010467936342377173542479994269013954737952516356212920258949622887318327789606792394229897559434863254622433849289202880696090691021311046667764395074334024693461091711727579048888134848452099028234111809374737949108517184262315817543962140090405158565668227567107493860866109204766114117024785481468033085229381633924603746471619915246521033894139867799762877852209541769240771737359242860236468103978470632949876785262163556406570337734774633781978877381124406731805504397607339812149169509980290537787603345814525363938008600146857991223322021957728087224636550802821495035787710527355547240658145855497319126580107972165828946693655847163439007877499635109826955830498157606742870990741205049938054886470106946001691941384084276633033533633845892527165052045962440746414042244769782421413651928121812538739771105997273645834112677455486435298477243404755690175238313851017926535181144014982845115659706857714166699689467755942957887223180206965579410216733044946046380393882301211024713514747817909038796479928514284558693622496969589628757253526051560974555001255243763248635474392171937851098155759729727549346468483701483292000447199433211586067913662356182357870623582918278018276282270958464570530451352393853237765158471442045415651939027191318168853520077816585134892277339263206762203099286528117604721378737632379364036755983173064540721506766711034979274305107154919206787369869103419422271907743475402211364107753904591522500818208958923605757474892901741484123740664535662733978579878825402683022165324509373118452616897817850794900161132302534328352822402690101410317717305420887854115496958846835932161345416106622915841842784863667807496962472349352997995778448580833936574335837057869173210018000723892005265956558639165207101450164026076519155805985137413625241276104540808738196068339973238150549367295549679280497634674761026568082982127233417075523169512165476781545680602067686819339603130508081470211865477684578609248843425757169032959691301324042312077150312967499486843460520410615006937645279993490591562215996700776638499885247232770785841120177264444348517942659828654284732307971863997226676881404812015511936124034910874715497745404114589047068998385844203895884588790358166234792706986849095210808170348236147083992418050436271974497792023029874708112713309972663670301669262601488867946313651005070345641442787314260125751015176992151258664833234893490639133229868342402769617523791045797593723314649710925699910536946811136384014234338539308524758348780155001700782818721460355133703194235896502514823295228747187506200824770189581767425204823802198125772630530176433714427613579171556194138868425433666020208089692626237293555314117691571339371404092064870120513415133355045298554680721840722419515044426607936093729359816320485586663337571534607953756583014781788630426055142275015330760183727052150659729845003044281361788818640379047809206296010100080004378005488903904691434477242247586434874136579856718056002488457977495646877218520962320491490165216819176155713628591104693823831335304744181162255598180846061352770628274602719067808647803942034401067350255689341885203627039784319136324773304155632860786921900329979093738450106268129459055130272033420827214487247070959981318501071297537613523256252031554259505090798849378936818033398264158417718058686166783151965609821344875443399369956962340180145970236634895211192468287541514724021963123464836050959933897270104273833058748449872777363286665792345278182660050426201218167389833405086349456050711310560260221515705139544677557295760585044843741510985039742651505885113294686000459028095667719202696171133431914625399226288972719124749158258307569766341868013339086047913109555674817731185327369454717820632193162861527344585794355742385337675082900253396996075615964846788195960386496524341654311255448079047204987148678052314272535047055915158195046077230098290193791767156450612178879599062017609604593331162983501257966603184723698317028546175284516346190277045013007952354299218687242906233371741355532104939114703708748832466972723041866768908562568636975269047002517203182749669881386946496860082022476120077197961986792526242736322446702777231685793056471095826159859979713038462854788449797838231115198690858710261663471551743442146551626675337735171174244148440598503369877689946574328097385305500960210703700113108396139304000117398858563577682072499571662087352221647992613816423495199314868574968433172098531208882288894967089173851331002714966044352605412384849839475066014288859948942622158768394904268514156633494186358514696241198932563741894513663160565715196603369448132983659405460198169315188072900226569894113296466232297241480764744808166439823427109224700341690607287252344738116335744477576185042164773000684497739104229752930551472816645465177086946223139200458994503453325444406421274650241977828713587575095241127267476147640556016595601686651276355486076339807055470397504617902719117397397162007899083896361351239062106356985948199980400229337213592848172919038268642211697447755329977973040891602407706231954923185851047753488364907602411838362468763619033610808265465535354107597527339743030658772992555588211964227358623202931838825036342911808833291470878458681287662229748840336749232852248011131342592062047525068569928170177098214892303638138805358412251846937605638760717126080493307006739575685820011183752529811547893987630120497370695365315125374364802417446225517850106971605538089660952251827742112620540013384010721526243829167427846042027852020715760720093889338590173071951743770348759349020568449718992158435345890182715178070589927063275033492362630930362425673729912299917148971028148119994694053921362092230970347048062314005163813816008668924967375753512912251691721215762631534268583448158076651727067278990459110234816332022370488545662841014040113494722506465704964413704893420607403607141706386197316829227132462665902125992353027153040076448343555764884480493195280719252079187886628821927176309082035045667466394590338319796801419820085618998958771824954066959314908256344774248715572412209281524126984785050585744840036800167397013252634379294321726602073808984890387399233541563581795388076371061162093822422794791715473697362581925486245515490484083197036791626197052833692627445099859672976150377644504094503333798556242385142865126451819023410655956921903154949054578432644168505788217181295421271534071027529573850328464354131113927711193241703274847717999071899062247020179960469416836452778158584569138387071862218895172977281669720476243764375396745294751972254014331572536440496093099147265320977453784840537742588031753872957279453611491137256982672944684029936670314072289569720411531814044683588608122521618606904754150115891101287107323682666511248302969620753740222223992143217255925333426042756140444582697767033524055726053209748693610583426970581160550132442327947975903534217356572100747781508051410774795974692985976780786919213846970009440715907242421163396243473217551713644232234263180341142942587609247779461488204760431313629172961424377835658991803854527482307330009231797205977829113505238690244452414828852447971719724486094432171800323454408551912888029571009464776021448185536930146451254412960466472166970307890937895007231931540183483017723165449801183513738633915044330199221424598748540385426566458269285987214098047470709434470248631410446781049184155671580165090959673335672406334333484704723947993887573920148752884418679473023560187061503410176022725649130592831810370920883807074452473774197826900768918593375825524001442641904160616495518026780065701925502882144556186903728605136375022024880518992967790529268957286477902023365188275500789843084315314773586448698493339072713834287244034877815129448624323344992836707932817222272271388224151833978700369047104822302642340874304770387452026810488825333971669938762719356805323629026454500478936347700468927994387620718153782998801835942376209076841412254387448051146095189533632299104963865871969332751720354715838608457443665974343789774697031269524369224853618844213890358830791573251029019278256127684957818602234772566037452616119483071228685737570084731987833029524648338620489562138939794893946365719087983200606088925169365481540497760523107854934236635496804740116982592235965841067930335626327738516074312797484820305322082418213139109412718185190793648609787543401061786656539892924941500742537630864561235795493098932188608717129985690772048453154590059626989905508886661849096601483080515185098128058449022328354081320748355494673011256701707402386182188136887008550181612097687609746516653078030212437584910357379121623664854041971145139066854382849278354790510805714823734679733735487785784972585798573589761158727796726955062326924501899365521640937338190605546136810997672696468818583696979287028172975985127413835744418754471194587634398095872330470678320422687950941422636939682102973657168256822485884709817847091675923491026233459069485818536653672483010293273184975378338098638351595818816401859158411496131317302364142416726428207877927528228097795660197913225320852801219549860502920440067343547577825118644754800340624178075507091828548006072189472234551696775621286007593365435415558774794490466719272703752008874667047217253068111196743400538339739841480081940227874255974197433096807787429733961105014967042470948305844514845953150575639293718271257597638360794834575823872929163450287399029701048846878727691836549967995500732567278447309407879002564968144998532150926957437424123289043484396697417148840026883434863074148177007718613420838124969964443318734522262309803623914885256532325649188180824862918635825024420021815145782075408600274422582112435651649484574536367218334128420023516867694371550946430784786886798135761576032475537807854232882932789328059707943061361974176218143775338242601064303725156588081434758870727981137960991672233052911349225380087792154357393642162343882073000711106445281919716814883886787547554176183169314387947505544752571339617482139897208478880471522265700418367304389924332802847852336717733408986958028090689552605233190955806121313803003420767353172062925283207886118374707338710154078928808029679700677399726467031180178008538546583494798979934529567748550883296034360293474993739835985847899324298663328023314779834686523292112996414401688714218741982489767602008137525571650623551331945152208337630490530632670811999720441036037063701724630169500002930188079742556427976653218205916111688066795482817470190988168405076631492723178255359249615520863350195960521874941646605567868526508289213768526860061471798180266294793825758071070093338373266636924194660709663675268579280187615090249697655705722784209859402913207665739830741009738138397380571554983818149999584534572738200440583285620267710030557508552974417420735297315807993877016326730959011672237372884086432154933416199376943317268356595856868712723872025702610145820703366857900765434038933165522048728628891046436733495257706572153710844525074186406706194420859392639566444535612690035039552517426107083089836651274400977844366097706108415556118982185852323425193063223132150630722217415934903009255289791134964014387760579774606273491408970277724931961469359381096112711654111144262491125777669602472725797801867958760376843948278754160979203070873499492038212418939296374863601443453628658207551633658798162879539932490723355940572480894418116185495316467990539172758694463357919411480791803002355326647138501169557275766413710899057103216948643991392403799056033191911508679933451295306178087363033798131953731412750335017347596765134437301495076259171069433617570238667656891832822416198241444519570290876210810894369248875167966350574980204515555314294246038276834785512651801898101500097213468959883331188903735536820580038962754988859468677483982943341641254429372269137093283590489531089569298481893682944220067831556468601782656598435284362985097943787342581963639561554831123773494554486558812472980903144309804256967087591808628659843511957307101383454545430253970927912137295104427825433871369058702034335224234045308943516269023412118570007997697702710835180956079284441215247949273110237508270764804509978572535562207110654371476140521650889697242204601615653237137533199912010794130855538091403030442630293308251951235322685143665514144814583955823700382990213903395281222963061314232542117137686829358411775294533107539520365378537161005331577698148251314964200454212616767415015768146717648279374246977257027910408952611068658721238397511534020796662122890777557162270239106338049127684126036472518322465686729489001571611907827556284036304601973643150413797267887240492986834212827279246203296695162481811400372007203013414497730018181255250802294470822923957031473818026697269868863908410484463132961702314851935519332104906398799017910250795341377739813327481126485891382717485275340303109626913528468203128760838243394019530474013848121012822460243254575982917288670469452329222504606892377797154525160732933499129838111761284799335839084104069221154881066912260826785791074941047846609980010266455756868944057861897200983638813194680478080428315029408699684498179579739032208458879184783728607216771261469178486199695801598959631653412175650595182022746706415878126017446421134743637476800275557699766033239419434211236646123691275552180804108460404803429199700378551037740809232309669927683881811027123201868811335607540606555667565186501577436699123485040913092270559156269247261427664099431270105450144013175893280325813000072384174992319792871251751864449920918392571042211736119964604017656094811001301253948770091985037177041162876977286715481316430867399623294592233502149725608221133241717927941137635823934038754036613013756564092031030841287736477595382385780982787345855246816913849273183416153989235623222940208908968768038530930007623954871979401265297285736819216419670373974961803871756288388624681719804283924387087375351467304112188927836761015199383921454994011558417435488910988293950958726503801778822944820156925495053622049938645378727849420507795018412211874369522950323830108653481991797952888268527523318252407508458241459164943819533571823142196472349881898507881636793012192880686770655835925768281790422014447437672015549171250639254729727657307353104034882987199174119994230895391777269342867818415532738806550974157031714554960660052833923798102642912629763804494522029038606581343079704703877665932387435624541057704318043355477000827906821363311497375980067712875033396090724445726648847959738878262538018981284525172360503414533964841420460458531623715804327844948574031482279932901737400857351967029169489616218094553888155528596141014958529588431854477732340779158160345347784516453144190277349620019647385617278455324024339963377809007338997325799673931060005013407832972749458258312271166918833955730982375743611118966537599150831473812797970686570366293304149048974050904418011931065190170679194187839071961816337469493620179039028798930191942115150696766802920126602328790841328580255398605798220688676238339655144998199495386407552347389792318231910956143318571510543515636034433868420631521464069814762636568151260507235879977100581238977641456851551330784438775840524230473933588163087478441836591008450209723449645992690784645935132653979909104006770020495918390377237835863728106491846515840493423778291827557484482669907503813264981697791565067222925038790947799280650498048385493588634754905077364277173222337534921733179532531369865666811561261697882973435944453104140489231259962964938111093128309234951484022733186563900927580311106743950510016855730586954466329365426278566749914113101223655443455573171643646014483617580045200290981224010546039807193836586189870541360397807224802476107857062022694366199437222139253071810298461841793007795753572478359597343015856911694240517533115707418195337476584787510603906544972258181404161532404043823331100424238438936379263357787945097637859365272985292872972349006865225782268025694731659869658219060084247291104004357610498499269451939809764541350788713194806777313435548343320794135960618271907216361251337063164291555399994553619924751271236536914570179014726336233240250945814169472986599527215226952231707218224834799504738761393817319822961995366188798121187425627063872464247868353591420240132565046386753430801562947929290687647475753536751927283287442421726702157206282477520767937237759959297434181129877673669828394630150111261606515387922133958824657053759634005129079063166352497063969034760660800086373350678904692692197183122365538276891129182619947198193220856726550943742029405811912050539250000276086136314154315682172423421636282220878840992773583337483975865331039689613010114085086261472536608994223347816850541610575351119392695421357707078450136635569171307143000196537971552587508028531961744064643150067670467459503021076778116041960744155093112424343673670497400376826405956337738873101038634122429319405715589824124141490475051559773498804521442043069296308319300611181900966235445155433259960064901677184867324099185798488338348044151133951893398278127162155541020920362729787493709005101519373058915721847017759451890335620493018821438116491680594680129788273656691155780953706235753482093518001113866819967547267179327942526833998526349763503423127359799263060877149963854484240024630922110333331213984721468855933854547907698368937842156808424206111548828988706607781904107001198213532089559920801781759895317211686048571916828453876468727895592652313434598979023415042959845561445893721490159242145071269088653769507677639895338202122297665666124422008697840559745467538784729453063563900827970179483135090612725265562366149437600329686564270001032041247552610500623040818069817299269617444232532557663468478954833960335058569955829045766495670207968068848277605933262019255370082337084125792452614743182508370873542441570178632836119302732281685910086474610353182258729994047277523197081584006558241396099789950697494803914767645311451050699132027955973169097054335946125005278147194693686922546889531777710171579222305630466149900391770084836723893303071117225106414997953161994386178533896485232126810214554981089532429336179312549061701411109941238672641049082377804562264292144289425890377842940204782184226170210936147488579896722601031639458193688069096418617562308630640679379777446206637522112224029605176973592423890704988071724090070136601384371801009257798769058204864880897647423789141186160796575485158275541298840183419482001676658308037758811725869677890740202748356022211057822630708410705807662344287106056189902403773979046441480172397515598130759394048163506726624767341846050374091607059935406262882312718837483007192789112360559656762646450134311817947759825719814295831966359761650706958115848640330681081618073670240785928366312659026996483940746323075296924022598979278397078131137668972551358954602619441795322878432987191097671109655256131423909710126582196398124891650763298108052097738732965019924308808844576732718150765768057701584556361794504066436393654866878408528007528819612808127294893587784160541184211687255066858517790686608948545906296312966563647266832511100306569463816646011024980678808634614291296464654656493726369468384161895492731077245516150586871842899114607438896377239247287584055260164735838435124969986124129259183713697857228645285216247753772031241217063546770397147739758693344846196876792719725741424775201902778171465872053605060515091343478739559523975688936217528762648494081272274468965061943624163383888258155275745163953763715417615750072519307771653588758007104320949540786013393947940196283074684539406120756178275708299079537590750165684869821376260128681554354515802944143770962695220481134925141620004265711831754100906972022698908896069116662095695363152347084939938795017661571729943154206646840575294977133331751104085372505869536082239211861124346243144872468917190073790243974179853324613739335917271440747943337236518640637482613290214444329285480125030135610455235368788604050105605017610970364067570372472971456245217895316979039922971605511285836757446057833049439555660252916809887196890855972261010825938297902852296639513977622018207602023864930710367117080623357171638295234045926151701137223376587556473841235738029526434846923273211240964588235535831421102827472672672291259600543954876109738540757619472169075568366104253837601195798430762931188920054207560557792744572687071855704045705454142015849403167337311705631978054489465167419076350258676712425464706009455770290820075702561968790568461345010628859401369570260460217837770584377716983586237610192210179871565819031198662784156919646964660603973896861490402255616709948415257504963312040164776179424191305770799544541162307730413084705381194543557116129683009756057213900060107316933388171988576934233006057091424193722111491548439203185362906103021687908810580714881694388219695076800917128552329993152774592175906342246508504272001608888186816707520766107519411283163091838103502443559140198734607366971346734970985111693394936052762170260228042354937497037934751349838275584502447686942014034405376640801182310108183265596879951625380623862795238683742633402703566300451158267982655938520786359379786987015163748913280826050439200179633694869030215344480814287494136738437669433103214353423354759097096705754372740860750723605358727443621762789395511653400714981259731954262456991146128793502363454240308919408828447311512529949056281005137457852923164774047219605267024314135926068599934159726633491915895997045886503465211747623201726671033928500710448880835280336708239003298126128416382614484234185833922599721676757783118482259878505671197623129981498656841751978303203568931273717871844240203795109185720151362645818292936279483850958644896086128058786361767249392211049374210589144892071259515913250485091969534031203122713832556647878009311892149162516685036441679302915821212503022501746079893465526025594022110050478925095043049136556255748766747163573830288515738031543823823983617580076717370600964072148929728336667648836675837237004772100999901406529405750116726460522888293829655480712897192920267562975791187243016556551204034736640694859337056244339104564309355381083866720337218711269549082741230928041383752183894596409155971337288735768196184081154309661074098073404578356913917095618589293966707172707291906739101480004719497113480429090409802722648437143151565125486212595825221591135023813029106970618390262574454162363398342619698824687988012890121371242991729133342899561941337218624993554272639905853124103141262254373484866124401365633739677774740233261162046748380948547337367041778315115994236323937074085453127386442358193623857401860339634971074869871608658605010708161154916946622238204262913681554401587806072306640632125611420770980522116457903297533141697326039419326726679810979282278681738526180925385961547567068910480347412920524704849807182061538608783461426820001043101236426672405761253376883289017484121837471435423668693664097377756860924689930848568760904521389060152432205890500236746695732107637921167160603596485738358529432608258580157749064715835955895842543344370810640716487729115990653956677127918600872727333780858971964624045323564321790604639388228470063622133588215074136847380597119261675697235250407129741719148881135387249030595635411746915029315605883008745931038515742821801983406135661385030754118458932724626694647048221455568257721888836736721960750989513155771533834743795411388832352732788417302843120888964042734120000658141406700774033710260970506370012294141129699397282317901342853400824823312436911667448581813236300445905476294197668900692762144590053476450852902721141548816261033591509153292132810706266418151176841797904031850089591516621315760937319994363679989279359648262354388931166287778695664410987537500992457346731487208356558471493040621552486125412658393568635521860595283654453041261636496758531894497518477221884433844272290910083380885591603774940967753543845456435472193925174525228001836932872966929474875084304595561852262064533136677954497278229768974745118416069687067184323923463041823113352637940492995402694773851890385469403052504653891665142458908109354971325388450762588791212430848472644022597081976303519056573686846375945582157116447823625298590452820024851688241120461254164814468653304234558525256168613453222454942770302155118123677105114836049416032973878024409930047228946689438264128788832264635350782108970932629884149308875547440266986973809178749640115185309253700091545151557028155724856583428389660710017235961974827728178252706376452633944023208539877128607779629875358656513232689110355611909089622582886994330812289941538840256117528641235039020758653369977074216894197292566126011359716525304115341384895969045074912551677192120860332667303723042998296496925466777203064483387539247376567211256021647913015082789083487568386322624895117752964958217687464037255335507213167225372066191532411026981109711171909431891507381205961859140000426820771887559413024064278261724556551207856619067216970620714185023965931766868036127267819974167384001353333561068254687471413491889380748129919752373912194986201880674200437627032348404875992660796989139574862262735490004790183024231534001150091568292336079364133961557970077420478180828899693124596184961493043320916962467112154488621900168451345536091865513749929125098055802365605605685542795187723389708329340349343578244987126333584825101706384929515008731726835493299869632061600285863988746133567566759903059903541171027883757229682312203892447776445723673949066706143071326698787521311563315990078722482008786258789780474926687876464517118926566496096438838180281222557223268946950556121552909950552225202093666196978407174405272283818660132363247366270417031876513733996262143902510580648075080005280989012745362183384268108528308489384825717413581172960429653429937818573356681546858493842000625528911709351606875771478046608376411184486931060894274556400666574049677195094661445366635394349831591846813532901744599330254684329648226547199067046191680634382875746723647141169668110314609661507454543080159947832558541813443437570468142329866025073390257312836190212505708038297309551882086487224359425236585311911902159786108461856206043583278710315656008263312573729939262495570370460501850612697457378836499862061999937815470851149275057537764310927501736582278918922667215661375624899968610825944639072074216454899980768683573009465764074818065640793578250682362774113022573141914514841319852091580585658143085463023850432864609881838850470137409228175772428094248253024982454476366698077936766590965332138311513826156770178659716752603515480985823043174396847177305974456661773826414911534769301500169202641491748352202729237501636817623293914290831663477069011795680760323372031910175201302067065131201685770963392189929121688542322822176206453786947657199301325569005610024354797813912373755526605714341555625043898677813530682979858625733422788354624990224152171061915142253549825986134000045361147563204361359760216533938741525168204794151527080477974942280076497711413646489980368675902723551595736046764314385946771458068672905938481375177070798419096866719207493491380763348458721998648996824700756356138080807356922731451790025349120836900109011735593545367710186403379373913319306554905281064153645524373170620084433890482602940290011028732531251623445733748200470806269962645950043924014252471905528557062508777789016333401851398852322339073761625203956953033863181797011825440465787489394857423569505075304596750549479775686124089675671970889524361273796236932577391909612632502356120994236484329829741333343205103393661150216298113598734303217985575872477527499688288654295254614418541157676770401264787840350111851187958393193786366585477910147748138406814388528845732106014173551418371984661267077036489623951271913066210723705834211825822446937525310033312757077519903275283562049178596589161753468827705743498283098348072539461613994073316242020596453609802867941088944672138875381729300553210253735403328300017406012232631689181590862984099071080989050978251422702187334643359997764229294071907921700377636168949907841502954513224257502916248644784056526880321486956314369026788548655357328172256065425500245422272306118266189680183410180414016662934999304215780323975650255661155589505659944083933927348812669739849841745311634059974048179640357119347463125352915759352620283321980095947075883254790807699863024175149823728006564633297973484877614957302153269776929411569934593870872549486598818929753206496010743899188130727592473336111638564156979322102251040259631828748552557241365384580359523686772047248315929127207277839554517744018216794239980372345721361253632191928482661711053629361935699349670706565794802839203341471036050058287156193446947457892975306939020448528064108116943894940993784652083394897973380595414725702905000387545757125525662241721085403062617998998588022258713275785631949173856460900053440708530192388671975747324790813051960519196462617790242877092332720442383869414381928799996915923754247744332987850063486739812403763014189333018188388103017065227372184492508409526511755371237729587300717483000888262637210277864734267650177830449231085624653758294004621591684647284806728564425235410486640115889201654872996787877198569575254944922467217686205099716223088242883394175220571098110911106750585416114398436629218737119115942235416887390738603723427776709352862410482676652813151934449204213391413172181513180122449919073424014795954386878176518407455708201651400537327549863977940044260943518233008823153609152303999077856677835281836278007381886922135097718056048039466495785056658397211006565630691074013055722038834561914808911284484817329295280674716146977013184806947764963537857635268014280754390404625433385616368714004427051606969941976922716650181710002850117156937301803975915979242082978267581303058313341989057694797958706581270984710802576570937610722951504880781870763300444775994039052178333045373500302127007307309864368746033467452631854703113309481887976324581819919855575750823628256523409759732306789324376863383707354847606626106886088564917962865546058401847671996688571683618250099051207345749843717650265457671150006130574860188043241045376975023506414754500580522152487883072747203191210158950947192366502342326166843270404897701198959744909275858254704736369879711845266967229995090563666983185531108818857114990691336743255753319906383588696396637362174252299609078969879135788632353122344620328076260491119022476294567874485980084317228682619046921514991618793423164238996168813023424774226715096705169586992863679511789193832369163980662861366802119593975439013006510545934801376922948414060859641398430833451368499636652758933193071733700643474825512372157280461934398561437901700776044806700308345142575677430243412649503056038818544227307453726685824391287506715989372701634222115525624643966575701103319820548284332999053376361576696735877372331480716216689797090959666729561278335874798027119270573829630811718450346623357745702890907282372223772178431749191815661674596773438242631904690913417735562326196178775498835356000722272805509280943346845793024333924210944194428835668248928588022921546937420954436685324619420592740263433119298001450362826868646123696016509554977562010388982143483347677127541344379373897018487699027223094075150909092199720413012087629041748402035384743622743956200309166587122787255841122769095389161609434613524352969670981605601763400399690466948199064049045821835241991860234028865553435313434840605490890330422913681786720218651641510921320954063791675733178237614861269059011618236639126650111693323880409249032617676055361640726467129224253315170717626617386776849703196210390558881801884946275574796592579766110786688584024830066780505901399439182049536161161187853012015008430418990733790912716292749073330767339494478253212885758134122709153372474081186977877040324502616313276340115762025073869572104837223152617218287408061379039128124141179423588400296446933255475398769262806757162834758181261188354233123718861858028037610583422844818892629532088341350598122523544554459664167312658415928323671058887161366202004367219563326138381544199812145943275254487948640341058500898875268853308448091448959579820467766489714797814498425069856916889347226201956703086064058192089774008977432721126435856920492394556413049399534771291804533170659964393524017694304186893653189574498703470070383796606666835630161857516111084760396311460292709176686855643375329764517681448461730801371866256491350831620724916461108850150448527087102973339761640041076477578837185396831070596409712775596552854105199618776335299829647019045142760346541641161708950265958668044836753063625945534569640285787883468040861629593031073754460622264832424619400282503959316295620754825571185801050156842524612738188190310394681966547485131820145517606468213427393592749782443674922455417969514064592380356227640707770115390985611120824698137287017017338616327691588934001462441670435070514775641642743846065751671914004160663741547271655269531664938820860195022159055235285621619592521641163022147694439188139319218288959033270969764254796835530190274322644982002907024763348685041259345258863188068302433941137972782978120240288464013797767312670772357262471743305052486181640507627760113216811995902968877687888091171529879710410692460719495403018657178350070436211824553968014131972936403774236465984985873601338991705157359267785108179495847323596404443172471757405561183807542257490166744474503412966539382998033710557536704432321180056402782405233434307895789377479064217753291878958014046849815336501538265882942514820161913701235138179806061487565628586127178517707242839510389568352590601796458858631253360288473080711405087974620013469657864968226937889149722280768877819085000726831195500218884909439707500105823530021510668932730838038672519302450179687406724272131551984703821321042585556056337909080281166084033897226255556717827914857356693939912489241186808279482425835077074370578960755712767599183574476728484738662554112123946452475805172680211579685575694250427470901294303648791918600697264940832733337463619424286354135580592606619157513215585043243957449978601529326681189418257335840985688895155804192487721874619888773565485895666209936292654792165016004059298567460276183831578460000809835833515838250426291769591677735808256481991946884512437343960155136298057061846141051183868776572362040749363870318980088735760598218750561394846288478484270054756883883320467307289300787716359364382774721037676277716528788178597714294438686837209481326215682665445035412483138955397845811669276426604943920725308349685789374023430012876083303683307516775977262799035196718590917644662324238545598504140799719932175814329943321221163504402664279226425228252199052001318581726064653941392292479676055809967489304653430493807324449052784425200671105640533933957670720199564169133058968354517772164784600400278260303984850915253306505606038557148697074240780296190765470092009595508509758967068615948434895924101062536339179683982431110022051111638988766922288927062093669041146830273819339948235882020102774276151704020719794835799137925530311149518848121689590009651293265560635164176351282219208179690924136718149597719677664717016937483698839111253959837947859669238833323851752381395074252501197071828887212251999740248477185601731538440688787417348419658253985716914590292606863302327485061390292570381427961152626274799588299599332094643447913772906390380088125354603979093824084295722156744180018841152604736593746371738784377385984891671970897185658488011945844813455927671743772173239299095851218023301988156895959672634596452544308116934982477516387687072406118091629719747337571248332625879677678856847683196219143307685306725482603498147312561657218295023923298730386676420421941332070150672290452182485259210041314476362012579404482132759484940633941862198734906016459090602189002693887835072020590181195750157497950797431782592345580198162704458207711108534705172408780028758290080445726709839101633864126372805724616422386676483076394946596646404079670374273054113660371247181299419231208839328577675735621588894285194394056804772018543941771160781217884856788864580271683135570704967056860424850031366023050252448894881165517865141418244563675847678947750810608659782246506441437575086149044677460204936929003673335541587163057005647461803270039875593078456007859173487064422173293126752772483291260895780530317304875481525173029486122879940511129749564174977774350907637679467346165164657512763505966673432139366499704973579630041905095737123297299365361334733317283876801426480575090849791714913386384113319337469471073656833738705847407329890036501950736808171599949478542778153285271972087389014018216560111886273410572244440707181741970503524579431618763242837843822071608579503093390630794744783278293794918741563336643603496465221928221711209498646150779257050300694151295568105927059427273096309683118946456337346194802742767917176238260875472642565325879398034874165769718222074016012733937063472273499590652744629779878614123085411031100504932286834688408419133194364762733975011516810765433943786624993509602417693350748048779972315725531140142725672648916026158678447470349950491514751268936847253354469406398835946846877711515131507949870933663895913695894516858456164743187236128029260963152708379162146082704055491832402338193617605784198638117098488960389127832782310754947396143894559353890657049348566611449012328206562226132195715305766219338685390577490956435015850937003278922763912963610514937217864660010536471541120831291284699949047095492673924060948545701922182540314773530749651425357477778209448294764111455577688309875002401475971698094943593587527956360018913918487424040009870613304424533946172919151500557663877905585418336215229825705538848043103706650417523176986888777365472637178792737065165950139600343487022380918359731646629390757927729679176981082273177624412966596497069741250683249883675849526265159702482589810101874002883073940561859063698545292590423976256823545581560137207438936420024080773132545090412812029033715524300581479102721101852350951635978542504484721367921070103668894760072640782969239812910597682734264595437892491975628320734564553471401920193877556953869936100570054205884867843352282589891535133663778635185319440204255765542911933403918958246750470489833436400325580153825315346898760143737216360182709926125212121377121237713047334684236758580403539619175947329426691270059951652682646777038263359166382323321647565575395364327590392576453020175581977074510440718621412038813438059109845253251432910736856148880718027193988186812322929613644541576562087082667844754474254568027017756463277866649256970504341263705773700819615615747462121479862462595443118887451491993111762745520222572226530158104226044595931081671607077229758335022091283145049268550449266509251797286888353201035861668856626302111063608739864785308549200569912255929794763286508750972007211430215499196172480547817980455749628955040708860765693193397985362811094027701337531751332702314314990127461742197860412567840446601324766173089245296866313125044215052230478047629529542761612658588389876450290009581606568756595211902385008530610360017246160472890222482892945323617398307266750837869668452246382559720018047194373262725406791879425932464777186449699795144043066944658545489142303538581024369571949112097497397465789743988771453344580997486883865654705887414650157350190645237925066213471810741109806364373118973561542429571429769467663343508166453821939201292485325719105761273993623464266764718947960015748436810830763815407557152230737022880242782310832589019868989421696291603017274622276130275569333186712326483867918213642760143345685340127845228401131479626882956884914769586993209290883473842353660616830402647625914443240266274612351472082546923495754983179592653262557339974340365394721227555336412405889600982274999689198751939384776991233338692745494176892695733432110757254918757346981378023442094496030047596952963414616293855665587072947614065935915784022133299691523367720944958100280332140621073329569030725134899776350204792390686448402536308749623474527191947812255955511275242917707859486219076772655430477097768695408332723568046596775604122696765316928752545805009526285501226347140791315485986342758879594143725133879048552738509017126705275889241295759369544576662782762350453690768133726935908163601914877150631487757455868222462211685012576915255575889546649118938819356333510632531474933640773326501366252631974704715439543595421336012735045486520831276013235204394260928041689367758378436439436348058805941031782058522032206787048841555005473754211114647517146390938459300019666298195787138416574418951206972504352856723381820204176951160874874336044592815437930413216434074932070285038559356716948210151596162501621199522379495361636024804624308403155001807567576039035995526644263809733120156816094556888809581023537254822390920407795616808046721097735632342037756396842833938918239355984831565452680207820673516551177405698516948879864960477150749330522411198036456262925195053154613737990702690973725831526316477319565930341710058052688243047353419855522504994241519239476673949086492850574662972462507911445654181172830874677676496886178397561462441399294364579687669006549420673605171952705446085317522816270832218691793075514256897806375856609413386546754005567514216365885536984518770772734657024254302259826215637164250834927096233587852346630368158775541286161037709604684443487384894453743457001776675873747160203588973213142494630915824869378535632161018302640552611233614026167927108968164426707817125890394979710243375387494840450046185125137809395533346695465231732011356532504539864857080513492675558816567172515886149814614915629997585074738188828085615846231642430111117959573220616208582924531192294208263872787719515400157209987075203398571905922336337720789535960967941665215625682969397656836916607160109889495968378303772908486756045621828982386998628860247983862887782111133900279960827363979714795441008317972621214211368718822257042249598750256532607993767780982224615288932545935271206659634388460400107738952874614137178603591667646665830761177842772879229887260826729997608724620863229022569019503705923398561510357954399804983608861957775927038758450072320732248375152186278237998017971935796170218758630780682169156137991985100125672083505743150396039933716402468737072246618485198860821047913001232224036026267164563276978619979356931652199119634333293693265370755479031959055491540346206504237983344698153818218367686644505877847897617546183096174171351392331964647839293193307982779992067000382996944334409862499645387228594779895925363352500138274353195991019734180505884525311328254234507556973613601079131845093114760144101468442536406620543934776083256361452765003826741329885226421042712772301632378418188666769310124903488129761801267090620148957395106340075422798946887190228848900608019349762445642491458307313183115931842903427567800565387229971135974591862848520583407368050328927435412050640319692913664315522014215847448404738092253563975769151556777277343222428749385682693568380804221378014370759082222914120957388539145255415848724473023523811642048268799181905267905904459783670158932785278751416051642541538271119557328237804385100138418771323928233608740334046173471846844113474041293508539828389066858227105944928280728303182539217746978265424751015048231508431779065755478610592412613925214075082590204427244343732350468481387380396574865466696036226094953361110380405522878044941962727705832968949071161457047619520355222468180347336033462159384937391010443367352106657463618272934719393937750877209462022037319877976977539026012606019459386233933997256654938254070963113030848481452949420408052957885997868909196921645328463542495081195125833568972139901171145240649263272922388240026495107367297643267132081057639903175083021291380464059653475379421368490124970881599206220867773833511765120483125433577781760231101023089555077413290079936035690039476996142648398336722126763293017539868074480886670524780383337413361112793047143356493048911663197733666110358924793986896251786796720654125978253625904452785056338120777282896061199592689333772897332375328710308206391472502413456972828448689050319378018014842354217985982795069070093802729602934931366734759524985315279652260379036106516629987322380382145386894625105861041057444939817815120279483070804131826618151793250085047566994387920162555192367863579378197359509757985547748399504878771321988710395075581854573871592748261031649050369323594598866428836066727035766003815772466102361242177272082026792647881801651815307994581148285013666697179149009315416007651353466917996152759930607767292430649669114784815605794219380477759004569708255243524597295031977892026654089627679140836757654894512290321560841563479693530425636215020085318604788058847983050833268674426562098124201881511998509570420228307470038256629107894707834645720847490199442884583455855804378502625665752483813290476024913360835716483812269061483354841478408775447981886713143266545092603131314801703908652951595192612006843465951936834088664388082997123622472960175352566282427266445089351620546281332650462855483790661156079733025526278076442621647561298350884245943433593361333447483018856237872594335783377259507137694681900672243001895935604514310986507803422439238048646035518531225231540517990766136231024512034521842706039897631560551292033422224526567538148436129403245322751551969376288515171594843601927210991045861537054386446641361319257337446008351060006252976186535189071614871943559466419868662520562093845090048824012938786429499223037378917949612299095528251792710616410730733331187779114905306228297790023004441179340423036096089005372246262414645065415502743618258271095503865550220679284009357395927490865541386728079433094229412698142309037280783518328535099102247564438022281996506858527686272038396453446705298646361019197285096671974296647346301197119984580127692063160597273338409577909036412227773243207700359404188564569913105580839111700959391836852540954663166003074603594471686316876326002144024595240049603644154148113593447436847571423771507310026603953138892605382712468425262965514601677436941424015394234216477562825623513686540996739690795990185125484661481069788128605858506808156190937290946338685639947415097163097788256781958718733050853785932188459933849521137293868334564747775801432115532078860211300320708518623229242996499603212445778326764420449239179810665592155697002322513870148105054305840583248784050226198458968828374565849524339752301216098048167554322794391855933964400012538544018213798872089518117679010643277431606773979370552936051994554047476578547718322981064317635268510425869297330718543775455368430950385231831822164271070533055379810256945843170829557691080843300277263366512814727527046757388135058755480718516966619369748295202514389400403527705329079430021923136091642205518567195070860253271601416829227647088364808419557442856595983347066336675594141868311430223938903569303336611071866793713487897452026334599187558573317002429951349368726480539357303684130320344700096327136287397386519366227621505216155516994341880336996024078524668226892909596001891407198358810278171834665156590990829906255067496621950433622358187764823812028872475773500683653253759221242887062573172010370101762446210777782025363164363401357706995448142690572503666181120122027011553211890115556553171684295169429602842420441377762394440804351910931820203530628169262761368277565252533194846118050048457701130577259274059902179421268380382698522391283503733099038151438679556140883714212703719273590723128711105782133164059869882022463825545900439611428029657159154746197278657532813007093447345467232962263404810912759662802108202071919898966616365691941844050662228532373291825585486489825734269786099039308035273948335733625960207646892220623511640152269475976456546421919993249015486831062398960764342182959056586604983801760315295112843128357418992446852810551308663163575166646723995077617514522767417926528454229050517925251737551558157913750031990319964610357168768789936923130619208476100570744885346893552947081968985279524920310155547805788131758564131205658308084891365980393892942622236417330297687265577712903985305103991505258940351030655333444161370878540913207770252963827047705079497724475390487356108514670336084452103287805346646778252703336250717496602977520525892948012320852206588244095173269499336396050148288498559278822475309813054292057715447025609519865407475438932813074580690220800278452136248845614941157648780251705196391253326044912210493910055965197457961738505045655844657265163423638164216934574273223053715174879199393260993669478083021493516617318237910686199374502115570788968462501879463496854872979632426471703657452949965420984091749692095981777581150928060156256509262922186107152326891303804866452126000991215751258207909836850590003773221030901524177728498358775763933158259798982810366421168275288538792505367563096249743626280873884628189678232374007052456285148774016722544385126698794482241216431507577956258066122842676114647207037294235731376235107449389972513042411681554078760387852363013657865659616783927200474946111455817542674457066974207634951396750697769199600268754643045905792162457769600072521135358844619531533683738404934082118623776174261855921075641646728436052309632495700851217850405663859982293012007221875373498960105555172601546177137743682738134980330906528922359821541860547439959701244740020731734809761418744526917085954004504885420245958900503662247822857610840914712875257867095156704940270261873012984037620612843250837250268293939750756942275471119664189574880860491635635015608948010207354252624948452257750750123520871014689067212813584417313223061165146584659334953129695028259957414780007529652723281074086731551443586664041877003269256870039392572053604107848053629164859888250147630080311274495426381138674979080664347749427899697766700393279975435015303830264141661457873387487200925099915762540716534420033360950594972343475297259692918286321220712778930001596564195097263815110493626655576034568205117016337983002977952562848911784640817547121732988480836781324382559069262835887660354154674469720961104206423426507656723961873294421087708779869845272417097247068080106555964727883972880251214273601142848203057767810038594065768988762157173669862886959611551978530628406607087655436560277303847293062063438487662524952124244230891389114769022109638308542333804958481190878046384281297505380616490320681279798517493953733110889527702599165352081482723463164628062204275496747918674396158333804192549772050753267789192746870584404164559292121731550869785541131326391988439251552938672704059845557126417111612879880388878741021320555523439387230674773064484083285770380271304063271388364244792203109406291518910923557614063815164222080203114693434096067836791074442828372569340701903252954698909543584492851588350566684335281525815373582200865833538167064579784798311979562940414734276776133494241452648337685261250093095920421501887462354356602906393216899251505884035339476463831995730062413630693722690496787013398459583132946177412482321836445395247982759193663431834031549949405687122069708932873084722399788833172657101742937656297643340524899431331521532809110590693089335188755214014701848267250347392407698542189860172315466351968230062724721802091243544917314323688281491350426948064604925111465349483450042810979590742117814374359891610819786385218190932423545150191806677358116186661822991414560719749087844285245697789070918020294201054129467587067539766203402777343218984282950365022098936777323254706791210612711052263008365634649767068786094578555402311063252965416028522804806916753400449459861797944334812651765189087937003586511284171152611853129975861430918987312561185123276654844487352570391310732500660148178706440251017986388809126423548984974442472396544303440982381427917959479784595406037734851397691741204306616714740664541011548202417953549055516892977234319950304616650181096554707875237535810830382070552152855715815527290628960450404294148042346928086223768082735018962709073857534837829163846447547238932422671173665887558505485121848787032119769975752079258444755398450589848588222307443599775528999526241516435570885621608762184027815649464876432373452679996847886961245063203100402780969420130060901216952062699520685567391245338540712139108425921481353940517849017861360897802611622819585097490521233236938594822213278809224228909574709532231252467733687467627899599684211477078586296151808404429203330506441982603683700539000161445723512769963320685953759847222518616869487960346177236528704567617528726399720321417836074810558684744584768079857604091306140729615279602417417407544192745781626710131148054610748717403544586483637646428128622966226256174129718663203897622474204592866699697696253573072678452467131385989554028516342130714975080383100519568002071568625642579994920877309433316930877114027945476086922971130091476792043565641732799531267120303018043187384713248661429751924082006296746973291686145250865196305674907430350132542250357536985145346711701294946434920260328475649714469729777711361541248908821706573576244516038448688355462534926928819630690532726838842485550308354045959377591205569155083537287331958424574602568103012474478065757903659015665831778707683992405132700671730207900270725629835730857741278448688086462358917518509225107863605577151259446125029722317337111897343074555713285352948801542244451171723920038755920612998654130045445050712159042179416607580596561641948178561494581155037969774658860167016976072011531847095120032060320804579411610828216405488450747878386926109899926970088728613372524746714503323165870320225411299510313504531483348161432969720590070727248148796830749596751830430664874600382174852293802372100344650033789047094188591945183758550018169355782539968951448668040476285059797390121407346694734235139077832791069761496829959398737530960037579746793700011701481194086573323210219217999115094813774031389142612578066018731114860956480578980455990520194614605157622672036457995349107682080607873428025645910437291318960178787078949321203932315791448736234159340632398575523193306625958546814478221439211958244261646396980794997679362541812429234475463704039568105124895819771897750064246107580990105815756216465106167162902959083699581315751856952351628821642809771505374804734117132133845648769936447019653208026646692221823823691426782372845605346569837752051686523147789126295266648952545076371120891536501467133613649551550570430032817419595784683158749315038257410455252584911404644924657107286723191226311544940863064932879477912533042223958063912511464195179238211926085006734273639743094618629138736274581970250524553104398463077056727545034940553418644980129195671334436729305124457595817243077977602001929291515429534245229974017679813553759018323328897248800831364075494975086635317694677461911803234140677545108809348218886863344276238650395112504197463457949788356570061486339836880223221103103465241951193514930261802215685858474195499685505955027330789610324241506521761732684007573695056904307003370321593640022609125824577234727321868858776980600231774549327477782501172397528130059243469390063856435970352487752862063016895805531907791104690281686041362684169279820573270808351542620300501092777281177674813992161998574239274159013147534100458186910799211112425923653430824417577118826508461055239298831911247877566686785558969351591107065979488926942868397114742291634439272035742505338479501463407275047957255853634562125911127408895257467232280056869500736171714872078927203501748022110585033894499463175718206620314703813461696076664368298761850159840371745635344783717311298161360483275174713088119885221862887593402680492218011933458960715306799421611633673341146450435570495505181236017653386238692492430705076866319246633017604372841357916506497030203981216464683231759120982941119915243157463522893104499912355040302745311243865565406295104002747751088721543868156520507049956750455367574286870571130187219565586932662792729933999599006282367183434054906857938956782300810667876051480471848040023406961499080039589954345191775295584889509798812282995326361727700656734941668651135346230555691903236032449427648236370353536402238221067697742052944101917036322034361882693407500594305201575587586317992057087748077554239481719181231400339718263457588831007117045710507092648932472166878592143552281382169490939209501924219302542383203614591655412547493617772059134806083581901766232365332665964713069188622570354757902342366843025563445751390793148932465830439554501050096210969817493320431095695052991821866341848464916138121336278721468823324255387884125042809991538363237378201343375106089250229173582217960398574748018574605574222789064580306877515054692043291865499502544729807118370995979422492790454638002738827914012593427978979021071516649457044766410122649226266505912171117695489253450557710272080894467476123127611194517636694882606894858842644503299351324239573590924410622348195701654319910052023533701707553277907592256191868677874497743226986969909169102250028754526835025097711421110231836827488062218919205987738908210737584462075406441348540273746527183042305052955319091064830090821379854516425574257789695459751679957595580409135031596558494431769476494989276923675539993753699901983183231894273626674560801000642341390490543059937668868202277720798726776584191262358513469626635465813079051959142090985895222419472450815827014865157863581872433413670256426127502577126008190925903805467701769729412314261294941600530438699157428943975343048816015911642729754136076511551277921229744970105409622523317264365844445859875040907854284122534215103474397409127400397305267842205347593012691527055236126032480524719741722995572347877198994502860501796923488824891981527268960022225203820144271878456120478333634793760022715524485498686529248546541064306881155705125679160113826052246651806880003145758526731929536802121482858623812247205287394855306092028615524994461066425343631221416439424872943591150745472936775518096603380003356623600584053576489334307326878227649786192908012228528604817792711329055385912798701784535092789852900255610659083606589368707273417703537120125890713146726442655447610736357773420192621928428514065519708633624404169409611997552232368358201646647400628796696998848859692266690847306010628208530643416749555574405372168397109366892345183728781614085388645054294889000262681876975564458022136339504238681365355030004698442580918522520772106817476123724416101424921019216036406589176682888761725542589666421234901208057708505303315314657773643146874030148245008494215895814612955596907098220537361488871539731083003050370406813025541404636598261405056538099665171468101392069319749650055668031896888223506163592147471892333435736511432354917931005459901651849799147607708339949148870718254650943238197707441417582202829077165721369541022489107554218252480230011080464799888220912206668171092730092242865126606645236139948756299249412161092768983999687126653058402557946783285869449939619658752476138360056270689826131636281516259717270026333682671852908115787966143580394618971850010778840881086440377751107076801868576290635610523454280212067970153261373366677033008856244911242876313322041817670473135304458787225131942590118912431017077200202399499249871595143489880975835174801711922951097549006015869147401552974772353867568180301265636264523545668940203043589117320187474082446664550168601368016108457162436831118869670232349596878821493274072620972438311541769538251115716650132330926293359556024872065653573582912546947397169536238500162492316146370203007842115082622130143119351539867946287899584814303681300978247466777134381432611148032156737804645834823816102066873219701757418714810554902660142590150919388810780927312197694103338910497406128999370319399565591546534287257569844700669117891533896468782181855495539607988669026171406119633187204632101860097653679561624058501347443825095487464208629969285046983211732537736152722442884482459254015955544937298991434657548675751230968962891600347112151198762986416122188628231772597647711390289064437149125248770351539797631874984686842235102193577637314801736417953668933697508482140162721018161408947644508183424338406091160029501908394519154263660661774667438127766828816025235022965355964519338455166074939618395454924438116548867238587437672520632117473333891429790577098270596539080947039597253941939408183780441355371805529612099331255967051962239728932074706159595276188722507878929835211302886714925413489898377409623039549949463438833639595412161686130558230586673810703839445783037986898418410271437088160918244745911947305586320864263603586311583014521289387140135823001787870458528970033593953276626895727992054874610858057204768990359899857484757926825051157285803982114395918355923347814046953534811238606381818124545882471485365547504216676316583330122049935222042746224202637469523617881935331508694192755962702360400189526407963385014821818266335105680476839865518417712979046180120532613044540788182088607904215841746940505314124634693217956203421670107493706400480599656352925007225407384077646190564779512687380670842430417481349556091321084536680878226572106043974773944095005373138348210250328926805294986289202790003635152932745384244712569516574589123353513737812905370581249919932086940018733451668098080208953092849475020792202900283802882477999926831326549566727388116606788106070615593078342475226998768174039322041754958298397250600409796539397372347703232044583781464232659866550680934614302231507797094679454618216067856038688650449145858682654851016859359880771018220456870530928237916896904287991876637505901064449965294295747756577815869384006949636011232886018349237201862416429921044192367772973511642727365854451395429601523912162735202886113647859841105126111751865967429412225206960311995167073276807452284935295768002466589437490144652846482783088786419848327843846781165686464190881391494460886101196074043279041366402953445392649629835280825671766759481820098933792607735281034010638426587291684039411682341817763695178419893710452175627840476265391455287849389571238584043644163345207267538846199769196006308199429964711942741250809570335548535859527910556119391973236135723694777102327074186218844531504713594582447942780970566828007703527699927216468326776650874432080518256676746976419672050070871863546559959711565481299292464677204586764630819783719161963861272776793495866000131793543309573298710386273910055134495514614856263962242882002358070484208081267075304037122337166854772232200073147089862614620599995183253801803963441092858313405833334057529241493863019451692801236421689447358430646091009047966494472322056731461885441367516077732656067164374546983051763252781905429316274281156905726734823245738150616945950485092245493375011220973076542364359274672475673494546173104585998594051467416799094135938949030870216924073677577466691727703924476345627500526391286295539560325911854028284319302551085812488684790415890297731565243447202183834600703744981905368118494615565151129536855426357508707121492503405643440688575358731667184767916687753860764033516621484724520766682570933386829645505958310203712411731180319133715930527479556828153224801949728753226195657641562345611512069460120013949795974465372047119090542926825564549324285841277739770906173086072416769562786640107290748980538468160568578931722116711369304494527401368992461963709365248345958935788706869220407621626038953798851746117457100658307281988893713086225492762431718223676908404295965437314986360062701442197859130580568292638805775223435189792318916712844442217407868520891239149266036767608924672069522675166368631091119244801111720226035613808556618678194560130622583148621283788738273047963598841441145961062742084811938084775681885134572776693259782696363044653755759799635085495280254568593747980385826436036864011317066493733739247005298415026945579996920480631190865766473542868940375719862201020785305738266574313902160277762232285976358463085900052818770375273807093715392347343302946908343860211611522517313806412806540230612109531706552387157022430715035631995769605942859101958366948321747161201188518511296389744266321713447130867592570057365815441984098839838925727851936283117332550112003375117860023560951196762069945587425674918676054188791981834495938231148205461642791187041744133080913631337760550518765551147487497245750083428558207751325012478638463262583639218886911949361509376948332466913447934284255774336874149534725988682675958817778926125860052715006852049584297750750400008189284893388727228155955043537949626674386743094908330435116149565428048315088473171684979692146466568732499197614655456497755830286423814641368133845160693915253086686056555219071048529027911528019535171725701519338183763270304676223947911036842143142324321935201228984388009343661983187015576235563069818273166261642772555386092521004307335172306020379330029013193653536427686052201811221332442283735299964236747016967854289902397979684621791316663063765305979240650383818210175250828254610538503909922974499850597233012238612886407802290823002030680943582126422677190659716437944754802903836693490621119211419228874887361763733802705217805236063177603480286228513399702432088726484997328729737127275029076381818499981852277118480415428374577297528491363761776567248245919946940874777045656908497071764288649209315387499109360918740664644360161593599609356576490686514930638676485074633385475459375405653102376153663541383273734347140415794016865495479678784005236531366817908387055312765723457219803576426520697862977260435993907549356925470471925622922857734814644489480969345707242335768550104345333532565521062885269612988548919387601934927721040869215334854994303843434775962073506188903797828085609955326480287835450942422882682252739214233953714816138850486002590650561529750327975828978471010014734907738300303886998796572358059507053950636354659202376207842801178140763698626501509075809755489785663078535508251490816221150220787683379443673437572423206702640599692775226687486502417351139408853853050031696629080787683142104492323271272985576939268113088714796170259486827470816200407469525939878752368743633458131895247035793966653308077564051805572613359006758943660674983342085343360127937146351500434328543810917548931503312926188497686671169262229656124945631086670065136812723859567872072106601754457605410906912060608046623097370056211942608525529425732697656864055749146960544146280213991721511530098943076890043369268317452007649394273721215932434816500868575488099814038921740699080477400357708522407972903413880766353929343104916667214287596120178820838126586429217482600347361885836317354444661655804736862891028102117240313452832834856721349110689910408323190339959037325260956780269478450190847336693164228612003520969779403512945475536297566290100738972296657978030915939207254845902471160422519038545681797079159026176462106289453796885941026831940782760860862371138589551498007736862880301331314582646169155585680460190904266711077644476172704971488716801552249976554507930876778137775474402729965679549832591001446948868455274870605000261118107810468537347582176648214370142438055996958600701683151640726950335667681956604559450445453704524500233941631271859062154210932292623658387272532326829840210900959507440352168532547715751675938849629328059987537814435472647904911247204067444683716382321739526743855187718198891916573646021698452229442076620634004738678388994604389637002313108998008059342091439653738562168822337183657679985540421790057144021884284803695351510706209528555556418156989051229590681999082810653191854008099447145797596433783870402748847354276757896469385272231892015604928235658054636246323251666160748875094143703112057713569483125554892377529923441448371595117785339620891704390746751330741988042843128154772943376285424841402122274947038350231403189125419179852201365492508731324402372261819711448972052208822463856564360964765911146390355181320517470487958458219037848393435355128920166234356710269983760818205749391830558755821274009822265407267715272987488098483146688446546213733908700088239650952970793124367239287338478341378291672322475673944094850933583123511166893191780569174512342694361115636989123891814902418467316470804346754974234003900881499984104255688684125030803871329755731887544671301585111005999741294994885324739771625184072592090502796092767074458287157337840487777109912029179616685060124701642068038908715677171708938986791065795795234824638158563623427822471193384365344264408813486566437368016010919538665234525074908950942175557144867308763815106250924212192011455974572849349317203269593810445447435268339748950668542167437946187240125841964450814242375508326123443901601100973094381935352938497048538001241652586872940102908164732239086534677442971327648817111933480721636230928552465444819838974334979704689145233053284730930133384962801193115181969089766350022888134574218964819285656581838614749324832667362227049536576900844299955000474805735092441868944016838741265710341730912987370057000769998782934896274269507692019683992215164388413284528450160126909721538835820328926918923303244802324441136970134780579591675461765304986559912421555636048700869814207940037954405163441606419057538222380569067632680602263383839605242990131290447943645626682498914674950091219430485492542062744670283007022703422970282983890109308287806086996041033169142905617621709980346790602480380720386823116515028444519927366410481164133078383214002010790660922837960580309537667290616404869583991710632393158568463798794472196662273207972486343641890330327485493361879777694433944786354361685460203377439658194632647397172608820019616419548655097441382886110576490927118338779274413195879302687670341230821944112403711418891783235865602109469260365164820201864314077341080672385697139133333128223931336600429393065201246047376674289215924353906219896382188056670060231998375229254435298095597645109427675221070665824054980306820598225584564500010121082392635442696113264249469194904226370514313402161524455524049154333287774343960697299418982385272983175913893952973411040366855453359804244926558381831804869571546364445666175054026341501368933081311143087262310850159476631088749150371445856258518097669299117451368643802123265184844105216929473158887791122784705054439615352971280874101929284416333501399356387118802065403850622742836421870036656260234287975711194700664112492103975686998468809109347909129503759438225334170763547304591877497020864067816414550536309451494112610004339993727525433765811827729766664505004306803832265477648271942793007407746684816419265326893610858722301134815851538329532157569425991220700579893605693555883368225581906163082071840345780453591729309563502792911490967851542384861743867834419193910873505391650403025775293106990768911408921133020110088427638349977416427338822871851201814888070694066223901727601383884737460222981786776090296432076801619482471085757036214239180350386725066542249134362842699564600103777879659895454225265240795016188580376509553666494135086112404635156919953417599917362087771380565867753210915413993122296021694400716178595112700237221363346424952435999949646350524019545990667510826748204873438214765806955303907019979639984222734912644250600406335271799164562874140509396402717769602560986911294201704487449729674734598062602062735102992807642635559050797481267131765224769609343790872804212455730133407532877074876484066582756515284800552282548756569965611757852536914764706743491038015304719901881716050436554787739503826488976099279161924435731129074364352376646478540987247262145763617531381515343429288346646141152686002242698938744042106639966304143824102732639001648256120300552596332601746822622901986826720442141322173762172277331278488681368963045597163031651545921394769862921157288830602396405458483621854384281814353601167762616558160608995055669665297630291226304905518294478179171588100762745033624808548373166515004138148711001434704263555209165245828722046987817593835773566040037536498888289586227979796360947584258051962503336838153593658280931119655144694938572075527838298875042286825971135223280327336436170584132737029043007886315979467487704767333961419953458641448538193837574703595676576862557287138807072609351295348670253271160906861542546634511510345045616136854125033115300670886360488244611829559775703114816682873941645754870069391255431736264725031984842376482494864039108454723559035896924904908798956291117081083296598830236676230059832226404191567238236206374417948952973351618670403497699215590251829234423074063613176639713001190994006859443409656557977558091957077157018374208103138457494509559744644676821836498761056158547253906654044667096609894983004144705910749136011076570071868012927419117817631264902294634444913937098161325735292827835257832062680201404645980615453776362546671679359295283259364701491094277764723553476314279702844316295865788677016650847136865166525645884203654774530521833196312191536204011237846051192651727203277069223742645664772108648070310111473696429072252118383471387237113468808091818725082134770009216907557463907073154391930555876507133119149751200731330333934381300774552038926572231031222470661003422025038057135772641935007994533957554954185098740626460584828504091840073972987028368541345598501202353112659946757670946734537861193450489807070983114094314384192437268085438981607638736250406558233319183189534809765491029686080092356077106689859877036144896439278334800406360564757820277253948927439701385122026287416920190724825654601304107911261789297098738761801877705009025118947290214759873761640722039658632421464099434193342151574716221733570812678275245454055764844849568301603010695441106447732458295283823430323619872706958592045782917842696752409021751336163436734756188894267266525092673681790841900815642028896447002828326083506382830663108188988200595536886867772711740637577449762227366964376884240214554769681946556319856275975331757219326344131011690276914220678413099273986041619548053747090753051904543498378197353622069337076100597860359074720636337131531912473430050287792746481611320932735411889882479176344648805965083328187424718580258641927652113932752491012715249644908888082788655480906859608615832556146022681353285070448827636298020302511058469978617849114656875232156893081958049108726356527924974703017242864506218626418320443362044112596930985710225536171256413824460798975976407737949994535319793233587788825590801393291262339443654350156964693261640001738264467839572605868699494357684141371438641272489327938561294381521520766391361911430479808172647073341410100875632811332233864817547546349481171687825561282630989431169738770369069370046048216980980681431439477326533648604817158380085590669880149472115139473726159019928842039302831967759914203746931478462709347763624348360731504245564562348666433729165100196067551325484112364918555908587737349950448098233482165322568356010929753497070769344886277107773048453183515193420075965994744491014631999891772913858548786929104476350733879682316552608869595496354456568362370715152391330237584457272276407536913646812208477923323238342280968550173359032256181399794435656690148863800791445805958781953764586876674299831038670710243824490999340393410094902503488350765231762069972667359330740302595661910825736037257678671167419611221957667266368324277452496418531427475694029486105256900559499012766608575807627633197585294945283360458707896078248653146912153671982034529772079954620513258328183390977121687506952710614374956705523199581001602727879358158974702035299264892634842327763181876808967072940847739532980200434025628868225325239287290595920920965533501453851763767542063048830355411377468896605948233173041742360759077560480125664926533250248341816607886595758876270889484160302348594291520783638420352170182936356613343220227390403172663402817146987493220103097186465122092208353908090267195246078057305387280441926667856417656792027649305849922039575080073434381926380174318242982597950526751447753058263252232442143167406060395831643440600800621814264584061304354598157920714538090032726848715721036542270882376596140216274647997924239918529603795496151669289891918465432624724109831905389723317888611257983678965341889017262977967588157394896667122296235709701432172823914994573724570622278102593031535559280123721589505866214559802211614436774122937386707794851837643205340573463982618442757715927322349465710959913084050890388676511689540519119798195697120597263695229338357129751756462244415538541815674227295079323995344805670767585209026086347544257717352775739714502560084804354975846691989235720871465519593650236418788793050299309871153385550214405507037606538815548678611470771752750433841034189356951397368157536998547374868391174441652696061095741221537193816946860616015106777375295094937664887646107484625442620533899596598161184874013992025378896447884156823397012311336358734184023956387334215527070801649988079726422020675821833774733860268630496649572062525380441497510966055012775227364374758022959676510329178804202270332158387846285973856897609147370396215440652064752463051112975802887797001752352205194877355177360973990169187815697143138177076213419074657998675013817766982645689198020245695226781407660542729581041622817130851613726224867793629990776973043504598419853484944301249454778375182153563534105136590905221484774165678660088320577499390427142181387685909871879273355853845553608886530456277864055107376062831973423104059816411791766578951446364005351411898971114731782619332611204179601760965756841179927419728106657853281185682507563989409482567309496734528106737215796513090922434020229479386165879556878199725075911632055213171884925985893806565133036076000345950786957924158650276532859418056046816412306334737070225014159771844480916984123356222662555262263224003172750173036819242558315102688865797534679993929179398550551438392007709861920656148456557132691497508963167326219838907915910313213554253241556108635726312856959314902353137254154057886932078597329943726542908898437225326859971650346881395112654781820842752188567471835273627382740986797457575213390398874416444646947914214442404353608984634920139338316480661171242503727768400764151376478329576328380793618471524808093295462731681995304319125740255140299912090141041347013710985042420530871780932718098683303832726960991691686180537057007376835254266172875245234220246533853658216799507397432113250878898672388655000350798576061732871637860325774491610560156004367102102635202756871971014433677690351854617595812283578792447941315440431011714680573342750648994342563391276872587622249520707279342873112370996059348143788906936802174712449564888817573463369403937258839241192948457648223601863182203798979170138342422460598947510456811641833645996235328567166640963524980622772037991490640643131248902260886284507833571291918408430130356680157825117263062321692955481138444770445496514622903292122159293256748475248657473359137485065072440551530841525487215368132987476028042357708820045936864836656195124450349509180039469443208806989342163923635890870871661447137594466304601018336865122896315389180021665971139036326074591343890965772685672580710915789716306741493886197297473860219246252604393562612703364805151862596997752637156696116264118703381656658776293619087574664816177791686884977590935960174105252736039766334292147170923573271574459609891743730259718033097691161215899076067750563911313748748117698351186389637872252448947652987738328196021072217190274122377338973470189487176136178154432592910788124274373217185139056773383268714750928364975571238448632900650992176832849220863123548866851679899197787588593068492513985710842689707232113174271593942934752621596597702089197668220047643365123651470573456971136277213385673333118354336802697734971769355583963164291823576972529295630356906306816676937199395761464307166016417202486603079729798759583886385939125063464462079744786602748065450082823301206975896837063117504499018545184637617733643541479007344402892019373272028203748229904605498515162803583960585837321453871852654210515394265234781156678975755699058045029227995312164327793392156150966411899565789043917336953568161484805737181916628716833028806893841486554889342498270491701039229641246356706735091919425407975262775195572230669855473745334724101571591903984342955246530858647459278080495268748497000051443441643759943954905531799426016577976045754580047737211457416728838343939449058325905990521725955688079379878278982384793308024417671927567490366156971656010666550372345863226416995297230583012228625829582793976081220698644461951645317758221006574202250550583982664198010608760046153831574406744824995554658610682786975753858888526672276473788826861470462855434187615902775761068070488406369779906788324746335339813074323055062032679185349149395145994419888877726158809656916962766276707613567499706941878990485852308914287109744123679133912535412121783814698360297120930317690125557947102427406418169322266685249668755942098948005460015669641358326364350290442112913442294343887489921725393267387715580805933653422589214320370434860997524310607426989491580308019206039822920869135182220055407417320470227575064295945165182510977326962495511264067308249534190795747622559657558929961165404052791228588317851698342742708272221899981940815660777453688514757308459557137498054850570884714101090989191739897539972517439826927021505468253321438350237323551518146134904986601839481229215586980611870631014138751332171467956274774578804739414686430430826424130418076238801978799434559609305308523389906012829401552543840016109418049651952448263847544291319854540858036420831258825429571699937631731856810562355093144288814371913561922604204548262858276380231643410879834785251631622444638353006146843103963848797345033450766599455310126196579862255492936030441401142773379928009640845273779012561529332755370181302886213923867750202179491891058406865850866300682766659312858539152719417258465770573699975936751294157568852477293387934314598395555439692532902785176254311729267871802409965787113640459337833859406681753746251022493941060184878498946715569504365157553170694682798358614250531789150924875170124270283707190600020002167750785017831125484608507459908336851331658653236687898099594510065754572787134666037120309345263363592929380915183483355829079497618409734769785978860813095575160040441931031280435765670906826642271053226811989399134696775927043079165670388554083589640083009768123239132722196005458500698624118227467922756855880724124161690782077264917072546854724737312678078291380444350629406695788344703267419626942815212705571650161351260570639325191646590685769867165537158382210302738570635043022352903435801331054022612229426030081249188072816706673552624307178933071245211294278771664117940245176473940466663126920067738309568671678409552533921842703518340732254817643086431815871150428413685099773447573813018315073712843390670246486091316630109718501900181192732287369348132464428059671178365385584095695980234121784303804686783327201674938964999902084308532636602760740195681641420640833672382927864460302901890400575733655835908817496975309759300729194794526478237675692756925137995403230039049280377040999373451725564259300344740505018845191846205596701347485031150497410319110620720984724916844547304806260385314389890184831604884217484869308820146674260702032539975933389077954585544094474446277516708438609218948964988528537051833892599605581081433562466598575229493632622025367961293078951304787214431822311398427466514612410693352282916229209119759942802081435402450818015927888254164876377535635555797464309660574091342408073639361003722875701265388432917918528867811194069951834124470698280599759190246823292683032356460451636005121490065073640956652229286863108140449972723340940535437123330900426712360833105487228826112792480446224788766466536921899694252312189212618518125268981867874435552417982870148492129687540935012062340699496737821975174743792713911327708028874713580228150115896737934646326827392870103166917257517980551780545360761133496615460284873223118374481482514313159476903417744258958118741316248943336278711192880834178714857774055220023565494980200947457726502372153163651243881815922915024527638992952387164730399105070012450578081074110148215328280504964219114249788233322120597257932937095609708226697285887674204187506800149436808634486212167033675588424386971251732634996066739267354397914888424229350206371326962993536749891796386937600506556234127990048306745811320761299019173910276831991652194897166242973029659396943506488650624350794198534635171589868982135245110608439246363664826771636303465779168969487895373811738069199966728780291240010547356475661056590953525144319923946141781668676424825711239030950648204520345965359812609346535690845046701481726446109708692979650601586937359389564882970121464669921226096492717220335899282826915877200223703541076803657956882604368736485167358094372150139313727819251286906040049446904631225741561150691060199766072826728981602582152875250824966932375250513724503867091817349054526897175805436777224431362310313645512930985325084544298982736897637582689294554990136860318258127962186570778347384619490966099806268812326232138800954698642291886043731022635309577876737102666916444116291565261293255451522780606675297674234739207903143295473086851384936649017734660201192756837070971780186922117132033660065743784664652120871000770033172612562242390157324262519815330771427820733083888352282685337639761467506604489047346211282336489767577425215534120922668158799027834852783688693711617752676014368387102473776675536634403047611522507118746461891448334260753301841915617669777258175102598578558415538777080912840061219685151417369180636799320374145520760218796352851108636485725635668053594532656982858539154124090406590953250667691192428216239713205116366506969875928241026164765500544201304382861180887531751778097253068887387011645515024854382235490691163827654269280797986773499822187254930981366841103203497227053323512003161631050568596170334946056848390502639821638808933760266591842556419297090327232555905674286326718620862619108454790579512146080685428496316831647452906051166220201806551232394782347868498133717624081068067229326386715560387248210602402460461336071076382931323469819128811274445449418217019903452297688480417611278795081861058785054579496860335856012250187453022959554821558173479732258638726824058051274019782320813283564160200126082799464511501796034339723471745890268465188808727481087406045254859625949965484592158478314300960603685429438906319542642607014490330413203436534847070197680829170749519990661039019202304812749165879781231733132447112809107070715352414561580543222189586419600858375538373813519937432714514772547801009408552070514547420986810492926214449411751187494712459055063727720150285042473478395313949442296448295120624854872902418863369251998052448553243754051486720442102625688591241958700132275438377564806384776601693854317517014181879407701360238155087960279867380771992544439615274811488848777488948334825507021272816602486964622410278857695093956886682533080917118251848092843635484746316157448378331012086443017007332962838507193320775654553108741045344288471607430579899396934075331557340453291676334978208587626467025050811879724046021311409969101111202259886883479208703273843275143961385222264637599967024413531247005131083337472787352510515945211993096549771476740670079102476617754497776769533644381479688019487426596575703406350619601156013247937606987111928660153937556068463331899825519495422602224392009853553923716697212537908540167862030918483957696700509219107012756907351104200641639493244010200152115966711707156730594325908815448129552229442483041738678561728156858814547777108231633201634467080528316223716995997287459420347348701040770552864905184271066756126635046829085646789097732779404968215914728467331777203715901485660842182895110417445139852319629625660103507595794839311724546516650393471166931403828784756434825062848337389687934858358206202726373945555565514824217668676953140899474595606072992462934581189383055334905552409393179935914494222941656510776529872283913635214655059877319589135355126651749051888091658429622995204508047780648298019565580455947798369792739683891756784853888645899570874947876023675069646445380099624166687742845419434258795272602973689765437797229418592975389074111527075043735727591271608855294031219234661736184555199397502355075231087677255950998927724893005198655055563146051574504471248885753363881098608328522503955117751184192526940804875310018797628389080504171976033057024913623988673498363330949169612986304562104317478480373198576594183831685306957583013302355192336080339286928532965267007860491024707240776169955672975153310284631277159902025469812567662258990072669230642006412156531083300171584990723672157021901510379358358611858884962028842350632937799272582210356197013727878747724188628320234612804796855221391947797734718819831139412184751571681836597466705599519330089493029932603635180911308509885784554346463596376607569338264339665217303991479882706328873701388368291422485452632826642578651088429026545639666510587114587019465918741120307449528466502429748715889485667181762437371574849554442307028058008414823128175603336349489093718083545591176879955031935968417701606528013165269061927396873320068428011412896467159650121946962563960416377975719385040132968060700312851387608896376314755615978141839218685370227832106516591909863438834088388785105189655049356069972238077022136168338233220305705461966657385461157755998796007047184998416674706830498760400868514831778472716725337508059866471974043788563832116271186181346726679729834091264842796710629265166316401126346713402874858258925816369512939539213262200111751162999782974274293510848748501540470399607635273968151577616367702756212327833154933153762435646163332960137956766025129165301190350000263547997458352930380139310585442967033335690951023861069590916596980761491494667985758907764978598663064731547712054993608377588087916960182406267620498509177144005642040652859219818555606665445103814249674771987579557490028326962304085771731044804323701867842264647140790623694053311083251064505940041566741812287752913131713281576901326187515185226500828384236468440702375404489071406836895056457747925733001440581427303351916903385775041097208698349702285980759391495931437940333273589049695081452975326943204202273000363423427170233828577077036287278364473552713046405824910697524499281896048409672505210569367929024508630062128503047034854888312087271243996990675384628344051534840890431817825115998679437063775270504331147615368848599154991266470005707273316702787946779129017407689082442147854962601344492332249306507818747661690690018433278796052011640892711720826391244480662705583153214266077259547952654331442345096384215499931955280570095021181314475844850853618372719508232784986044132174899264319769695809855511101952280856567169562048912576087713852860428851505647388081898719032356944927524878694144700357967256343846995256347961187572976491213838006165165258050382869798460998105862686116142067620029906518886397782654310739466664268576057502939011940640861606780083321582522511376332753388028246761997450781845640432830998556825791111582284162408804058173869699186571970182896877559121863554487779825741248607750685330457319800648040716442547912962103364146197824255333279519919203632344279814996917179169426721596625224157275251408797606372620596938063756436389433353271573920669248768704182966390696953735951547248787773375861221157994592295679477452507219040737549050309059999975123720748509395889643243604553896875344358074933483848379138366167002523449316762831361129929245068458859618676171376417842160925287097398372124710168648185255254193381132744232341384824930606998227878973226464416444900379201834773688481181286241198101381222824005112211410395061425862883827768911671551897869434679885693057788180285523162999396012892597577876257453662689190051121930681967479583898177563363412990172228959232326974888616644189476791163361140669594615686428201056029451531953725434611867146741666980989334505313021587044718971318750670324391448737036979147573878144363067493708900729268487288154300763791461058770590133268421482111088593472669629800750721928085276186917719589067922460071143815052894619161143420438401877983553540500853921258434835405604684667046528734952803570422480027752143541678363342962974997835793712344076232167653585846555386814631946065444027292426539565492124491608587974358233760046698409268965062522551977497906524786479505264593794079950043139652480408985914769779346495827539441985871197498582128137559458880399574263755902343887383790139548121632547025089625131470157761300378249395879326694948955322613221461282072698465306831039278936960765167102608388667864064130608100801657050773415069260501022368515829335431094659216851051143944475075797615625267994236053676774649812474210686720128737425036385713089681278230602088186903636523313327335103644623564913266406042178485893254651327452909822005149671068250012526944737107006553354543540568400224096428380270608960383454492905000900000415090886877762896658635808760300530254726816828352781005699907296770982801393716392134473794779845634797808410805369690839885862240216569513921423495787533229542609636566853928274035529261547423355471747956362817330476710797859334124826133501323852817883265397039172025472438477492038277368545246633883790357454135160519820356687125433402256668468898995305053591071400396127048465638170339864678532437766720830980745217188102722215590091329648690567004922453359482950037995677841075407701083676634514264601602438077042465895721280987227924807484872613429422222912285068281327416146631066233553401169722506971534756754854620698363501601034808355548030003809724241735857811665067363069208707298162860455313147599483960170775031078140842616643077123432102792179375691601460008379606953125749853256491697415001826513027365307677237918714488613801556228559454838676544710202335684184330819226215963795091609519960078766422097769101730715842298810075719915460593360218558893067691746251571837568063550409566932634011690780264415002789308295891037842787854055642933189178590782641732078041800108837024240742428833044537651085064374101346991582422955345849599101534286018418768151593394647087671138084063074067883866537398576177839219790545928606321390273710879851714515775888537751114552496081551887313072368389725367468410325478465072851684697202418655152802504765843816177110715737062039961870697242416224686519983848896505209696922435117286994448512489348795358714302897548615364061601001744012349715929043284358327953245832587847813435255350985144284490684660660128006288506825506050502242162780303594081196936106131009997760618124242834000909194721750511977636538738412687386149736099423253164192694430923378567119596361961498066776686861588292893756531888507214715583865135637107565907560715947230482528279938361209953281017575538922116430914837417015957926773100217810049506220483577222569525547712914362728084378901642804064869769665722854583861766089470271700351004441012316010765294099109070091749689681571402078897163706005618335457895301801899471690694069029657442145150150787841138496253432672924640952146518073053885493029597204400865387942734080233886856254908235807837919854519955567431173957078645155814171679878338060390830506803162727956367184273170234481494605659209560945490989531217000508414753085419905301597139873628526942288504119567197920332066902662044043566291344110718579503411920704682661385567826583305501978927596147560612878774374399197201682677155329702112581155582532339452466724247033806120036624724427338911213613218767066377913173556734682014406870724390578119919805641562269939403169281237513274286603403113832801602984221979953432850721671683269799101335587672433856142820357171130054261063293434284444855005762125235561274500894365980107819489738455587292700191031918369942893326351171415932624445138869954766016233391757561371221761004366173373310765938763822521217350945303321717197148040186900435650104598494332683566439084756007289274251060836855678298807433785279505364429871686684334541461664597687814751164097581334759611781858670156078527047419227141057218776435431876171638996927010587976581840813248056938173499307620834206539180252859455278812297487117205379783676353000334668998334975710270378003240666553044371872321045271259792687900567419596764130694068697111352809023941644787284148048858384269022033195695781715221590782045984436140665796666277924735448834032556519686690849824193513198999745760167991327753869631864381698875968232942912741740258136520939886139864367139085311233727796356916513691521076594102611078061669120474981812341612051152404881971400532419913797760757006817636226215400053012901033694907419805614928048557178462295629561579911266498504652190302857118095378783899249286573910723955942296572320122846251168843650250932012406572455022945152352734592031327042382260929892881509980956248333597362580079035704877090094352714536252375088006518931450573920513819419981771204691296274048827010515934674329057410140720020909481726914221054995843927290772901866676570078022345566120897296775975665018976571357355632821133866734500854724051943938727744974551531429975723416147879040017022380504852474115021426487771022463314718337686919215544359540060883935696727281162890762342390079434648147535861234957085242802774074245294281453936885172498799588136035844696892576518737169227916429238710871592813161977458302372142095482790345228181186898710001541582464879592174472173444613498299726647499579656565426109870319433231373116054733986260812385903740372226349391889383643625059467636031563943733103787321853989684019008058006384667325174425818379829016530379853897667041866818677326381917534548312993619334436235728752404398931938956486654622498265138955662687331590957402214508457803578115771450704340480903270660275119322917134035842835462280896647299780868872112991463680242075815978607088804425017003496610372386997288528810955254155402949186455323520279443636495552984003158388688311861484667527998989191148775511022813515140288092735327042884085251217867717726472910441249652711843855526775930227992079975334516879994052927706251789120289413310239330497910732465240627942167411328385139308629844586083045685472237855969892609276679671549834662802209627554195767550550957098167294199630333987302623927081071366987987001058833609703814215814647336405829596946904480053886491556020663155298303211347296803555914414806346278384635092919389066683975934497935929029070865858619738447220601813473608504368911809308979222677665435983715947078701915637241004604238542483229024105341327466038408618990563771470540553612236370142935757869635106852635312456683659383715790376722974349916318532846666697427261374870762922875426156121975327395229314113706872909663932172136177594531797716127832016782880584274837303774574094765134670145826964656235454183891819128932228398111898579794435732756341032794281810434942709461394157731666722347450595327031494610819248635799314276876897966631309488048480838749263337863003523071304996630205690863273415023277275098072396816496560878143120947511678185605713514652983997145473622247738945974429461339691553833274738820700134550038186821601776432368536218147251326411407633207423141999627842755898708051017918957789520608843811233198059537617898554342639961918971954234260306764322160650793793528273025003146680146586256625315012823080998714001142014651318615542135737227777145664390610572403557683973709425350173751225304381836270604751013542614716634916776335353711127311676538486924386800266321472478745546020230098401194609058314436521661437931928518846987551721221668249267437756026783571215580925953225553208264460626490704323544470644729604811373177463772171023317196034358129292923981543892216316114297793322483693489017638084131067960361603834405307319943113721654342964188733763749887798303845168452690750991560418517953243532222856253672813167372854510485643151933406218036237066015715952385182381875590349809702910257585447674010981489521144909948879584406506957354353598224807764891609761282369524637721261433611544850939460451897396343901082647718866024866936652647064464237219674877254963535862873349885896704879145871188414585381641424756149053769634034163013361173555332227860897869796235779671979571284038337360174733248803666964163817311377909015821786513990510229784951564788755570655958145585586910419733578520837969166671094160450678033312122269064727196102260981600323725664188095677909980178225365963625428046252883123918736421231234018377478657796810481424351416843034464076200446355408618406080650725040517831512951978194960461067588122696975450105110739133763793929271225263601158402846449969249859829459708734299550073712513884587750125393859727055373115159846893973134607384652680908147622339396567324756151315125503693202570259040363300855183462783025182869349286259683253355360283859195360186136091070013596064417749521710952536150154400469531463425340034794029342801434655581562913464077975846751466617572422936709111995928577888623361450693523784773332474290619768281165018855971646541726134369611970453232663042562195389931884833555579058580568749372816722454829179795501710843887694526528980466276046441586995624480005409639576343923537522108062732173182405936071397518906493204977386669127401489999211188695011298283330241944798823529428681222018052874654277093433320122862645615552489140913157880399462486826050839172971992709100096076168444603333266381486008943848304959992544498067478696711130890642393633913618378410971621023487482931021870668670157237802645233359017226964701517029198666459346911551897113389315469940574902434848006252747587781855610311322891511830632074850735363735905411979830958581693508587517544497613932557996544682118672702253242060739675312582106698662495213631208391109167411660628043270534425014997940200078707705860498879320592086291693892776119693875489504726442939967768856317423757686474051892080541429049128308966908068123052251132350195304906476620885254925603622785702653312832993158355317017319643392298462264476802315156113301862511229759350882732274837598106427269756497642156419750357666167086611477638379101108436397474131966102921655986902426258033552865193415863850143281684530113357200719413208012097004514455140519202898999809006306164936809260758035973010390103168722214234087217297931799905420776181423571499617163207749619563564727873061641361818623854541699719110754809406704173111610604688649217955571394698042732277326091317588525175388643519368077198867589865847365398934827945948012032256174953700862185899017823428615885421675570824360852799459765039309995979361182115506244700648991226147454129051367911143603528291065008516009335691749333711333270219124386923455354110983175648033538672881754981551759106813027460230352276865701237936869078360282930708624328200987046016620312605700475476912967991757429889149920514702482204113648209914843567136064954717267862289023818934647574649109478329316424857439553399572794788975916042359966384854628214949660052999537956608274141170060336782428720045654619208700920083936692429288205870568126174253539063916361847763631465856925381280789287225662789847681567681676932690763855009259396878461043119157217510829396465251691437287348201554813788626257704979433936563472089221410480030241463273641384971995403374591373316492356008676607276957822743757105789282372925900417973134264171763083396450977766939767212506749292637699310639437606202900972461239701763172165528684472682892012624914636601644368958976662310439518206592572997899167157192690303345600438505834947065505839108435331238557724266103065076243182289244214437012539664236256631781300149606087491763169853187605443510540398100672659666158406363236554590636291850241002010416791491366582135586550221916022283561687895945556903158277578908926167249755526158214579332886299792730512342772916396149679759194677753302691138908801972176879462167648812662962139591412574390185764291430733525097296577462430123478468345062622191356593455056487015645561926563670102515673746803317091708416541283017031846819535257645621690722850653356875702556147535713468842861639477619907353602142922199562415398553926150113088873437341064499338818465194435988190188724835945294327606096078482579644751956400360175966709799925254463624067651337775400598214348461842114491170747832964410425797638294827829771719455633334927081817860858310366574466997171112782239709761803025883924569389148372798853376417812902108028271670515474634457104043320050305848104988463239665111933170133135021521284405465564380093080278614924909064073030517487193071800182337849323744108635786758503889237511689847254707006444997064690380528436243290650342131184732899817488993238992583793949594336394919381390646663711753176936276059914465381819398855499983740176540867132937255316845860223426207624265755288195716770324776806589421035025713225254280114376257902169279994308260695591194468239770985691860693342154785894963028515868026461033738057532177811698981726673729109992878973301430812014787079758136538728037446311527931420421549500910883762649865530731506938439556801934018527296777679539001026493141644071699491340578745990033159294151713219267594540970183765282049404679196705977825286074187553616223765977577892514956696184813534269639597642750213294315712260848388934850266823806296191758722657404109284870373302994492201682265695817182183941681149926401456749448604341752352622935318869827078572907619198710630467123962084237085441064396664250157162960027409664548164876418395778407506563489593243204706302565777489255496837601339879839428661500818732779211753009913227770008949165340941727859224730369414062437765818861838152877002083995752155491280466151406875405012936869469035860819334396623827872344564470340071847445074386359049669202585050764643758380327570795727890695671857633374476287748227267321038889966415128687629068405528136807100014459424018499655845205805059884242277033049043282167926331961795069057038142181692500643633520561629193449103770940000001582419392963609763581834218923292837993412168793493383949887681165421497118254515514163980096011077868546006561762208108196527041349378385166252290256956535759989763899925028677752792400305610435189748768361295423478008426681227604290470930921955307847528757920155649275731893268816633279292657338756407108228114648367475358698206694561921682233255725307418503551346215793411713189534586954110452571039653573100233085502109528689772247596062724183636317141700242910134303737312475927675432540540442725206411884329520733874526603462114113412536983862268286629524368557664133956355698872306140782290645996730973562365775575234348532816324820011321286462103872855494152428121268834636447399189891106930793972237029473564127510035595465267325358787338511306544484111146592566106538069018563022555096122813427263467679657364767450163011869913628963258930320535823252545019490928124985344346167488351389255005107326734030761081542225364157896277670408460275208232649214581792807031797611432204713490031213937555087570255902194860348401691129553890774884301169376095678291336038647267593397555526815463684858371537191342398386449940198806828697882187093502374669709949150145384426640920448795397020319663586911342186271027925158317485419511160965453480646185036510821686597620902054725239849299490979958750910785963576294298284506445128457761753040790692641033098425621744645677933856306261303541849107160921426086659489247071054872938420339105505602026273150485560228581223189304122349427146163247080134431810961354897465295494768291935273179147926302912012184862057909472452430911015666951647862569684161227847253427431509213281049935036668783415193951111130185295092350177643614955910630483745063182905977238510870841377194692576831995741059993663534993234815044608298470165165758583497422580212407700160065238711160561488447799219376861194167184802520228849799709459019692313171097366616027420108085458396872652456181142111101084544470419407035537621748803524604678588012626652220616182209584827454719359678298539331240417625210519964052772952579993151463464103636322440861324827789975180988654848682587396284102976850732486024186109055768859535263532326369669592491658143824894218230577341538616689199811007839711385173712783488144492423318169062723641930899094949851106000080230883691108004032453303558375968808608202897316638254673144918729680686138594646970080193815829472435501304535046322858032824663284180275497995867599474059873181386033969883390615404450552020794219480556877346812864360573655849413263070918711447929699571745594347840621419841900763763638425482834313501956598170742304791119914619938919194243983788660076918410628210077625403331466030865777492299500699803250057164789172881397030578942330665829355847417675012211241694158915672163358977328425617996419550618672702838925042662739199371092982757815584551106244290546453239574280077873372649319552034240952917654221311613920804718509321179695690255461155094682071678727458399789291424735030831948178580699691431404337638651730979419050676634909703408591914200295250532464356125860070444133909056379090868102336547595769618951305567663134702517413357072661909461197297771894888217101814853479285819108090780962135161227785035619065889409796362981151666121484781949385253478923699318999659040353948435896974193097984425398200677094015253416445116559541703503326866844774060238109117234123979083290182014383159399951341738115413051086489374954381523529216849064853066764860723242273189607425193742366704234197800646561325749616025059797132543746109258957940025864746437617425540615240350521726327885473254805380874368152127799751776964209281485347795094721082385995867917409148202065919454276390816968935990365286874933943676940618914097471684342543277572775206786264323307364587157157252878075620377297343397441795188336042489778824066477649742318674816523915990543749513174004974271785251693048038895745629636689401172147601200942968605235963785970348785364465145738045194433898028964367009754593784673910344107213820837905243294918923749706422657170567490376317484694501481241046284350948055087341833059758355410522439332716512413333897978900299323253370285928026573827638788986299466370311732724456998162135566901754325717020583533915313378708836118676258525508209696644209723369857076187355226898399903446090379437357953419445396099187748864272553094973966995651794636693897302755092007375128520436450678332628463607642763079483959334286129137818081788764609426557184199275156277152350394004971448209327694235623314129510386248514427192365456381514958520467621960483590283620429799856768240266597308124523100893454703579703548669662333257100121936689598337455810927699465897880044816187608468565303215154098705452631837749578504798279913389795281628435173296898228058472705763549349350813644322942046084397049871391093944629297081040104589159972379212638235234497106984541136783188700837636056338900828909484196545465595846093102884819185356939925380071765092981747576921712430416250082944779851490221992140654151394417916115395022706394217134748767984641049287373842631263790701602181383054791661454780728665459734296922640140263472425120882038188762637820605757936801826556918333129421352418399025650905466749481123141529928384115765828307479480830621388635147366714095864215761032429560744575332055634376387334074865520105730416527419324854905750028922009721297590301294803734709948616785281544965548114868809665194825233212642056015874738796388565327141259627413961095176147044786167414240911450577861390156615492018426975227650199919999863950194824979189030518074929901998003905568199302425146829391903890299039688121417750873662069809298509466703589780981117204816740523481777112171639179932625541056353111208818961664018780282114187816736574489799822967706198776500550191342525657965606251435435281640374793836016560824241907217759958976438945566237919445777178533027027739022831944148065254183891683378074273321333601025431687258694342818992894410693802779232282760104518186188018547689724785343226926653015366906081399309680784427951532229382559560399092628868569085600661835999228851332093073741426614939487671353077270427973100013556566874036440605682133214635650185644311798929021007695477083915536789382075921896252993224357476086086288452493198531758496883772728522518968425429306962898828585944408795592906265162027274455246664490902113724056792392019089196109700415859275571041296083475420542727128249923318121739899949344728095946904222397541353510488479386557186428519024496280237394640721557719615905902636663339513543515045901620686358303082834776516092579587607766208802239545071139935857628972933093539655150939269705355714529782198003615467215668628036589423383252715628925113631059471908517361633294472911375309699829986743328312478648891415635715672243732600003998240961748548519995869364312582922438264767597325452086382618784586305682566460114061221003328899298783123275164721272061207482174323286774761567822995518374532292754194165058688780678115568876468808713991815643109225978623189845646871868658853454960375448976569333816445082516868907794512167203685903256600260449901340335935250712806478532156681280841912631533338503171496231049378027747982855629229589665196116684816494863214786445937934883983909773976493960223887502610550174864585707897636339680197288127385882012339417687943585745037909182071423726300715752797177648305159494901173951675836774797728612227192412793424416104160559349495049587656904261422081234539997913607810992223097853810966167893819086049320261950755166435651803590277229587081539043272168292920794391701334878911442958804579365382365373970471748883181752373200702603835054164792157414280148504048865884155032197809368469729057841818674270972858144436022799519235754316403950143778150465973853104864420241139368003074142257231307141234997468776944596181798122308773977258713385669865154118466005944844729206049548780471671989051082321164720076488477538997203810414062299046649414100085116855757633283774578391080105074989624144087419177457283279724191848772915184640167420590775515907280498669935120515647704986092903917872495833374158392741169675038609514894115849019612565264094556391024672002615933685682602655582264664107619723778720917449740696215114673044171109369680926570836570326241237960154279675529268327691659787753220595263967289817613145913599191002999100484080320693732475544627161916539933030172153641495248450358463109058241046438621674000190578241487004250503333893957216073231226186073932853402546853967041533070530041046341640844051431221390364693309620401855350100002360784625269991201768237823077015008829547055370817747675947866653992940754405531632900178860417872966859050945746511932858530566741858961610564237814250944603089812658298475778944753345396978148756636315806188640738681436198862892577624176925172753522531113440178805182947215250289844278146848784954703351702311386289065013735612403754999012290609444135478806362298407887743686643809184476704694084473194568155624285736415684904969317589998243952616674113487214643838204373587402088824818566786227535501235968442961284035236328405857932877006969213836721467809870523341985899146636162386941332289331537557450885152122256612262413429347142973455224141552094262759513173895857380168714443080889743971424835237291430521663994216709972493380494400331546164191010662681425932289196300963420582932979653188902861480065729785731606202158570367765118109884371263888039007903698449579916344420837250917935350378670436848130248156845013238948660410930852896324526553893793980451319562833101420789119774154387683697199230769371017857003599596001543610622079782931581902023967070474615919056451828506682783547947509793367076677389671875474122723812188572880526872801144933932606428873697773461720657769609281496249307802053861157919676806998562440364193630512321133280516133157679209859795820835560002537573717246885214635785776097735736058045380366510130037746967850154395743825748003383084897924655539484905759120204738458801462521455874066901777045061666915829978196125403787369437926621660901165765745903256424499767120183398054857360381130396469468792905550968857123061726517046861652904527788850042703556172636930688466247595293199684865718452319347877309938723132066199291606757542162678897573157539833585107941956367808260693383719285596237513157508571837588023101692509813716043188587447381166346080511386457484341681816070546094431083736154836110865817335134626762560497433739410377948226401243259046883971264596887659564269761801583372875028476660451941192254394697135433975908936746465603490205429597935211286649413912412798680230723639842723396695353435732334113561448791116998535378558093363221036793809736599381864061188776852520116190370983882198389677458826706129473136383840556000120932163016301022816123455378369885522018351943972235727378024210320283578476076230002026400317686133196904434095833329390815230904760701092416107479029540420981318827768629991906835038309117300193926718803034537428573413189456993592555901566036923901902243914113191798358058375532807177193367010170612311640354618188066399100232551728584746678591444952421625570327845600768688622717537598002904796572731373229372722423349441790608615384071378383877709639288965759500096165167820335265011665222661817270641923732117025615716186887926930599086288822609172727511595419344315609945464543114592102521932275354319070065501764519039941286175008043526726114746420113642998272896158024784601487360889513393205400917858239370898400034863795691619894491345805530365168870869944854654055776959654740116668820468194466307129887104937677058405495727475064351757784793148599282568378775432932755389645507390621519198401703298577777007484614773255986168212945544162982744869333232155709638181092755669112336201668423859455070560417960430858884811037483094405831355259825932466507901514310637987633726137936852779377747830010407004504754520342655761654205208120970064321085575459944789784072233657560424235747045425386521848617681788441015977893387514126841288414391796812115880385143847485767204274943667075646000755207072691550294753213234237414024114608418685436899061523842426149306602996253291855392517801472574827784128361782087629358124295852406830950214848875136678735883157899551762367413673396244880595142502197238333874648200994558181381944488895515828979319222494704499895460073838466196493761032506693751918704097821420851205258647150831440977638551007726708747742890690332026177537503760330908438786322067344532515440338771194490715731753639051251659747271323636336886208767968096426018449170457632431260749882292321872481074930839485013983176344214394720364006454626716213147986895333462359267474266354541825813387675788279689893908941629268284597284572390679599645344716359653539624976436868586032524761289742821653382468606225160932763758786011515911749154334504760084255717249863032047205129523851134555735318893570898365191233686882378887894994460274746665491639438308724880771923814746766113900874003063242625598376922890615254265658630468331335357069006272862217319789481966749514888604729883659166336828241563828997307944955945589747144538655211159238909543864592430016822328817684580759223279378093304791282187377092750867231768342765028051324532758629974714958950055891919296844971806573681203636941875146334421979656762885786890934714888293956151831301835365311866742363487710907504394774403813500547009462688600977299062104251557917712829718266621098815146874356192911137835589656645089618274783051199830998552794443402134325672941648369616763736262411163211140042876599254032160161761346678304774389932611500690087727439743847686443757319260672251198183483945456238218299487477755675153115419217816253711492608153455868883020879088873823300617183567012040168279447951341005681016450735210750490217198794300095979726354792609115161057331534729633012299789234009786326615108999646025586917440521128427803119774271482272048084364729886750187367240005480241626728066452705145944702419604550418362954413140464779668212523747140678000459856463276908247930994681685242605835577791545109195233522855542396541507524985380899438211673491650052091487884475614636783086652584389809072739292581142751384204862221207043075362865018974230745808587707012397774854942865141287716477995011836268988265926592338823388680766824723466220914171802664892059426136515040330662318526925760905907915397461590063396419827162639771111642449618568545237232202604847202803807595219304956809868757613724986221038792634844119267003333267467792330411879616493714629197588181198391060003262034724387998424291789153125111547671200075610048037033251859691814423314846569047562577422623347891223201035356193000646545948946655186062194697482031004533263736742046265164930802382846762340719673541813151405716004907305053379204383017950231940362840584833938279914457822976075117547480037992933649575788745761643522806275307650970804016340876615923608659040228491446441909564292597175544296172215027347279808474163682500918978754058465678278278307209426282507808741518329929569805181293850793272900048907322475571387480251844101376162995293989386135760888327866103270273622198481974910366819043864594755611910455001807305287682382830947855120157464401078945910364406665146486715665842514659316189258160726681622813429686968243499759727396343895771069892951700031308044084099111553142867855172429852891852328140023488255029179002584297091857160108793192791636184272027505483219533209778647097127020338902155431137103622090987351351022368969663483459188778276627388563546280879591853202696253695548626204219576728042915251527338669158155696303685969997785024940855717773477083695406883248654109823359678349010418299727876338289899283022406297801630924905541064471787188901055586627771021403873678287684895242173821990263567339729080909639904643063908121440898639232456553444758793728840171115778762927739169374126309873480554300695731714202345434507542973306809305059129976016971072569517760507847996047384227519275713669437517219786634133295601469991427863106640148094685097437840555674720033673946578633175569981767878688937990001509997251444198879238072256625750690726383410530327754658241299352112383635225388912921440794681631187671996120279381322953361308731416056966418621449463078513343307585466411739599487236560973512149898932868320608888190215597663746782759396503572072596158592833552181797825096195713192490639567486978389667033391602963498669611726379776823195994791409466560126799785455460203352434293097787494649240034173152931590087763231939567328415134284767474858420264217445570013892719563260899542821475637447511058748362147933879630499046616836210010771641055975153447070400431486446311950597067578258134510964649135340018526683449784940196912631094713500444256304232083531562948273663165899897586760019959839529944363252587965260951559649372137327884614158260978501104160102969602693137232840178406521546907013120441861694730537340255106822849971405720912277935114820205450402957931406229566001552133458670968195471724107770351864996797167045787112112984911074296960645180530050800372997489072828806910016726060489538508628241940609793972443229699769522707427279133733997391802722002168612451315164133766361836784544306849521405965631544721291834071905833517916714988228673687816559261407904829661924658565048083706746287286501389259642711905638844415205328019789673070471695382123399842625724294038635205360871585751981572314288537313545153126739061630247794501536885071139244624649124572546505221272427925459656999308368584106018444856333802931180711539720078393403697764187989839729097183849527236155449467788864587246971320877876866209228826743817815516956753109857750285062259961278779848139132815311801488526555033684143574465981417261429188242736955366911794801495727748926907318638627019922722988984506224976811930645823755116346266933590304613025915006722072702152422972199369618964571934640992112602097258914282458356305242843471205754844975443698487458731079971127004012102744580402772906910757439173412567710402675780519317903308491864584856343270654301762304877610340696897483446518842597431479539775695692762782333639446824632435156105743309320802861931092797932238999101955047889926727487611715567564331863455808949755242640978536316433955269873524243667308460410295014855611940752286037808978696913350962397635098481477682356638252889852053632000495425999983724174351813180668783940756192890496551036078814727008260907453470892072383798262927231286260297020905695103257765148703697523885833745325097318196743289749426211639512531901307872002806203165362851879935251359860907546606904824450678887350848150431675875279544066005440630942229703117600879226172506753888784826428714379821716494569029142819893913623895041621514359239282722522747204337884091966545549160461472207472967408268657009449037820173740445168859387141175745662781166620662003567524242850497045484299070231507255484641841374759328797473122224674417901630604670204703061549635893581632122063631411729098418439086100925982183326922867987558488537927580809639953625396196957278879882177754832143085406854477592192502179072922022530119554645481535713417278905925928246345228147806746530094172197873256264871769007860752686846651783535147460588187526644823692034249394086630889571390875306550561604542956145936071397787841532449332133971962376619623390908245679826446575803654584731360049104018302308969402872178508324908616493657394008609191131383406674864511970581408839701750089537136381850694944844416072433092885341729066832462408649788226425320241004365751211448429110359410567401788967403542699859032691774632608532622870933508811165986362596053839831370493614707230369113430966640417746216391402083679251285530093902745791913934574190194508497963507938131200177361760788533115350211261039769974757184297582436086085698517044570978018859003584944447387505206743663070576419105546098302584205691917381180163394417919264028114978396581886662994892420424837941252848889851308889063124907084338917266572166584154547610663819013268640126813946595590535305951313260433876340321595987764787686919731917760301085010187589214107662814412611411328340186369013683125745551128022535233642538622315978802028777362774400115962680157891485191521022099294007901966386811029687953223850292764796342987266876832929636144743476182806192017818823242362347627664182117188805943956594572866175760796070100832670684207017630514002059023163442244115069028803058276768550828062915976381328005518988818278149031567494501571502178454190614351005180119196719316956097469510244421997755746212122133739987550686981339529310776796776040284971768044330617685852871554315823976957075201441203095904743943764140006489460842609164558348056915825958992172659765827932140700678758752781503934131353820167862322793999596363749343675183589189293283671423003550913413497433885982906522239624959262831770075393457994666247414853051386706970690437875339438882627328737882779757118548595722553782188834137882674733155084008306129570532174237558065010768976630006151068466517160431613110526385846709834162971279172862154690195717954056039686480360161259187626354930151389444702399745513074380782165759580123938028053982132563457717821399605693687801792449113776783544300731934098806705711374524564424068322897634944719697440553579513027494176395378484879227787790128623252265559208273849200099635716597800701988647399047592317413918833246637910687629533291023027425874449018610189094580221433917807306586297530357275400163546057876787664994110850309293074932780449142169687097897334913173821280294537938643315886223615477843189338474625067738242728449117988079184936877221625709690461617065992274741682491567336663739650501640625016228520360759405412662884473035551774415573989525374217144615702173777544487635960080682852963085269701333467780345171834337419685662696884548560689064892758354485997687704913205896184642950775587303958303636295147167410654301288813594543299253850637022299658856227689090502281414819911754699916181562557149346697045998766622035246408972479998988262563659434216960696057209388950168392171381058429383036041593867457827287778425223042537340284141671732565333114353775846734178125377758566189181427505084239192945039831422064639143446813841683438865557206044058493167763641607454234044438584406045700448373633787230391767235650279263419532710537206452218866699703026208583895682980600449833514031249695785692419288010012217463862336753037821952993416057652051568144646094458692639765218287086469080688117901588035959128842717806897813741127676088231875237723645219609351974688650870459985215693899347936732171352955121239225363749773009252724696681562807345212431255970932333376469665853586695807750243396955632576419528473469737600734447433258421895990686948646362731203864415318300020444256743310487760358883734343221367844830832350326234211384606267454627020982564299317270569511330050709169048342647988180531026073274175775689001384989077018471330156120808438659878889525572472888399272465836886789190310334943061527902808108923080134375419321726859374052444897093823852875395874312684402070926443424787003020879679473371160708213165108732989708349112439163654569989379875383394431152568455584582362867910614702927155825522288112257298295977439136531662029549410545542571978333510109976951208548971821485064056399291285427443957157809085789617709504103347869210910964465676127666619702311203615660736519076319459605115184680566178919086671949884806395940166860230244599274467930443220951089764790189252214195291673713214730737876185815126353031972768419252199308094389972833906328777182197249440050255850321852473364239244723525161453026486335332456407192669486893873480862629946669750035808023129266234243006126813725888344608363865313027276204106837041062968823141973041073353447073220252058100723485822980047986941253571766788830248536034406146210375294640159302972693483786292817488362017255206309970942596581905110417691444027020514933717562233734741354012142315931977144492893327362880039971623927932352315429672155434069725167993448708242131981893529562810486942766912789002688703320828520191807823538837568476405196912709455065280130763909907014413603721556940937201185194220767086639066460268847624002719520906814454042492723680015136008452401135847281653378260308926622630932420483534300945638730325229902368718779981366755875659907484100789388970174051587700065632163522755509901806599155062721217333383657343101224338642470484540123382895985700283977150122733359570444813032929385755002719030539266009548840867187740070685390549886670905370237738500263342400183445505653340086636677343163153743341655425392388696302767187848290668016847048597147438840183461555819713784642781191183313670554207119552559393685134808008837431299608194035684249278965770871247413951313283062106341620863580811655379239032816765738713716135045381324279844070268686588233555512193873157440758502041989495367742822822684810946240415744570489997474936697861754854079042609458429113057777222281750603146922962542194535181517499282841269529078170557547138294374974974057636985953670956104627219122726733936066051736757816755550194287675496744916804085629760728597332905859542086106640855816133272586331313889684152432592951035332827218759525659511650966036851043414574442272786711383322986659827252856863817658012810957410445573142604796404750519168861077869778556445530129681810627211731418713432574853871846622430049834937798511725148706386180272664554603544422614269654196450495219018714052222032055169483507109626518662558029458372214010834617812788667727034520688644847512035674658786227104854279616225471307968470945236176764339843285618596481519339894254389291280451994515197600676882624313422772758099528920657132550833916016035414542535240858066747190337828602470509852333268319289803338470139493555827628992122856282167205798675840218421768330640469258842585457113077667326719517131446738950337315663969915045730501385790851769253397630443192576632568185807025024479766026145497109912033254721074198165139099132481206494704612857518441481420239404315020430044074073815788158955752949271893457350272830546822821339936371066894380668382368498014218135099338153270241546599043912681065836389917938188299135246704929134127014819981183886856571053534189504138103716851482528479608674325273065396009214930449001754620625045111688736556278270863917299676111035185277382406667829967355726008379217975366455509053625515315445192471646890514582189572591904938543255829922302967818510175850669579946840995400879687763244158352983504939331588199723068105302852486835661986368625805653367602085703439720759812898071544717538047717229492407179172292347415823573553951336117088258916745910963919959487002904049938256042431368388013566751238059683015091704050511570901957910322002967091200959509851761961107448912407219031705552799101459587474672195664915294462517226094876756010657929106265584570479898629836860529801490802083370620040776128881688378157193122955809383409200943441998001574330029096066484579286719168870202339154797259118316358082114211062473925404215089148606973850697339125178181795899149247468459107379074837067743778101161641062589284454108865424893325727227207113375426818401314393298496431706784910049392961464191288677168734243132702677010766208447276294965016661965970352310367654998521627177637304466342112848137690032970730697598064517965749188064424049497231809218019129793475074866018272141762505841393959253906879562175728265987719088318692566437932485376295893091428827177740809486923695638887849325624398457657802755687970056876079340167678936076586875924118903751585692490260368206508292087765717025393726609688664769436037038340433414557425207888136435362614634047697770116641171801254120615408647975200930165842725763041270857748590384414196586195683808658814391775621719226447897318828808326572090559922879930409779507968160713511471542063683114770116252289850684513806525495156438202826815796810691208934208881993434701813203269113606786992651815464166730069581626285218471115821681808864413673849907596106779874205214756747267578473466787823085744391383317453529233019103328788775670691545773517616202249176513196549617380733774569726496728121518698695230024145696869084862423843116981095471968461692312105996837004724351597905629049950039783845850777024700547459372547199548024868137352355321534605514171043602527123955379440250591340991102673057020235818071979125201564458520213044919309386112868167588748599393459721798860113562583525928400062393326541197816632490074449894535243709017470227209029495541772894736366552026921982203504744978128272960651636489310864146880660534988144505771081501796025107473668367701956025503389952974770257706746693792003421641711341287676260345026233752599140229667139197831084735959380922579571374224567369882525279967521394857027248035951298272724083878381774784659151064641465725311003054526046727791077336211933166454766199069372694393516130829743429593647534637383971311350304011612383041951754492405860463606962382985002161314787139307102038163438820118308114908793386458008443315094842275636510778580538915408973927239359044553330426024649882962034368439655650129274054613087660655705933614587924644770384387542683710282992139571811537617554617671283287100323444619474262139814077172354637749464750983733035320343533361386523036479134124266357282569864654655842932177677459646087906006467416114686236062785062650452391532562679919247838917886505911232567228577566628960506316837683566470216285165461097915686551723174138714726228548874234552063384182038177786217817765501492621427690650128555409638463994854186713606010996213746654767645851574717777334575324634911664059754294513603690455291136027977160644217913227524715123286029485165920950826147113493008822863854897586007055289344956015503039620213467737995499938948139969611183041801615244833097891980623698991495677242449485209018638001192105605466595585804796901622659307436923916973108165462079074091604910545531919550278183287393661502224900353878599931908940793509322562340436406665013834274298076017280801908726246549746198585544387139171810299116917278297080166360567962486893189358605443539601582091785893012025339178804596834101392150077196343116229820965516520233285811590762388737116546661716322061368997834589928744907713399216541442511714237853927095854984997486111674212656594519105035582777782815316547066660457308486506272027515131894416511078816372512520166743398367722704343591705778546430252008610154371216134861406268390335484682753537002518567613666132748165830272016434957030021896449579934866807629634371951331661100236672958805265345547572597615797510211239215449532283430714290108379232654342889151308520179063397836579352035894721423249551592844902159046117883245135043985244821756951430247178160691412353401866242776585177244892492794058177186180917789310420649666083237708150544876695428676283737314272820710033585003702966722498931326799748041630399904519837419004607260021684351247785060116052810775760032726171574165066877569891221802010002500999514772000173640594859439971338182089487262558074102503327917830820120593156710694050939490387382574652246082480606108169536443905485995279230209766472919192098558596729208034278756612492190273753741746811078688595803898879534014241044686989605375415736322448977258900305206882825908893670594758185669482229383293561957014177007453409144859516204316194932687238686836136951987129500855842374395798291769721927718117457867957701573802329496747925026846059793817454762859063032491251139221059663986152512849959321421030925934057785515179976281898364776721451379614483948231737882924807901657901821751269196312559623551120195030064139252417561725795715772229967852977069170171296751041993472659152073421526327669333983068243656580943605801858625579906873028256157386959802275760306024233735207612106928748113698931950358841214458650513739857154295411008180027677116924521626176024330133629788033360294521808038982343445625302855338503582070661625365615849130821353203541572406824797774997520979406985162978898809752108640544210675481202368223347644463147455297278080940611381094447007202606452231208244190714749779859903598749690186118165875250034664625723171380454808611697091279187153569233569387481678080414707921502561046684720234307158844817471850850269746346826467259244516705702642220831761994382876506312402675050789203025016003528439683209742868548686921725903930023097589805879251633540010301929435832386440082077059915942110162339182109918823623696635734539446407911096409233113778078519411350672714655413845912655605928924718365385289374919239926295645699884982888451684950131269172507608900511825865296168675431349260083235890252665154378192755049848536033683175114070740363281463346192700660538751834546887780724508207476946850041444003001385889783118559229097683127778352139460429573376855477525723989257206337571798327137995465490749821986383721872000440376671822485477246457530508049590093603173829536702143183054340312779358635094942229775021443898681579450839400544089802606042127092387244328194280817655853265916912675616531760116709735939278318640736584206592020332853732452377040609680754178565961594518558186834859332585958098340788540383737415747674740508414559603270342100569398434914761707109165549954009721162295373408447630136666554124822075363912634974214394823920102262539419078664494491719050236450723946774715427374075857499051379701692271019712135052375119062171296187789923820516354933800432483535966340963962773885799494214990883191946112855471494252597263103489391335913929897291495731987033413511086312180322853355350501201495522973074191385809485594662103154846553071084428344689072666702956383001563118387456620983988306346204529020666064053797069989760633799363000952907550143034425726407053959847797573167475591469851806695482831966408094958602334060037240940285292069323707455908930525328332294899109206005759489756721812853330088442171993265822171784355504711455677528743854320312728080426500584377324222533929254936067861899836965630436625680584570810614808099492847299773041224343643325992029221783469235652617510995868298168732030556671096337396491043218705485789827455508502911077377553116030776589952683418373591384447352147996608022608748522042956435980859237219033996029980631944993651604192803837328211182541899177059248556722261768614983039354134836785382324228909208502831395403951681855196577015369916349349069351024085004583172650618981278456287406414340890013256234235321283797255277360539898728106890203785815000680759780722245899185002889915244798346385400080226868644936164506525595346512814803283238485624567756096829927238842837912517475455773064177014472118705100212016581991927971220764559810622725791558462671992659449473602528244821102342882352354848948748823487032284469678416738557687262144966922772122531041112670275099085948328460460473096059718214887256513695908008743398477855865813908238969804205486878382217430422502560119139549164574680056094840381752578755902020058630793475485220319921219592620940018807775407154175984595030578118128858407933655492540625064415393535493816520522453512096112081647220365473840583927545550861594688896958270209022369416834292082032846108579454536016594570707964829337598413363307048168847303926843614231977599838726295333327112159563125144073424671089175253318494027439703945864493516604041979596166386303471851983522465003213150889226278529783185696277749221349842742119258375038137757643004868794877654148396772706870691557912813858144674394560656150430049965152816061230416243514852528969970318900858126104387302814944410303996288677762646507971342103015684814181432500731452347774932836959929144320358397108454854977876160399291204310108360286066056279703049491424051073233314166787505828120924279072344494184268420328132552468496443076779903708348959873095835639311600357360006039253508967217163513148199380964451721143196057622239170672122330939862427828819845863842913837181416234314722741251797548262920661718047920080897751726629095536026664071041024650405125843401523168295363248554093997538100562201819260927094165963515466575586631642627876493233673032320119700134765262134306308473887747931996172941865033958797361799027069003821943196808114681517821967433474487394033780889258951029358866113936169694259715939537474146539252107747219990037741494730237708581983203380612155710878456809800312167423731555143607297428927154824517363678161481186866703664150654234916332779355239659744806207636610187423361546254586813885381019826495744628277253229643114898466997962017767993083299760066350587627556057893924906834326238963427530264913514217467561126045394469510688362757870502642467583257875006503207831792247405443249066101237055303130005949064845046933832445570998598185253673393248257860565265449294175410017184055158754472372401151848476935208692606768767994533570285884417751118511113295253133509848893418912018890665479207210675113171605521070237340566794789897205720775144820259670505351259594272955775887296805108469765728556479594621436006697933757944802573036043441368621888536695407000703488633380310048450291365181707104610452899133862484577399346912472790004569068743919283486421310689821405565463451411344806880392234315912312954925508174237002363682677456409752826942993488402608852563813597226416682138889601364587272326878423683124690429376123344844084022750103281331479338588957258204559450916740936194235609356544675405356054395156937480141478847104839133499021010578896041436172097599632991411010103350436057334565720167139293202516278838138180866371104627431984404938452865258354474603598010167646018309891700355000506837161267119923967956984650645740003498242040626786628897282080350538906535802689137526619552411854445204850089770151371511108001207922280776673566989221622872257832657253680530702996093779555343078099556326359814903251975135451827478172512019633747636538208540835835059416423027792490473320519366233227273341993040337457900937011823391588970067453833155669158267959828111102167080386095661092880169246604685175758811843519580060915280460779293113601148572321981190950549752098633198575079990503080771598738198428480758523242520554461194876771222292495909916386825693183519826186523707896484602186441721302311156408361166438829783978123181254860834954067220999590617479280647690211370224926609672858501651270279177810517084444450516830724500589944667525337226097057428449571650757099218230780599880706855401274779438439836260853676781163113858843864333721064596384177453536461139018770037262331900199594709713599827160642445615412702737114160592201188823786048374080711977244169690358512611576239743172955248768142477239001039169969786160715812754304338201077029171100975744535725716017907679112772116794892449954942950147243004793523876976703394036550602767792335777397820802580020153515504273045749257063888085327644149385585405729973561404164144225367265067729165087559699765853295782178894240692953552703275736215398763098461521422335828858543020576268386497967468645886321663954587947352300430397814329645888699713826477269040955236952427437866961889066672648550209029702942767321812915543552193986419924738464659377669986298726779215683344493870355494474685376160261768346071025113272524839972477105098979688667712846384308706807197313432305310456280425173454143416645544463126252982794970856863237496278129275976473894286002219365332858813179158867569482938995653787885802458327905764782032196931118094797600887765739598258170724213571637930330753153030030056854140355312664503704935384052839923604167571599084162519220905663336839177324983012615654180751272502774823898001686890594115742787187454434228191871625322829293617508421380219267801961971022546789012731161712673533081697392221370881029709007091911004046678595381138987292182132096654114860678057917489253744581114652872556150447286780104387115891773709101508393444250164398179165670947518463462627135001775295908063081686851684345797370161246746927507459523348280077177759507793678523301111949881022969909025883435479933320923663584463563726155185540988934180379463975114291442856836316744768449869659830401088484243884983542801229907490265394653867497860686425665959156278694445940455765897482444795120783374937166491458176189979808949017235372699723366783751837550130630524465049308255961732396379578427697197715931602573170427920858832251135631736476126474013974465631974943271951867950113885650705165520644934750957819507497693711711972571815182903457419887113831093690713282265937939277278028412412965018503205419965212464783443257229087405618908678193803058251863241435689741310811495161360133626413084212764372760609732118786129856972277691034996631786320827888609640479640416927956557681853667284602839974422473421028763812133610986645377583278466402818425187735528297011540124845867209635706574831204900168536484787387842806703549605782382517026536001095362971691447523569937804683140979102918013869866828562343015330349485731808683589146817402173305545983327053736007791346707179140097590598648889239163969462237157609240551343393717553604825178750932993456211549733757932880693902542444839312454717459408722770152303889347200927751668084764999345077819809262362949780634004371147709887440425529100892656640976141220697096439112931137704629939535021015912296678768411878098886968028685240827863763518305170775476080427793213907152764659155772600100947087804812651356559157799335878139793359346619092358427291855584883524447341569425332606285665693000197682464660113536766431475081818746777840974512120878035933376696807483373070285511908622391180235029478715236984243964248767487730877295795486596172241065447173742846964944092890286543127591497655051555033474379320661157416175917287033937111933379837628787919437655421889863701022519963134800421490715387686978084211201408299673247170637202286386610623019656850137477413440891395133565185434918699712422862092537798395584085256883341089625220026902718243653083066618006004164515209550649694957336249773059449378468241938916267562008146637005066215231755468317418593500365113072179788261544120012850909927862726016369212878927027700707593846244826162538082008804535975330239136612023587663496739684244104529285788964982731528045824248371446286771677634852498470933727253022187658561006662395967612176188906790322622947945841038407307500156724885494717983792256993974130852373328954403947292619436948777527638157933156770479633883654033242779646264955913861930835470933364444824823224563245688553820177884175933707840214729229108330415911766645053867336096077843107090637099218844000616711697670143235536050380502864092315899103943168396051771267947999899939015271868424038037683468909075482449517378435288138700608193725471106720614095386534567063537321304025213862282776149737127993103633799551429315495818336600192571226975051022215354990697805569028699003523283647371572728237057904830556707128122375828118171292759651153177419000067885855392332154031853488447951586134239485110719272140390856330392614432137000326232166678878348303667604410490786832639168207382230654076801122923622362500169682989530265810168932041003985792443674238383790794489110508211383042524478435964554519183141728620304783502816625358313462450955768894882443106800117671938917773179755906292077787296314948089621918800415785125388476852451210397652075622988860804135112469257113243853424368247044813534032098327728136832889289187782656410001274719292462259034631887391985245610620344739011097828479087233309522255518638597959900939675198256303294369135818685621743552800607539061189744653920537441928401763920868550978655210922170214443986663621654905032539053830159013747002702305878742289818184141314838666635577705654731292902836580926305915280607851964967783159361366601554291265078056628183717925923065110700447998216611145044024151934687343781870600213684662888948534912470301781522607914607706918312684132266875895031754444651685493599661949628206138153548549637050298268998073760627188764844639775088413397698034651969338538770077392310177093486493477117302768024118846134280931236591360787419343912086895134370201504848773290687412103774341312122774717760453400151729714268448709070979008839725132807508229329840633779043709210434851887775216304845160332670083834002577572640164439775008666921781429317093087615883758174031651087994624523606142089128381821456690785330250257038771423301670747542794824899501009875831923265446391743894505600803615497623744606880022423543564229939058420129950219547599003046866843023372474180850449078948061684528790205145416001425895252205370497753167438080456899563769952534300755010731057630283683378004665753957374242425879133467688544329930879161721110176774245565375466035770331732006642944777219390498692695416581276250843713593045663057352361814942131355676812029915554534280853038360801270407336853616940280496088420941714817184052648993694227973525228491385176748786981534652695751579621192607726400232442324162271285929500255715843127076351361209323048754523728560549361743090879462160802484095328235736715493379507730382967427972411963585889611593081814667626390938592128112499204226973351575491152971162304811886651608202954360991839341989635831258660538443393824930735099152850862584263459980227355628898852368812405419807167615323607481018797658726416521591661298548300009406523387237872489205883920797699477959384455904241471332754416598607501107713399086620194555847234185482708565167448891110472782340626416241045811094691885429187486338114109484225962665672404997928060662543991513779614266678565172711351026253277999394921982764120010689114837011772909984634304534901033867135030111500845121193149528716018985284795327955885711754871983260183591278963143152771629253056560286539207490019598242869770329833645481978308742705914588934806159694240330599098977273634046827395967640566043718554793780567204520680678386374240891894124387514700471723668203109058358740481929244906677946560493058269549092619661687474252768763817737968520892933946311330659728658867631319927943322593546458877658588982110311024218106096202973015541477778885022050375651949163275858890234466210441691437598399347359367241874896922611161626657389261096748191040487101090235628304099682034781535214215230253413767237406304380755586489028602735915709353710331002572332836307500016476810618672348545530372470861673577854881317237944127300828357189281085628233299604905434109908146397587025126987798171009018063823597449736838636965393875738694807999309086949619462559776162559943860010384712568738253155296513960571901496153172306541018050409314089054610707039664173256073456359352873230444965919908140429858958890427772480918228248135875313940198240379396887397671750206684049465686582194136172247478209578859952962742912646702223158382778678545192715478529098524274928581765941955448184142962320518319177806811065351840122741942741542751362254358622596478701581119152610934866968844486810503271976882452170880277586130230380419457827372368106281421362430310340183541426770721888805255542218477865228857270151588962879025577949784277754141334348810579408674450720702896077644598884093877730750094108361203534536378343847473742409335742149460492776654233935524667835654165862514971187671047746542363949029073623754837451750335360602608148378764657544774654445059009316850181936494839599698803873346872691915102720413985535611935184842675520240074946530620408203656397359567688381524376053431187170727299824275221319529542533500625698091076369278925570322368228917635309491618697483984594223760884277671074557774112961125503531764872366023695653265667902908107739716379233731117602325556746604173720852708156562738030267383390257796984473660847919240188689084941833722812124579343671304429349617053656732162741945297577543568340468578534958528316130030193141701423342768653241518243799260381317230409732059810538859385469178020361037277797972654076646884861788420818412955626912788419234466778788758065076968101670227432989911070873547708050667425639906590856674427934218583443268335755921109298366473085217909691304531304951941317451953859562303818786161929341508163603309024877178670583422749319062002655564066254085295901808734765099596203857945661212302456798772650835654911074142471868465996202702911037979205442774070145086577720298676844401053672031183137572403303570480559101700570826404103082217702450861732140216056591645450004287460671936068612161727937797608413236354815285965117723157928646854790383076830960334243035642690577318913743735855587865021233316375238819510681610164150088486095202895186183782501108486578479151865825911949848661803405652802108374772578260247088915059140614934483224157202006774011179636279659880785212160532235277922966513964243773849992851878616901375962655374897785220679296456862829678839791296146581825240596410048184413054586777099089629465828316012277013131915284947516938849418335884101075857234745850104237954942740926086147863469799429783605040775373699176281373796007669872182101658659795480629176029200653477543015723010446955369985307301039873527848373433726450146298654812999258763281666718040678581008255963184604737149047913750767791043115089022284171722776930492182334943360490896824784702156496409413631930760013538497119617185238296180070518443077697080743388018565709790399172301524127940523181278549225436940165998614667748563710048584480195923834190253012665666665418252341575753054139412904695796067238074725468161030586289307565179440932820525063911486707885706222168633347789365834803679834202236403059165448542887221813891736383441119552052366098643692611586457813710767963697834854987283914891753865002719822011408397002376892963692538388317163921418828393751938251959675607844102658328463220666463484731470109098209927807018136140390248429870575041261199084084022348208353988636131521891728599458178299811016909057685237268882349956344746837491365472280052262802952612479991035337113457200110675864765419699040851636653590162475371353132704034914708200638145523467536177353881228655582493061213807242802068550584236385850323824104309403110442915290470298643197380362885027222744629674967861075279451318101427367184902622686359979890415663680235237989326358826888923550975975334759220262169943617442292482541884225013213745517703098268943775474542570787394324499613851861969709137031678740457381592610406422030602375236185899924394395055358583965419252220335516173847024072987442944858333489793961970237594281707257274764571725843444282989570090198298341664707348527263764863029469408343224239222772899632335153357114573439361971080584739155228220526549033286444720208300305096412365842601337353488909636646881850130114020696431611702714306452708557690139858118145429098934537629861885194402674110442988432534176554291900382255291851561410243280897857039385808810529084926620986171466390977430680292099002725993299358128152590490786122581557610398237060261124400484053618322622630455375048416756258695442219280997221065973326166380106904934483653287690249992179825689346680303327511587806410672351693969616396570202003789437072613393236205619082283853528531491248472326295136356505483903029827493105103415717060458496688597801614242304158711728241019240526306535303529236637771586025945290995706950599459502246977378345769216152069290607848711421264949699985110919775475776726998379188064798908521262433314246063176504278934837743786799392730939201713490052648027588771705438273264411690251137991914753485609555046807222593674905466147943895934903333127056476041618379713542614998322689178534531229058347952000125715016348315488482462750158970123357063672576609180771049700889456142499076839924331526471319976632709415004815432791040190328077212588050840579432393275448463092033335227574680382143077391676966245790037216587313167078421961641100989225757048089465122419830657706274674498177793306300107890890029634023961238646884133760933240151933261717221203873947128559140863827358844069915351409101666345065343319414659110922909950501798950457302276773373729130784206756255000590259676213447815791369896343972325443115058648655877334700367655364723718375591699618898676549175947695413243366617730008871047578299777854236899078808532014577644480276050787999142787956606751408912611732120739853729147595084577771164612141194524279458979990070943235593962540467925781967211250801892589399160937721394240352901282576286616551132816032514556810725018175184214460498701745044270581778803207431048218048719368951168397278526483011904400998340097198000521965255721654096752959562382423288612664177782529981510792099697525628570585172052932661098378700949371942242747003555818599150453762004144494210712537126205415523743468455688671911808834471559766038809131497243343946246124304823644086797824417071228873775443534674780944387039793495878914878747369304323250832120201319458612929788481122122727228691382038168494231162911683118773987619767976393063614192204187583879091840406109522042830604454974457595053444391167182685283248129874925241609418317199271619494607618351257088035522349729312792598360220109652899982066095811949928501830777243030348700302584084010391683357175478613731593994167868288489829761178795643454176497156792794912541942140826108829960301342615444321838909531421182576294471532714099373941044983618020553597531710162915092921643274687670099785200287202762688084578045871958527757952858928435650957775492555114183661286953850310694526545101942344288154006930676225637055996877626258015322651793758295532976965363740876735840150727193730000067750575586305048248522468608385150754754922605845196179783288797895504939573679308401273537623573168178922273637680364683377121474732904078658360139476573682875514513953132453961964334166169139941380443431982573978173279222799832433457538765294412942831678931655808190759658866988228648189441814776051564390799664590367217628997107130680301434138559794571499557843425300055821681190109859987184004277431403203693299934445397358338793587783046042296340358721006174246739351265284222736229633589329464122447293259651382909510520541238211892392721227449408159089462862743101197458535077541133488865098768537478019552849916607139223595197821997201138608085542885556567299681714963705561029118901645060452476134886030886032725788489375365400221272529708617613063754590314554687700608606751770178300388568915045655238014672466764503444290670033425438474647815569812910369384549605576202122337616045835707868186366429945856543328610798098439716327297223775826977171912244499104672329861499253560031955108473937185597469281393229363650457713912577182082694526836872263713837912790214313581422319158917673895221805932242251766583202631743773805424386789566632159215107008265668437215238408210040389046585953924152447267569600554822444954628389359561136686740031130289451066569240044971528020982138159135878305918900200091089980696831085040885732528086228918155147596728186160040664893923271214299444684715464368073881919227859083177611279011863485873498358593374145752659068590134450112392276205030492286710123908904618637476055418326927485616085920417946246150148560134572069477818264530216833888539198324982143495186418857561093531597372246731221789840481683378145336494790834108936247494954428951184666911966394500186851093130327844335305648194563833221296301863753348344372640523154028584479535458040921617621062869477700136012702943873072764419956014335988218744701951591832070652177020781980415338545525476203374696396694219574628780413284430809191426398783390504255413560699869050783750935289828934463009625390346680927169617807713314325479350318120132961148357699933895496109125445901204548956223686810713238496430518027222210483277632154122105946557827664118765501006357363951343280780052406002593878554423798676421712405862023913894068378511408657968742843689647651741880748936794643625548242421534725052662310273322712020404919830070319167642383918028691484304751169557696970976606577301297722056807768654455622489645454641530061096808178896658709485966666655945409568639119357100676593869358835905104791792368736017228091882513566134788691943702806372045087824910242954145571773141031826737189589668611157576633623035378912393157453445110365475872294707516629250249105693571801062098731705705918498579491168976111436179816723307429228240190852439032598577713849076857326802278920532202465268335585640817308163531810815007312991014982663773326893888589654357674161073522472348717285755667143426384910078801872385899644395802478367763431670474196525051918414874462754012100195430005521550748458962981234425619397301644961203191502333565297038616038819911074505155967932133316690819777814390575973430134240144256307881180729134479261484139520344003579756704173451447061247005783188318995849600119559436823199782159390062852355051075191220743190197647090069051918992383808643056674308013964133874023692295685740651432596955875916727156473196107084608723628915524227813215398273093734123856325908466014514565411759251752611270777208221114236758046849639424785893159702410836619189866188214850035062605510363235215137184455232141671810745460128801945907797527881465538624494674185265546145334143013024770202313028332410253445860172646384354246279296424039330513783471126861273662791567711916421088176435127191750147961235310200532846716001967358029894892315278472128575145654944101599830756617469276044785092726680302785059640810892848374103682849151236056056285279870102380087201831746767328659004405015817189608526873568722341971730429511786468855905336690845132510071850078291696325421350326912439451706265601430793905160099407547279951160495532719682843105841293074592123172368107544029684826645616189677163736192308565793845724531915137148561240788024116892828050574262204196087058049378678227773946018882976219804205874979830783214164949574279819835638753395200698582321629448470376454140138475403228104061386521969788859011582623073046753567131686129172865885156385688891785492126242031107198997642914871431773332424154777656010443766788385191764542864606339986261555283479994718881342218354836299258904254083619051320705195053834407153562817095686232906051215272681012162373189918854588329214503230026106859603448331921946605860641330792967651783283579105064251136540871682334458936226720289914051548038411267728227446430726496069458181243302313663566997841087104206794249213574087796933542107806763107245766650282564669574596265464681572942743699018225726150915271500842580817655267102635955200917549257915288699815454377356593039197523871425298296893275915611860509090585813345553417588889927221372326057492477740901289341094719940477628591836334918151532644324462770653186861745661898572162534734594229367700553882562360030564756572018951586639835453908198387751687977330856591651793088237174010266982559452701753771871215913949135881237205483185886980173930741695484395584633364637565449524883041884733658898861211597721966219836286058713268551771550317076321135715422134675988277263677572856606251091215891287416159327452156814412623230631758625638521508737020230782866876856116794637337678965800339646952763529048394523264622299151881634969109955815491968646796776896728428425780586869851576311627773305339063093989157986175832997817301666627388253835554233498715334245731826806497594431557930497379758997812457662090158648396649075649892152332887991057251910826205354408861474613896516485808228765271879918373295989786190176362737371153975613390534263212019098928485486775979771725476663815976285121647466906056182753581805964349245766382386661526624522969242003283037360407715481470452829431174738841056148884910247783679325819076147893970034864781564923965894374681917158691436359054808210711319715250639103766613093422899378571795408174865064305211309572812102487676286668604259917980192012283987199573762943674308163059366526668702833134057844220586618422242513030600465667029425731756343795560781229446194102294904201843356915181172305594334521176879345803590871115171012372019258123112618268517655571586833599831315980398972528268187554976820854712087536529534724586796949418755773001307436242250301518008145536957153109941559269050060092521421158040526725593275485016800636480286458865804914764548417175585563804873687290071551474366758319515845570715768855715443149703751218488854881697505863454297940319664957191543412153601670060809996574833356621241214582574217764486534447391042817881339390519548681384267084366800843632591106952431020915623392356513176020406169287040116422108852513208741658329193006461447695999777639921757425366827029884253602094387316230996040791106608021512863669783032086875401885347593010628380586961734823252761368923904396495170430253356579323627262069264743219781520673414847963075919094923829260248058550035290972810554167486797643724617278290748596896912179013863890910032204917626036288782151810310377042345567247415174704196300700317058677714223119604256677818449984244706183775569122372307736213793215423211825687098233253155020394633028513367427791374011667404302030894106436744958530231758911993438803548678287554094854167063729542798134887070327394601775057515988221719541790100398286683535004854312697067811810474366790783901411102885752316175131339672748536465189353850360151919673528537820917794353548466370356662030075850223716772317138442258570332310453839422399118684416545196762192615904673743545174290873861355747852082323516006544197971126078930310330474364715158955170345263271667143823172202630123407759511350145597881948075183275292601889358771060933240071846019526744442030755090204748090866999923078319593633079123602787107257703046560679791886810704445134682012419195222767115065343738021508765557920124930640694874946974826197738100717231858179110318810500890741784216820421070165821731729916091540064705589606938135463795561855924376193464812433442088127731107585469065803464530258223478535479122332822448628849953856419062225191461950003678480835149502334479055494213763551244853206044548631155338798216325493526149861305426368583229112020646640948163219362121254346218448959037625241628739501290871967711034532097495470814833193193816719734422394382532929213062432130606187260469551136043618622189569584271916935412173910163101291988747781168748149250970937347631083202659288295454305548220680664571745516776499579005598536166853446464877393893794521904486008516578220022508806709255980916867845420148140855173859306837368017101099413515266837943776401041950763514243067362948347675864440628262208231871266660919605342858859105739314559306594314749458557159595214931805676922599361120585194660859157878841144080315965954893610798076741268521897740393490222767377354279607854369572839122490310502000661571892704315512165215943679674691897064125017074161031938255639158126007173942062522851938741255264860029987471693752138285695633649543901549075301986842596421160272334961882505632960021567677225232209908317295527428893796800568138788432269654221209877435730549333104036789262817725704261092623902692294473299876285378517718044194229375043466611227445752464430131141874732639598812906631080025572460715329217529432709714815357281921056175141686819838111631972634878060405490328286317817157214733554421790648000167225746030955949220718431671733687103531271768298776620909337834562529080722062903175537821540819033456076386285675918096317165196081940447884686616178321057453355368948296806510436239155324969277217444336937237797569582138769766490734957219397882553194003357067826691980191097372412639620923667148736010522117502191006130720441908877579883331813224524660553009364469400033523536163698359757915408871944840700440748969067053688918852224761145077395403797519442348352144509763427091398375606926172336421883695961637007858241934404612666209355663359535826124182830835532043734674764620540067542149344376302895774758000648955761412979110713265637028855896127455788508736390017431882417023266848121634991122478059094908433906987568318858614022555260657105333295166033963076887184612995274474437279264718307798845389291957577526328738847054463132895121301077511481159609680871222065365808098495788801577008412641194288218553031450058895561905295241374237765392410389680433599346717006123575855983697180848021937864712586665608385564140817527125417556336266332635685742403678917800280372986394421173383873213266774394736509545338848687668063907467429028928486582366611057238870470937622166877483486326281584892536739846710553209501144698186617824478753885791813479459861653955721855636586421170598827226324092547336842521621597247508389191659159204659877441396567995062014127324920292900210682216532251727932349504686471014028791788939751647101765977348906394154488367697434228201538922226200291221539084975382901578905942471304751044407438220887664015769361405505050912618360211251140409115173847109136470869931185996929883764627681896590677542741712558160037669022124990668034143984275944702672262101712698587820093425411846779117323416562721188809205189134092681902271733780875884953753333135048112568880637406999947963135309110651960234890884319819780368071128051472476846917389415695597937225323058022401115968865242906535660894580227340284032510133920476280491569666221138577827734827433452667338386296397249266593184879617492057297248144335812986241968824874575778328494924242245357558981297338139265215742336753959542180962255415443739508378525762590702997859495828659445575401570012789933148215698724799886605918924909215454746175299882401756655571326045282998313279695704584999248451317689718059985716163150092633994471079917689002905466666819309698744613183544198266687141864930788776581288182197636852260213110972440182455876986162638507691409027673618061086630881595793916893557783862499006401641170058227323656649892215429139211548724375810000190406440208004064801862736944062377417649100093481401734723841556230008483826322845571396424857291446393488597937269047273902084894272198292352409336138909304933421576163663252019798477315066594528101301162560778375337180594870135533271346547010467543280469222714713987411027331834169399938181091691833893906883731953681975072073523624562068693147966226067867742451306521505356370201137268698808897204581644173197081722257612309874337004557282963015067239892156103956254066862380981080363770794939376821841581677398745262364882722425758713508718962761699698002811121717286772981141168608526284339001047412254631025034701932084166595690723708799062643272630051336597033385172063290282548785747061943114446067340125413895708171531335041168510564706151487512366576858991511293268421086237723111185149546983397194366574979875756721109013839322619299674455858800015728610861034815408224923534859987922510638064363307400612493459312005200297037497204838991835794511821012284727655513665288408521825838312931405297129805066960549712715498327138276841199025758627128907030601448507180035867101569385087701535563878696156549245293042342218362955896581339755223395549432421752697360614888711875748113031509241876451312145094851375750849333199617290962728034533740685884938446324597444516250241269251728222392869180645264062076353667729925363056321193749416956694223547338805209180975316877623629914804225353562637722627457435538421128774371659495656821922925732242973284734944967518676227830036033807750257484107684431896546436099821724890171055253931944187454211595098611819598358890709083135446200518815151193008779129301734954681137065327089398159502508908381176486028505554029029035876208319052282220997846620821838545138505536053482216378208240905177629235195316582138313252207428458915631358097150080599434456598582056204606581735332964180296331480751619100256372478593115253078558667151037378673291685655086941361598919049106661408444327418012694756173284121835735775183780106941025246342638635285564338417227546695593105996621286211099652956290554167236614947201871147286790597079384455404771344754100156958862886922114246267969386477714284808524868871132355005045039598001144500300049659984758648559207013486405495047656989658964973381998122972179390909093231496131707038357406052655114510442525066117596666090311706849821229193375607814206775094206454816033488442402440394064059246623254047344082603224164359144385761108946796857274655177120025685646834760655095195401467228493287473310203165409738469455756351854907387439160500219242977010173058186953847424763269474057872377256206907290132231806232176480274280380408438919578009532028590190439818456253047991633215540330043133077622526065549019328287177621937206464774603220507084412439467187312558502025514081107981361541839199476290925256532193635017782671267099277619870972678850850703595247290028133545677008832847753490323563779792296311081096222452593569281712700968119125326228116527065865345317396792567184294363779445089857017469055160944922642625217996840038423009929210214335506204685822961847605350464533859748910937086404489501382304210777529191677998961045697287150282017994392795090968470516894089179816456774057476354545380874607630405494200036650503777381624323465664028493640135174285795904245286444817657860876535638638332758771946064417426365519638843055809606709775858451655194017676604068630617009980456453663473498095114377679639164134897416474521588133154180737815017773938586333997895278436434360852781716956972438910833879069253158201251041409012475519467808527449603232462587951097902557620268525123339539260629986756486612308383485925325305671954258756213456427013025964962793170833621377884100970493730857832719684936983478889279039118771310919798795175593000517329912038799645705526005751844151827731635005131671206355001400035335287648382468603442782283714733761298641842940547265398047756720247266147611063581715015715577567235413468803571269050564201043972096289304654472600840819147856401496615560439589300768550490947991993202277739266361557767639916951239585582412439297168303045810556846802479519932545002985803050163904831814826915210327074779964820985470362603178896918070515541913045451824366783467939560305312565440386495771685433144826568487055105609138383012977763315678490155538808679981237955072480096486742937650781824601684051026701040644393311279532662792193303156306918086280695989910979892310521258588919159886064621801785886546243002868727288902537872105740914255066737428052987558676561911916967423744367057137047149024036228096800125826095965887966466742194084389397745013025869183619089004770186473339006256036883471124013348680166854963276338452485299783848901213748115416845418321981790728019655786602096769731895267977044006140986631312543761040558170779584104883081484343226007970345211213150627407334294916622229380215587079277091788098177282108269821586123420488902393023896970931552355964461698408060184667523044667621275468252677136174246751673796495226117633980119324478279570585983252709769392872782564091392917087180814080440036305742473229172825436568467483128487044573958464608660328561322516721641640548660109574023373127013534339636187384605297171598271843147370295660574762736880476815997755882377394069654546450903856525736217355948169019400372379908960738442807202328823574011329678877661383693797692022981305052727213204225216358425730458303362863774589441340692320118687128676159496235782338654759950087048164224017299608838727226796460727680585195683237008661877619175091567668612419857085286561447489995607129708840731173112275259953663112560115947755693194310306048694260213619316822734929116963178195857172674856073066799169607229820766150402088141294813653129233464667045431805900879555673505595743213305331860653090484882795499531867347424059726499310601375204986142247020577399585319716224782774789407966460347209979725974284234608366249475543825331895136658830465327498152575645277952169180208225531189953287602169425389478202971228796584541332067082183265766729828365003619891736626376351181637341815779821080025040887388290873874544392835534678674521650634372743124915379651571256013144188486787327043360984100253047426651372943930890488375731080786168755287821571597301625942056169717128320050615031362423200220981950469132978646313153127821031266758378367532679015398469536041409663440270643319011886653373368649558303213101207681639416190312696152675218299293467686059518605751501435866812607539803769690781316060948209185357367296049330197526056513123005587218520796111609621097802564530310698906883416780659615550654538169607428420693124822771207590035200901312579443476563930996435513081909770763886374407465596075467610408944353755319064416579882104061998014460132705828700136576470220131329704851632186414276894823341969294098080106817465966411157209380188412441999376267748159037828291127055334651728645944997872963269191723996999134986978518677576051201285650586334520167720762701149607859574880633994321714591098442995871417118491609422371421866462345324633104129459536775807747002999394068463175237313267453022111205251881872849180969082061482558250184710275424073346660694996170523614577008536523111656773859932230810924413823952000298440840409846031688943292340587684905789884292735685735290590893673678396267077937920250099464909745946843115555463103551000772695004885780083316606043988470266632230248464716258652779742266779069453783195558636603777487935505222917104425082748238716236638053576343841182945478225263393500031001396664606857637253219556626704675312222984682648316090128256194093215880290395402803763064656165594313679846836104034569516000324560122800801401413037657121094953187597736721066583173094533365037872318378499622683067042754891789650992788778413982598350958773227733342100471765691255161895537228645994545964973558417292619514906932008531533845739781486045113756655134346854966216941593617318776119073346210349513423306909508872033327656669414171557730429893416469842798283298494832596715675170381415292854010398416359110876068219562039907281091412386330711260345384607397154023264779995486730418384795257635946819029257115339690719047540674862711531058284411513975431528982243033116797931397999787142695954792365806310598545159918592383690571358652721480681830190235858131219284149150488415522524719325403011567781303474955468710899092826498573299670016256887846358246748921065637947279839887449667879662155222732078200146729277558056198733228985946569622756686075990491015765206840443264043117767359284745835913029058041849727243234658339381809420687989494510726430750684438766040191990541484922795367298102827709328196182500386759031028265187361879929495378539409937969857302729374218006979713845807189750933461502541797227810670397387200630240820217615496618407703505960596257157489262523766899221880471638160125268248881641283074085347109623713071643632340649496638828678641182751052205577712462995381999351829221204362891653520202409358413207317783094225718211461076677926428781230661551016501699055178885681182917018451990567755105827779016573720043254475355125126658709078290782398680815821633228616919717068657860058998318439443329026497307818430688614537666828783820350255900288082031354049957451341754857068739127677861947288476854244255972985434432973815961761499721405263488188433843485835348120774369909339037196053603656812952504132008899315151401238842096241058455253101468563762803840747914760544083249534539676842087972034447136731390982743027370755094449200377793413321167316244171300930417073242213812166501450931705320588763428070847146521292521022189950402984419706328027925054028596316254530964738907846534695762152074808371086189791425693843885708969306274691254814846154214164762876460262960084499731718271147369523409755131809225758592806481742841934169684711389469298309060595881926566018171296828824559715219263983401732650360912507880419665526256443169266904262862078708399505451747805342153606887289761157757474018538458879177409820276376162535448495770727134549984840867015950165537482273542732013371290145075493988235598958829398878078242153550194882155744947178762507439684680569350663976563539525561310959440559627485500660326151007976521615198436758981111438434836299736512142722698755692883474961882928304846390424197303332502389702818486016283177301969516122260876105035592910033660617859569769457161000382787298330316817919515776326479580472418922986396053026248177796350168842908351889061910020706491122196559139514909767740988694030722674641802611235032315808023309868480475307636459050856715457111688831800922903632506594056837892883986338107920725398186363093930514931066360428809835985754115255500201526581889167570511485394962523489950518322252061726560600489034881395300012374932510788007127257409996553334913368005561651877555900546940203778172436359942210197041632334744641710362104687231727915347719907555971855044941016344024479556712404625690853637728770509207337190287370005183384805128361643802500603831960089101361614083642573050940597688463122234135613373407054278802799340680124294214099919903373437732884230252290904967697694984188082533472035663383172230296660354173663401369125454595460777846271384862527685603838319574570569069902649130271858570392755341646713238169832352914267531895700520329715557846639908657842716794955306375267730407913078188119323143961197771744183457993319500150920117390181219568602909873741261580735827723677043541306960095439708695528984055646221012105885887513139917990864559866911851322098813178814417360523218442331045873667990859584821589053327533935440975140895834283873132390730458468753195242212236867137103045504835589669845701719905964764124947570626731775879289912945948461634746686391852861734435438468002977218668448510634713357621395565884806713800962200438136640681881532831651039324462450734413862362796959736465631237529620209539716684771128848139854475032521008833099943371111979943400818782560979245633345394511799522576399359492690503573950601162514870799941133953411430507153182006839662697969609754558618744564379507328865444545776259357577906290197250734643682787516149619326429010366575341204480530432973019252787116206229499600734345153222328585309312092827794704067027599534250049399164204998892955650184012968398374027555460289536998677296730474346495033210229388943421391093355020104208595661525169631281955264818399653871597539433436324890434868213629660051920409782107244892824164439009137712563109469894572763773162008667403213285583296061615591132241003851774575299741995635699747101362780643243464796179597712174390350566137005009864394190992188989576932023130508595016288052601491963276454252931039198510266326341410985059803401110973475965692321436188417737647495472418732971081970430639944860296783197554615810545813384605005499017018128058751034278853260063804045037239724051563506859330251271003814007391328925352949464073306135592138353243735314513102344030729934673662253426690072051639568060334675630359275153265027702132945639899831599758876059454780702799978415081762455654287926211605601147382071242929282173765479839651783295135770065692070954520161011559676742013954297304895342362227654144058959875773232667340856116173019822011472233387811964902673945827648732944924938844845955422252554096000074586993151197765389455753285625161767709495493778309086553404026055863247270870715408038960828147462695173213295550997357621704456134016745014335188039179845530558503063019025847688837999750396368720508186817780653196110919981183668231210598948824432414656974424391514194396632972136254772240634024756401785947296111662913163635754627059531678662338535895580373318435345125366108313218363776867989514189990296250228796908128281635732612699748403605524525824411675936203030357786739967900991751466056243790762065696064715488195489927763001106244027215014699803715336491129545881051683490517661429493275507137159173834649262062852125823387118140632108914123137939798232089277856433675744936381941089861074919763689746653975727868894068504260412210645898275066424135607420488703940238820180312855376455792596315037207349101987658986140264754763960660255030442337348072032109309393507920593394432581539472533491967935448254446105462566890603412427257361542052817206856199824293430473402042062146889160443051201271473094336355919416573123922321537983603960002765590414365446439964910884267420578944375148962647806582254691011060655381567047349057683779990135968994599900924788643749405382020592755871633224140913746603107738499730168470722823474021114697855036990881845602088714242133473865701324959373444658373952254491793842852389109045254096914789908980161294476210473773277930322363738639160654324245337654585967496217175616145871298307308833830833053891885034349050986473686947203860479575037861749857706781818275181090334134600616082028169686471453648930266625461599971107174040843630388962442732679330868387868008334912612160003863150758669327534667123849212894307061072241822861736397277193447790050605766219002752614239120706651991093598450167885287631562468157667403260077855945203871212095051755278099130056446800092072568665182505227752070394977654999708920457474637218980430359291811076646766070243745026141572381598133555857247132155510475497416134202050929834821666197595966395520096351416154321466668964691258760990456805989526530292969210231592492693029099344769937761236152290575178871972761453965293432557909699261145931491257318385207327938367646362181382097757452735130854462664333529537243168583209841441401391180302195418090756220812387092691962764026359625789819177925158225288055614118660586177423537509395980662929264663571137260601858160062837569154217296754525401952444548448162157892309579973416050255501730350472495374874121755320207016175787079308274711747284750368122084108239213619966828893113318763074539911177309176408707439666722032945765860013170649722633779628322403032936971076544876891441102627982268608215751715138435269043398252201611390034638336333794154132279999227758476422433182222232801105062301184992122774627241048207282081200455149861881420611082173404818904540883422921244027963519020070646079508926109724016190520418696913800622877624176470593053293447864404996183994457052010902316111429050425366779315768156475383936550227447566585497402684300709258238687986258592573424673138744592329977715865723103944010677301095392002311613452147422397867574323499094617765437310164469412995674960051982196306988295506140726683004759449145710281489648599309631244564941147930024886255016414434334174395259700678382477614835543993432987378153656422407532556031182318068076949649181714219429399488957621329111120261366573423761693701349397217747865286499638202399769766159341333700245657322040465094950992505146888979501261464089160266452099170835193691671899482246823252705068383693533922454109929006358632294947887315815935901218583547516881893259505578394635413402423092167225030599642595896882229925799402029738508118487098426681737234273297420696215634283764374977049587966340652565002035232434396986957020851372459201154370772902743403628294459834232601963947883530414596204281255575605094218613424255053108677373376203637842188051903645547179745993881229749593954144778887935076195286057716705303275538402377435856300373567150016877596881289735031613897699673253988314779988438650772863357567038021582541712742524169684428919474299379879291894626374007835764594297572366335427742238451531215057267808129956335982200379502770606124175033353120400543228894332909076002681541442621618448380195640871153349771886982551200705059513725429699703654552988126798031166969927951984252130915745911161614613784700298572958677766654819845297239220273714013062687433020706790489097899539000545473076051583839504226590844332637110496875865145241703552268403203252521819898735395472093924407177537839382397020760970260599012372395875914618142315439661178164892707019435764357376148089971040111348672153425567536400932953777465577201268676229516486538761209238372366765547484202185668805490114574839406730695746270566181599801111794608719019062900308916325375640817557639833862025267090037538402653452945472203915820293361952104902301359032220894133600970672237465167272486123428086002077059947648924167336093656819522800891078419174582261899042736765537357836839662924924210232160890684900283392472568411819347487287634036263038400009876378610570359529527183180252146399888555385634011163142303270585173293613630249547159946835959207599841145795321368819099434212202730524961725103688303107047612148059628632476631395079250443821764873765108958278459299903126901814589428827244495571053294664559797076500653287149233217520521995159007026502801510007004312372396936462548312277458622455448506770091327015434615797117476728799556578942871016000902465349911640291358218740997787524009586456933963591798778559272162368359156789766527821906468266181656220913572463202336403331507009722066216820703213781174105684338009685024582765729619388748271271560021835964272529466598265681656283427762049452600778147943327181187378064882556501151899774619263378537600229695962098591649746923558874763626998147957583318906925690841841266005931401848726697889819079132287763191022249781975659693798558240634403779613871240681684233713491062205171756435052719246638633385728424203282394476463769343501811234907035994519502482380037384355299457342411450138025257707864684093717225973995971375075042750283573852665809460783053737221657940698201190184565941781628674206738512055117185444518453768879591381647486017483680561787249227783308734114855824619056792479747913021913168109073467326553307104207695074707702796890838394805341125589404366024775631638469465340679045764041330829268942457901125906141113509742916863697815651903671282818775971050110065930388982883686154499070912279003378233039565988791602999657641588759406808053865511284028591457333755656069598130100784422027835154447386300365070597007043165621138551808626384220501412559498447147398858760754572548752926987822270033254322865919924875186081875186220226749118978904691552626445799983050794193696315522133387825913043062218070162950329884075869530074723943835336133565917946878042917488594976204091276758135679795787335248622850401230653245237703299204117189108197637759953251232915391717199075669795623450534294555894714836021397516987640620453166801937855382954405662677357265337758595537439688711369797511292678010159551036369502844634674002482011336688115075265710141590298812413788058254353491190305979545009962464203744350624674156781823477655779347927242518533959615733445306596747132055819182036678270832605366191636494805355677915162863493772572038186356431811097399240921508068631702419259465805749959341157462751310417082456218438163826813432806879977184200822952702219943143992192528562268304620356502698516774298269091855606375470158066257949634212990891404466332207400956613007502162984679274353314126740918776013800471741326632962571270970788097466592473518276839409258754427033583682777300546915385469305381191062558844241616466377531429628479975449275100492359141758833206079680585111228713936242371197438116230916783194038016857839282175918590201126342085783670242521162986874088401281273455754572439929765908752229688155042019998069590580343787666359426216756839397652047987626275585239216933136283486507836272545213245949332058450137465818425531201953736018189609987250055853589691689498534232406315864871386882725796456693904709927063444566422202966235038758976654596546555244166789338965052965872120012761210184547483796650989107265130977221384782363319649922517557259624624118994781457887518341083055231610578723721777673988386929992570492663323611920996872399765429572710444986332534679762238015284258470725726106558390701471525158221002289761614294789437660594573491857809081759465705488422672838163015906875479377000216024681180431276386052163042613699347907864625547772977936007656217395993083293543358457089399168495064374528143809390629361282353815488210779551237646467180338375822562902365881077282173504768098070977698093139601435517208421398668552830923978725289775442187947186883287753672238024870226399778049856647118827136444929582997664819222189804584343884948254417219999782384369196951983717519850760894756627729961285446186986880229934314357052545889814293025405967266909231679566754917300233909974966895191533215910772150334629657777301386846884397501704432544597756949058175677233963615490462570879028351769057014231593439426442682039095221414867360386844385619052683516865605050919392266973554762528001078131763449692213839412938924377503249404292011679368335506290442543877838116187058030577712418540815580561953705885314784867694592550913690792769743599846894025471985038024997058047773679079228892056856250962306371061825264701598255241337237088772356100890321711965603420419457012241162866327500040282259134894441974240444486058440211281858116268187272866209965291844765885073029964702445833793048259341384449861193246955387455163063371666513012446200559320349743209372885935798438055016835473639281585894801006495262600299557853894838999416433973962135274303071971065834086514842503997563038955713957899651938846038456991180807849404377416680254548512974380912701168438828382602244288521566171334552015024858055307016169097657168157703557085988028707459277314907629963588018024840024366931847743962587496135631044713504644460687490874341665371903285106392047066698055244938484416873826409623907240497358977868722796282708565168499159112504748169228337875131126520325433974454762487676312438335135589072137643256639632555798021195635210120910010450774306388629415168734589626958735009141263262224225038868832626002738908018538197508474679895489342705092630535993732209945933933361829003155773681407372057456686704890733178269323415919400072584071488699193870115209191805125916459161403290361000950057570844065165768172331998842949352620178290359208031317342669722165241080705931575784712417337839213183129848837937232242538749698125962522045401304085926613745339721777450789991548197671260687578313904462835609792549213820563800820039316230040720367687087552820001134145357446378007232499260217601238168966438972540794490682404256951348408243783587476915296292428434763662855583370817745414386235171067403581311681278370725515306638749668205703055496727505987362495053543749011836739815037202113632422608916883686113786910727588842565321432527038427703382045400975589775839781508303975576213540111455074648952328241827789981676630727762904407341424497956045417485597750606042788211323999503829745126905739402631075060938563744089455375888662703294201932859156847103090614614550600366827880008307601638842840291862082528720080631058479368145984473250590867816333786017883210061976280339411746952896291989255060809900903937968043368903874501270940859590127989358908556541851293226134545381249858752247650342083575315302331235086966658461323634819230587811200083881035869838301914646334327865581395109423927747493494200328293875331791914786489869869642361860367359461521235430150030891426421201758930562686777620375245756040372565906430017439956163458114980574645149422037942688123456177141952344841264453557028029912867415599440914255006140631030056928007353649684065840167516198762866573249118183116073945008062985383164604770438962017355081344099064066058441898181971487811980191965365541765463506476462738549681029221225391336083488445945119825731131581150711079166474467497167594759511584649380227104577893798131481454751860205011596419969238829848814362817105899994745637200935503665004781784289262908750607460290357997905515184465224183085753698709270074357860743591080459277303052320262008050179495798209534231758024412633302607675023103992622654313289861013778688252806118916495839884584877643350288926399773475172889642338692419641714437025771035310149150236616170567300393741811884437842795801036573792655961812251771186778049240417874018979295153128117962475541952958895705746353095678398451686860960463609405623248325889720833093031275973927885794038944523623008788711662218312743544315219554788808183409261775061371628572650376747683167616827785555201192222119789290995009546200913024389868516858550147483139534190243096460919734940859746747481159402463780761011737700437195946695109041547702823617173198147146051759981378291960120872397925034553397215004465103008877779915531474745318510394315417625295584992153009211939993175664099508650886460148869667527343507419994335654152295083181601856213614503723000278346543130649399312182564407981416761315351456824893927991872858197069044298012330649794105131288535804670300394344613018451632374251628739389384248720636293915118350472532579549620799916434499655664315670249454124299971975128462517317366791249012725974954419013969474644263668651062666811879464862128801198324636390389620262872743159496880557357411835557820618268725340422053502660226563541619027175219634625580653368234949358827331185509090371812582380926658107532611563741724469013212071254624355765269174969749628578013152676617881505480921897059858099629924093183703033668994552194270232532816959600039812328155318882312559981279584514150875203996063980990251847252987693992009742462221505240316349767927337690234453915076958214180293972052241510805140400480256093350554374192467078235544674780112830625917666669063752460248058139845245312693434318860608978543422047390867981143358491733183882608819979017881875481242097264354315603473048914095368787272173155370223624192775559109261505956080839987184625713859748569666658095986314027211851464964538925284696920192536793495738181585912602947164954014547667906888042753424891946554814083825406387475238883911525269962313357816796129949313636564370667610004538934314391903926861073532531086587800948987552962075961311072539363240682935324511772481450254765655565916556384466459503544865415026634571392061862715193752159961242368379764084758502715489754453719759478011859083588728261350786555084036179587606833715206085253732984096793880033116296627117734684849352162487645155477532602293526524813006318392381675986593231088320972577125718229389081728714298239016752779253030941043384428346138702685591970740708196961592656616120806985347775567051994906813459461394920059313626154630144069467092442243765813640033774376654339698870240456260774438808227073551383159688617487302661762650707809401655747506890639514859976797008496703541845015942035098906417097919148409547657836303294419125677933574265366538913611046401302624613231166486372439315915448766271674111423099475224784361538236418249143157325913763667568115493274954815446342691001846559999901549553773248060427454080892931327352039673053988769538054931462701581435626482061569496526940874107195307158916284594968213298267379693935396970408737407933433528494957423494512071495213367937543640170087812987351993512972834934006624299353569401170511966056793488561538544688975746377876189121066827255255989672725115598992704146428897008267053761737802223048455536677262152885886909393723529610577766698269894097916427910308179724555755805840719631382357729656543067783320865105354922513845144491668465600718974005726070996076733960125621924740167741621715962771078171619963003326288752215214378542501433305881385780032397531865661853792931959084000022399529824742415666058190542335463670065457756743668020034281302497727118182418414221455548747253888759679087344634329192277399062625557104106856457233704180162141092048965069857145533107281780684581904101553213556983311507087394591455231227109035549478588872351637916967875194137274534680013579889837666847511720875571035493008431032981272321915594940968740435845368451763995763275616312773761131557558523333625041625254475363174532300027720833295096770277115825890053518383354908859973847217956262434396793619488513366812938922051288725235365782258731502132262428897672609970055323475763134389431042067513850026170457950771028313947894363980665747009849809699225684274793939423392560363809424348939389740475568513189239658119944590923996431494371823107395582465682832079265851226892490557320637856024132969809813654237105909151554937033384924961105008727651456936061736146524916247764376366150691848529865349208750066868325903971839022990080032962649078819129988286900658092726306853341336170073819896218723656833048015290718014164853701417555602646194698200351075076044519742075782077323352333704593028116087242093455132045995414352239092520685854299277960049077860031736532346003940877002033557638907039078244065990515009058095004564937733335189484682634277983397412923558328469080599841510722101154331340709724758728135945478902912498673705701048735275164748245571829545723237998044700479108181550665131683887689425498827920189931285054922754892349019939785888967075283496639089957019843936181334104538865843028323176363360146053702251405526585157395495164604472259394240499988535538466960972088462457109574582534522290873081174180343243383302292572475491411996075556198866035200192663928598490210268897196981398036951016841963100194024990577283103751305675720848011650233737587508454128547350648610001154456840497791876448484382642222016448683461071241638836342792243829337821655887170564116268474928948003384118402150053458942580437480079531225203606192800052659720829132519135065534938609993844441725543965733855241182957401846516216866728105545819148646616779935576886712794788203291237033011327403752727724311374399552837618248923966299232147884331847493030196848271058297041025675872020552467752730125716437481160618142461830735173100514385774864973053022325859966075092415851622680410449736843317545256930702375128767434449063736221128764490032964402510135377929681019443377309697445169576088146819486997331517299954228801711298630836413106326412454606773451439436504693039529131638430658845867430130399287040766067999503160920213102792780599259785291425484593339786664938675611599560547925797980957088667317689796950070361436242051107461808156488932240123491421014858852671582819992169545423118132341682519885028301387688857062038822218961842131244456506624625966528441634103932815757196084763373625537682876510031215426389610152981615689877892922483785848284747190928549253339898894951710155083848466776788083000342966841748053670942108092501972407433350452201509196537403124886902511087559895791971228247968901987639378999637508560228325246975027214565788169075410784555152607931077260404112479757535679086801103985188321382421971123115441917149672466931237268237333305663745081465235886443584979504268398286151833499622331610710371920197238939692315607329955889814814077783270441151524323423486673098337839832977226661995328188860293430827850997351922723996028066382321562324334628253096656560296362632343672185545376870356427346017324424779353770269547117668042078637597725769851759331581410355281725510582300791799577568459320543471708981698837991561706449701599669289545323787847546786935779669118784422179013451678009589381366783547031368650350664543072245477817716742293841315180323253939640063292175327869747280937675062728500343511959835697642202750837746673935182042269249208284463501967580582864717176947586204609188939721440037852355358493041750874242452741801303295123966218248608352534152997116866684406348426429602518522620959669154500617464021827323847641091762508574525722710131307861160187751791049280263068372785418889560082509422260437516069613320427176072005361807881723547095269412449441697123121784914034818718459246839162530786341959266019761827756384287669225329062915451577583653760585245299415509967497435943241367388890634972093825493678849046355094416458182794445762605349687506363245225127522021984688775176073128442974059986782135154671117687463938937424536771034474002592136887579381519066335301671831522081520108464327220248094071441229027887317169882906001896675294257872299810716319127492916404571451198414109735011815622242189238853107217790542982087903363079090388747582004720404793318325031690812018501443010408244629498128901481377056446787077092117523392817980270757534092616743441538010846595245307776059879090282134677068628470618517289357938292688474013328754238760584633690654119764945702389615391344964179963584513232443630771441675806244160741339756298878995848627591058954645571188341802281420361288311291647360733665535973860862504215139395204306153234171678975274802649665495129333001256771534643912922763607666567008939519071276604058796558115735074710295064582366729162893313738031013607363792165035374443178265058722342407317242473865612130769475979354406447962568897944516565814994102141838109414547504072034621177201572618318479377564816860712430441134263391946233579483505289190061592285357628956147896895559461073441858591394209720125115258961229706170948870540191358690616706285526998446702216716011951080044013023984564377419755812180281394122519643515222452992671298498983785483488532788281932441551858895369178817754234623200765322602227792431845897114106841689124481810461128751631594692199997917690480838571446672351529609267971750716735811152003547535561508799362803103634401010773373426676765242290319622920655789690518938380034454801279064089527861034359880350112805005155599677019044019118249433877940329004743952414316146652697549182192374796343192223230431369878316254502907247789084799056596703240188727426219223511909222061222028609421113662749674190728503764557787605864370998226916816461241505033901157696047386647108423817282337937499576190144478428779082471959656037495671177870185987993376557504705564528862860700395768118857964003009814459473987526855802787254857243028892428599088727093211938735019856812390440763798259153912214256254815406527850082347138949174127917093766157542707298398035397302582369800959642478395294927272915914080887410112267524900792239271875413342336611060799512789515819353177075619939866753678702336174211615105369651696795331795541131677911112032822721071078426629370890381788239480612008831188501883585680034287078709973835508181314437414514755443406824914915792714189964934499890893855674204590901383036458818202013398564494543941474886454461897956153685414511431791459194377195646921711085925540160921522210905271412573280354908437949827862874316244321580199432332389420379190564557742438404446793365595067704993314945029526997779794573914160289672379233065239508379792053286044312607567882455757671056865611999730058154784034142636928080101085947884043716364240619293976717688916369149787448207542953744350550804781170662995794945326560646941505595215066225931295564511429706054154212693843600137435109807471302319420726204851492601860266289907665733807151335063368863720802914826656885033005786906799890308040595216981409325645903928267737811119085484759778285506569741734866822751667818253028818913613602029613501565589427840106357738125677864801627445781105102265580852599154149584097869795677705184731755096588450588934773318132864399419787547497204461523820132087795791039077833763680954725898725381317769602235179644129154064138713466955755490717789537746586070159036665815933358296712897566636173180703979736426303601617548117917515097767547785204382955256914877346276514689477817706322427375691576357857785120703432836988805500569625361755753202125758925171205819299194067505601204994695916972307812567963800077110623656474593395549628994689001626334930036971675796733327282182899521487642732469530509856371595810896443981264148572476043353141201882398771264023522839968338351638430865717025193669620002660781285994817056445790398344917979402667551593889188310158002122992733557861249920027009236546309485270034257562016912455880813207358720416284560833114481456944247841474876788768976848733499738294863205421939290215276195811354082413580126509568446683208583693305409379667363424069831746156996405201106207270181412073927526300173580924178295324357113220711267317016733870221683526351242870684475551483692766721802441619386009950561104805916226322065273739950054731955245607951224521385728499724255224251497417891033190203372185919361102458620566961672215657688412216362754263337053504826697854223132251116265007052411538834926668990096245205300533295593774206794327946055440807318679112963374630809913056281411088512689965408396160391698250638616217948480793098322261294539647209296653481586645334387138614802232419016608626142250864109328823439185906569118560747832182625998615166489267972530417818465526964519100726445884695262182105662948778388516281023306612240956548166812101850385235966996427931048903008702905757808015528594780731655925288684652915936239672668627522174203364564901922364339202424442963640471803877085812773299270473922426833766394211729305077727977155600727792555122319730776514895732074878113301976813568845053080843710342555335859639085929272782261680726534703259854578554581214582170344492666923172810793012889516411287458000836162304013677297812181778894339953728357989224671172024587078698317799279655173178293686905344724029494597029696981949752038326935848216576612194615443009456677212273034227814227635557593566643402652580842922828574977301235047874004412494902728779876903597622675559602859786437336605815090701204210659969058497157183285710793771053951473852259588018274415208143262761158839425645342676253413304560127600177714858311199190461392558161270275766984588955660818712259973841764816889917776349874304173717813692123334300237397870272265149983143305905983961228491185294903835736306747306859938911391131715336849738984989829916679169160575679917908118439017988611427659102094040715339214082292426507177830383170931800195768866027535114253160737079244845631019484216760828962100037399452012111802338729440744175275781312262784307821702329502137905077502757237703864330524502096973019192089491438815659822872375514986851090109324544158362380543671683028535697483636160899806478940237038938433737353989315724690143429215140959182762593746433681957625165459689614223482849144306467798207952708693683028531639634587078279549527906911671061802348706930083894028496218098110233425765352509984904880703884563783160139817644164425339607114986232879868615996088761248820899197033123716686662288277004652792610291063933355632179652557518030010124526305097624745799343584847354598580487221145462514399572642899690906538648081686644981655369368500560194676781342809195773133174306150276966958545774125217957894268176954038854866280234603476778468409235590632589907148621543320796591709856754470148425603714858033700125289827725672371695403059832237318367082545889837360445045206219499759690157269645727482447460786703745558032989074440476719230191687475278810934640486077393159801644539636791713308215579592125241803313485986600918693855613009837394516015298593889953241731762168375638047506412005821941632446877321302821023296494681379727492207534475495951155342293116810281781615560162533995480012139219175024716262467155609879973560157224689499479342883582016325886322498970998436689394182458353741644069098776685291430913818849989317680654233138103309309752879747730853106017502948548403253449241016421462608031635497862405333556726156944188765206996326221792203640922737815054314241503095206515557497478274887406684826119468880369731413784593211712391454396646878695931312386168327901447594619987681136374944179411395567095967870299972877105818709460093038554309020998545074059601983974145822698885563301688103537261086579207072080217706730705669660927194757963704886384204447537527532251379407767113902714724784305481774221564213031663438157821479174679729767033945488530197145134579900829867523947080255245202508493740858795955102346834633122417041199296450632688608626469614618512475225452953122037091967724671816276508706562775184790125197278492577652200513909747040094422929122905434427272549964289061815369565860356615901936359705774706270676445162224812304112876248564802120885466272058321859612702886250179849169431298145960446958665098143714769692129949866331641441159989546474383960567228441340572829067568993535577978283155086946461155828473625152074890337900401068467817795612040902985711133835292401933637404044471954980832517264204512692482941109607690481925809344164957675077504733713124153570187829479197558989425245405143541207675837897565261110894981581866225403283598397143220087248870693095754102931811999137062867053082596656627121931169720910864457186550074680509292762907517066432780973209021362244845227667315327256479664632879325838022740277766442443836336086593976220073292954408428669477599370410488857074362518176482493162736460487427596700480051990066102517029453290500647954725563365261533741902649713715883023407647773487986523182973788887983659727796439692261039269909890406287780813031299048806634544056368822028033643825334545562840730256806099281986192223519914619674848450195537773826029470971353605163105611707523478583597835126147856503330814639264867216504870901151127876481233021823370684360196112617158654191386516990615436248121220521486272518358093268931780565998545794925346741296740151783374717444810732406510898326988963149748124195367723951805461289822563607284873821999350152815412097844369485872018214871836131621101763656443123544077878856603473086727407707354668514777611145819578930303757243168581676566098233159380741009852016311654306884670490886901008716971044575896859581215851763692791021051162788671207714654518101619588309996842070211650024160221905120325629847350015865885956358508974311024339626492266591907420128494258781717709475267794879696687636164290397146790126884821805565733316194964464687925157552203494423438240407480878713812282457720478506767745258149665079092332731391781856619830636424064539777660668151968562037556128782594554702331271510722552304499925841003702546643510007237812824760194271748472396045265636615506426598594600715664600328725602673702484617408291624626679154898016933043594807606105352577018521559544605248333670687541638308811226974649415404343716235431924704557046628565590891348869429276011486601721275080421539241594291745015254562772337518559842406471765298578165659294274012608480644855378197708603336404016901935059371388943111098285964740090976739681733164780437218325641997868978622442010579943162642579542035148150795561746744909894448447779852639799062162655890633464799616397913390106947008787324419409622880429388427311707861482514700903439084863552022497518635193334437301867249829233126502000129798660474955390185883836481775524077842738039855529749070703590937630564870799911816058935235400445550227690336286488714745702091726866219744936015699812398334566939461788013200150062759235607569850528035280549526093276825983406015157404734418918319128638802194422391308795572808688852902857101668054053564687314992427415141543810205375057776650505025488355977032145695611114139452782904782683804349629162239421171553890226479018720201083874999112406304318970093365314990548183824175999060723255908136187010614271816233834237640610977406936119523611235151765399986380451971232383758138435982230570110440111559315414937530791762522193478573643665131035366652728844450114340444227966479783933148708906771548928939399716904697437985499359501850987093269148654996328837917688887861805583216044847997743960699961102857734498548502577597264121928890510841886750953279611849102915209615087229804964111355363110077154248667164066532849490275729599745281273648784030263630556923419643262902670426249123261138736130859013075258757520650797888806219603333206704356233754387978147359375287843845652451466308829133663214710367200072224210646968918559568759612478531232687248361266932772173961770234210903374701973451107755401108012016943416242854900923474066623289810786575133983890461295010015237181495255650890841947250305021297786837510303341133078286662488171698548438439857499630063759628003949056143174527166266962615355985502303392589318896210752535607226126338157086766882957277329188451235621521519059681452753585569078776227722457763708922435582612340380678429746760293666230552206352901814957607062430629424779915055192146556846545414047796422861513335276433276898645610381783543729109935710032432464308051846670974830202122044590331365141084852710401570988506724927526361485581321367146106767237794947893851258748873746927330331465545898618706535917533375727196772180757400978925194518028544607071973803172935869293182260977760455132614719284638202770516376272803909342105791342018389335205726969416572270794533551887003998441822012029368940312525877349718067238828161832695100649606648316877955858735358789606240622004690035790421200422638864976959393428988087132973661139207188870894544585303304947232642713916037011426588450014567688746372296022101683680187568335306189474692280109214834960672762240721120837277637887788167957248281763316132740288589030935939179435819110493139163622354166599440417095531805654657296726826918892642214840646812574568187742896400872777524102620945859685553348838488418373126213657499708817639650743311258696553294078766062728248987414716769268046873377785172606953900527778979750533829046113034993923283897512699572685139475351951937817754666160042555314777056897890638799953485549036333270763312376625557011431462039876117684360050008233538879271212915693355597603240565164268672921797070241506483509290223622730078298948761572669186982733133932830559662421146678581728484194890378218681512564913409907047681145193404089974572255316192870245116303532936346150786389791712508810725101545529258330660542470923474171386782058571097540650877698193532904750876411666872124839744076692080024530746288478510551200231313526846599790253749364578709911698455849276801012933865162269768662068930759451143207424268682258551415859422224285522807227058432694269993347889106229467641363937391281610197388642290363956093838418815838533773020835390403499814030556950149624381651616465129137692492695741177528100064229374213101218184913411329807661812535083470713248012111322098864806038679170305684035037478588091228274369193127334183786810373442342160852050822096480153707980331489835134922365526756288431761925158347761356883994911939702977944944153382088876403009143333758339802653763054182425187986463630455702550637433823919626600838662228363895111923319093336413437287053936351848530557994195806868270447753838626839308452785417624993929622284018987594557307447281151474052799274408512868036505421534024281896450691214681581085314269831992034280521152227241787790205208027826930692056035580896436221821065622449033298051395518317376147139651875950808237433784289030330461227544226341842730841207848655442384928865222019296248590037793038521832646151157541825040873038076332329736297314960146465414647460776145334675891204018643702686788475546305084147993419567572764648961597205570239467495850026995740415376821065046755761981563063391845071733436919343566058135101102138094397648360253765875792163788070926884390602753668844641067358520716626378575778526645960591715305462449728586149510863931644219741743879525255058330252905110433030577946571057581293314081645346756643920330622872226640914360630452494188427091965892417474946296682977684937512711721769203286158673184345966805817161336735311203827012751448325406441068286264915461446861206794031486202617658241818243061854875390227533209326657608908793608023474276959319970038905429614768862663341633918581989274528011234859668130360439444826414417711245722156420227216658987807418295869590066041253096253333245391832300864876878137242673906104679972619741700955310345736936146434320177446634174654204180185278934337031088844984625676801825827209922945396712243405541893719363985659685227918216739064423171320929407341591865826266501475397549627331361737059657816973206966444418348200085313843176549900707960006350213546428374424833885439345486035279681683266371060534760472484679067737441278397642288849191709998047391095472298686703173615485236706971058974071767841425848372442616685410557945440340730146960863394890529622023480746053807935113006942093392642923327273705782473405659709365366054426044970207616114424649186205628713797303738866749006940445302388224428441375020718068765424257541863983019326396066830626111467918552083358808585733900514336674749075736004304470051301495661618580837568994765874245216429252370813438198652752335370706661514867026775728128908020734549077887051690498992793860345331435293789298848847135827443296455373034384441516624357571749126361155209966756971028219208230286342992113504852118855404322952288854402331098676503450860605234620665697860170223601576573581060565525347431246066689010727511895510351061499405563214600584104193677380921149364071884495404607249111217165164710245745777822524529435083783710303550050346747256389662753454657569889324925324540035462728210976884655208218832924700134828655772246351869523872031116911446412199954765248691689602636714647659290151505921826586543694873124949845416841197303335638685590921615849947079902617385972812055106235015639258136349638831633125768016240126364572781601802064540863302147645590589246510297862095143252495434251922143615857922811431949179503886882918508179290248922026323943782700815770046347549508409187270684165984784693815230413116099575031896598673750503945968122880023022191653697975409720127976421774990782647131781630976614642558217554246584546930193315552577445648699264848223543285381887228478046577878411729673967622525614474800877958271870474850357278765412624235785680889562590988405649172343137783301113942992734456037653021104503564570212307871070337343832525334488988675388723701541300521392588304106040905647667483237881870617575102771245612202796912018418679941967196275964225982537748936308218978074145627598145871364969130630080916344978723186498840646057029932364229851452921805608682864468945870466050782004579616451599612187430896465417030730278849333345725418563047752731302508406486084731128743025851083671514120468992720534876817445506747559281237562439315606033727528162807229953377397213581729681183900792447058885880143098617028624963505517165690204856219928551040071971803836221775481576942080800349211038990116138653079599095181448538948621738396090068019357273633373943388806929589988442778640740687793699073994498626922085375428635627092259397200008373846466081256806275319282872490610235222972939307056614209327941555379204237391414371498953838675892459976168758181054203547664421605820792007051125331644665581734111620645937387399547320212532469041299545316942293450647575161710070071155040486638913288598070339841404706205859820439088864431463772003982799759272745183165203143440729468610143937285142348366935145543624920647693865388604160865107087101297677118218775383617355733382129056744433947342208718440329599215587743071329878783155892773948611663009931006117625748787903233482106288867451878668271354340601314013510672665954413634897530121518780306584215508753870775859735769842077589497474332996990525060066304429712995703599640850730705965561000459066519682141301076318155368936005644439752233702026008206588604594953034503966058265396287092781621654579920867346455005380277246280057992043959170820200834850790326187630330357950663721524533553306051158233125442750055229864653695522446649758498739618712963444477462516515469685474511720452995354450232435480834036890710444874086737646939610945885794773317917913138072198463958430189533419250969509597816756030191179618569514715854839873960119780711638239651537988161975253028988155777843015031027929168871083100493182983602364411586610944607554071645530996795663711189695682906615822571681826985334317690967475532193251120430409493794186081420990557094467164263566503340837869765470765887900440760864926276338619311271703046643823682164008910992940819403780214242586385466687582344349345175747352980980596547928611699322616630869594279354268295838361765851322422892171795592202442227598942104138942414621990191870887711581104734223776004481994873087674479129793997185498961281611697185245430462148463634709334171412928876429944110102190268515131536530031718624178624618007637280054094367975193589853358191101471477014662050553431221167552008586479052262183011424482687478356463936482762910239098094657568540228413728421758825663160825423165115173958811998024110237136336806283039446894229043582756350548480128081566726611320829018304174476144097759186775362928568911786551352173664789155142635109013122193076284509815521315180755118954576380617208537224666100459343502330965702813667906065652865374409457953146756411064389776589110821776838422423510245551745000492323811165366894802679969199126726321412440802468018267151823863445464526397652581656266930557113311924672547934741771341544892771807784239449862310738472907312010698422474783748044678581536812464086730690053978285698846926949918210199597749523524481078713199473365427833990639980930727745095294594137704144158422166630356548998817455123266092236709367908566364293737010662705805331819434222399773679319872028217307581972298249399290279812706999663848517884760878001153921452769359083299482576263638700918936972019625427934423300258052125821096013261738693199200456989714247022126830556838431729493550191386354795743295544635077446507573693082840506406953613338474052601100306155681404715378263579916638818322189730926886116651842558209222741304764452760372684321707325210633829139783598390605204880748501612253816534988959380273154170751923006201201273473872773473426741914942780828042901900799431442325339511436419042334057343468425644145239996874290576161148889342475184514984456835956239451866986897601528846511074911236730454121522205013704110081825614506037045314575694354973814822487462870371158927294042576682113277856248079162056848367214867698342779647620023694350143841641119992488503942140747155362814454000844648050412111389432522393778820611623472886385910738828086256455847859856632960242144864491974036767791278962570460899855904762602161595831705040252372677104235829849437548534970146766875576381792507240272711614928880955114033065124440553669395785159749664525298339929703537779284037612429645937614694056898257093477132455313370889872417938207991606173217461965742406143137336604578755713998750416989764502284812952373090200924941410713225984829995975784494150721720269136265976910784848238803324740511951852149994743564005492859912099309167233288233995726526798163340170442276474519063760217804318666473681222985296971474620434185585961695181968394745501293268294738051743757237195526309893874185744667309723487083512792692703645164152350205201964921230384919727102957904437138520902193876061054340255461831559997690767684198127410694947122835909369977083261207843042436728926803856784723049545257251284745030681287050203292468382086639663060465137593860973733043516033261951238763839707414434331199775765364282234527863067112061710529079498379985324870135309014013922451028373703358985477940642994092827523024309611394851484727111143068533950987587622975087472658149835909713441110908601615077146278410898251270362263605422639901208058710481219394933785720829846952067265437565065769158296701665817426719819560027092550495678724134334331753067136338257527655917011313497562075239727585483979971685249298418364725638393953128261181242719712508624870234909407913039837226267860520891350303683954646889099631609801293473349975499060008613886370819437288716297845756027743095358287411936787693433328857355882779607637405380017907914084121340351934606894658260886783408802115120428598644625088934053788059528970156981393973672152809151152333312520471832347300702416330861816406504803061277023733139204999402615886759662860746740000564167573950306983889311882493002610547755023581933639492213647915896920236994510085522333876371877400997850562961850134901961932776636677269533084050202015186660773183058405282741079802984667120604609637295269907207853733595701622332289380716847128249934952835522756363622281245139821594045431219059420778679454169252409505661022036921171754816043449238891996317865743609491878241193312129125601419670774332472310070450928288990596151458428909859780321626591290797449734064163656445830451268338806222115215938134684096350970132886148947563482991274357451332480574554878594418994645652334118975662973787038032666497584275269173651918923204992532010494633460546788788216974892652009974548407301778097149493750855072076835202585314651520435837076222693654309533696067821580735616046675732929294058230109968889682141305293354668415307842741530716129190260564959598085508156686948738018209548987865164087756993369148905022075922648890207036376223497903459608328770752045283804559009262226128376418172035364653149768981267680058641400930509104251313749188115065412764211133173360629670275814823931797155587571536442189379886461224294034428475827395503635728855629040882821706687823367275428630598341847855301933252621150471508847882380052177679148150801802550389216040782996821174206942946127188673403718968748047456105876591366676005551939753597605754868579218610110712870133300959504545176720057453086337879798383797032750995588007480943893417442472592143007756259115031262030612906387968911091393790499609766586955853161762402531384742136933240635981913648889031271081363445763228656363462749749973671914215243403144914294832416563512514778249415371250195995890874874220436435153854997555500724771142465527100894435200706723339690359016518614881775424379344440507303502426469250760604320131641356047059249557880996146682759153511898534106475937743783816419682890386567332616534786285673787954687823403192942041003765406859565886985655734646958727684925295053351743690440315439890795359182983920472299797133209335402583704914529117069122860182820333088291501005134764657214397642019812987291127202730932486401445898984260812091966697836824179107211744901920473445861134385974619959924397410315585746796003370261864547357960997231746068586577960261819428533573235469590962300115883963295885368334734736770641688322019847307955863447222721431791939016095924645394157642024344038861132292417270050131268136381390239554958463735018951824463495636867699805033989040902274046980225165468431375154737436665398373908450705071255107150892707976883083565518728183253662025231047282257528645339771123859373457785289975536624365793192670016860043369724041176037587983061498095406530113510971781952458341755040198562288699818000331900750671406720233901261781616954048729027898510186340016256835734277834865784012797211470109499773316212348099461939833618955817194313241864195263219194912742920903897400007796624053544245758518283399115594479988945207032235614801012502597093234221106879461591615589730852942845260169483820105304744253476689664031618368507998509984288255648643986604865057380076745367802898182917893065641838415967893985687125586791471875414159118258799664070492545795696732193711396388397499655546972581812726105233876799845501073614425439532714511692434279091018683857393132402533365028931716780841098905016559858869247797107468673502035742852407199017735446458170754579221195687791829837275797535627956528294016686545399148545705351575547698898078716488622077496360264743929302984580553816732433042340497212960113554605689560101904145716333305618352227632393984121358735556199980974326661080318413169600829559180602817103299857160022861674366923800792772014235063631975447898274462453312094048934145007713411059241325712485912847407152813788139390546989669223159137805039255072308141271028650554560361260724387736579311966820428856932911757674275823826203251775866388936778217820728596751535805883283628829819305515920559629090454037028008169323826914040084973772505716845448564530541611687564121073974632250411331063261330773393675271335459783729428806173939987200258448225436347781450165360095987107985168251293067208480224838903523578183402300060726884120987728666638450330829184837723789175753894052816469122003849537142481947560963913104256180640428965920242160657863172941351299752244309826476616445656843443880555727099624495613537719329608745475037434518772641246284804014402037294687715426751923496466680505107325203977250966616892336570116204423045015651142933450072182271455861166740181352172503474119398291687579245761023372315454171700982203104281707607547130993170938335269340098958672994950613132308844232722139827449269691464648932186395367671856896332370338853413876646399192163443846811560958187561758978555354319043148172099750214268928771867281493396242121703773835974660614635339075849396279749642281817207084169767658584143483019965139584122702224649441745260174329121805656170756685329044062576308224644533888403668589230699769636778748007952896570853227597656949286471584646715017683248799274069496861334006359857938090488757968396936410755199197326898104051661830445624377979173701247693159569398329598325795674136293156506531370853601251450905137403022928113480942401594053733245821887365998073353790267812375140552286392907365015198828136304360805637040279819213594841961988126163772941188926803246465424847860328848071079756779590135234773991453339304671314994372571343985681793877525742215300937547886753877444792919405508388938776744024537626537381543474158096387356432225834810776212713729042435748159491045364655843508725841078287656383076717971702729387878739733468166413996955218089093096682076683109347325079933447082554486398461901900196880139213419837132242914637328838494154106350845494502847500600778531747488217564803457404065101100906746342913355204625259890212143964488318899525245681539207317521026105889385738838929302247227621864773745506666291011471876665960887803402805489183448301359838430533369732452970841365176116302642599914199093738227745689127741967674331412835576955637494849322262449343268065243446334196681436275294805105949485055500763031057615771621646177768692578752669668000477012778703122840058194049254408935441792964859737498105849280888092383496672934756112255710543362687184134943329848950427824361749604176527350313104216342883381951844379240154883296858397949602725813401811993638745627947844255102214295154219660464367838120764639459857681264402821309111638990619415818783178893391624994154699526430093008122597266502754719998412935008878417845130206051169989918349087287780314996327967897829658021653225865656602287831083339943897018889040794086539951534261659388127075250868243674012997856704408891569565589329632062503777758654279885646564291110747804326976033532795112094844368408475747819334176190256186378085845905674859329100109457537428045358588914428997446376574857653504451202391361121035961419971731263495610997619558661537048978372900631253176284924546992218099607503795667648992468923432816399481938631112085112843626747872218797889302045047355739792291073543542019131721884249970744276721631548622462280389747931561807016496701079097923972900259816063016655063219281438178927579945959671798944521102777704958767920156556981415272858463244189351124473609318060782740930558701715544914761809771587930684863339545625302306443638270176177230711638099612877271035728614883718312149201042175220442262059513228024926084817375328765738012280544337333045957282400562426016202559783437446468618043678687599883036718442996702560901086292318694433348874926699574350286354144021046987850413838964222443940706654395207120675219549613200691843769463417605866164321112619435749662893070029927629421773963729173747764544714838084830964729476710100468260973616631631153018178058313740806039147790861174331885375003392499580574826644914117455469224026497404016323199622525228131494687618365597684784004594706506184603060320681376729230488758477361812298143033203811473143236673139940629010889180632601236831536235351794697725909188677975450648752940629647511878299163324734482227189063127066516214158563766438515077794020113538527862829504941727286205740131888029416590005271366669228020373215089739937815013340781703131341132881386026432893841718067224791079972223299426700890581627473749318051057474894843019756600653053729684386282694692573418358701420747623385526403044615049020600073201339666317360957445539004338579336242913350286683338792938885286845642901278199400814682116797290033467228349894077743713300007499800475186389687497248540623446315012475113043876552406367783450488211575650378226584546932584859484598707473307692646410576610297138810928390388043002373715191000725697846414751616079628445135745247971232754861641004372273977891583915514572718052939105537221835658093305550033218592660816981424518569530025967387041877496054576722516290675399573230056615728349345284001211709640132863665224821237717965218977687237021533686709303489991408208076982930996700017994208629566727839939119944515404756918482376816394718791063929106141384991344916057740120731861969268460501409969820758901413564261801467732894103814835914698688393264739313040596264687555498625851832399249739147410655020503014102915201751150696960050171730149931994389058430532683599605073891607453570449561654400616900366188037621056085766908231034607501963605723850426065591663644378224582144055335244143645456714850464481125696112704475583136789153393646181355366127485905123782758747948198404767139810290872169035585344502644745859681489024175352651188593400776229060327500503472314107730743607915139585846843275378616788171674588797260965682258076576705464408742000907144860008321324907980503468150619050828994891372888630827275611735938781071646817920779285515965596192662571242854283729252898652993669594490411273656135212552903271909686828454771381864266524736716788454249752948361718005589907234967074827394726345412476430611369289033756990363175222889144664793070109519376789222352975024000071224743386995586678458240460854508457191233993271557801781739983835687058791121124397207626039731903936746877602411031303766590982323911093031418885683722413918797249612902126916754667389690545030970340832940820977213839612289627513934247438993655916826806615418784731100848605056557126084120179393593655335577527058618300133062579096652124498270467673574185234898977753538129847418113325006540259209144064928863164737922207460519959275309562870150501535007165218060833264212652344137642613792935066898504772120577669646090545394440164304643683366036764880112140714251228325904219953692891695420858778654405512607637901403908740267469430673541218933071283265022279888905247348483198065704262870716029312385746726031311836101506310107786214982817106900147240196100980909089580098582521608556248285413054459544643230672759864285368682634727309068017439417880957142715922115930271926464123000296770563119070473707882843854683522220513816032721454356937988907481278207189359459649086522717844040345304423487423527749541716304498774688430643981943811550837581432734435589797811439041627630735069611280615645084454464338808091228896198627866976366329069529490327475414803504585951515641585931816147447217550926915441871314826069362606886459630922758546726370987199655489866637939622871113963472544070679317521233510365147395702671422154088140979221488386608489195688500334548658222915743060906916519571266027384089745730033767248181994193337218138025687226680655243778279535903588349810041309730564628684366440139687116848345866876120131496929130688180967048085047797359489844495993698736487225891575845525289202133585749150741554325233597793362887402174216017652516613926482686073906922829976519982589413106119603446518704092515741276372999446730702203936250372424115532964473665739110861635299538503488967046456508233525160945001061914683012927327502107477143030998164615660745561546476951897051362432280202668130786645815617944138430122293311886348661185433732890369849361118682729351338758012356582585923779119832347807400454085758563742710183079003582403988108391361912874466926074149872004896228436546190210321433930489794771525371235161951200424204844096650358783550910051843709586982664939958944751453547970738564678177812667796688830155008750034676304371471353592458823829194807537053846560431491727583882340933315012564326214363268981968981369945455320327341704654159029111050570404592523965051515986167739036214050048088672792164176592214288003120801888668462908546098783862307619044943831218873708170143727271107180627074427428999990782387553088807681649939033921635876041211124168140157744422547874887007261889340780440915424903828149850968135420403556419498876786470665369468475820671334668728216525414980960629750148039654212370253067179133634566758564831118139093902671487469573785441715234227972211140487565418938138217984663146561220998519239343868576532529596400012577733979813657350936370743271421190694990271802247467105963446613476239559437145679012926486670729929772691528521108639630799321782319999083293539770138423699550936209179774728202835430850349894666788382805848296665240270096449138609531920068498494119326946838348306277842302203871883221919980134883179337246372242194433768636141235763371473367465078881689607305012258648591972770333240798046590547051025305919220926905232653468800883546439532136858103884863508255215260554712533895129577309775063775715795536965641365480707980746813681021280259341871919091826502246448505079458994022577955599844223940502358270775530928271088049956605156812198286372484062092218852248566958577459514094505857382310936667231116360566489015770409423020994777660337171764598492028681962903172603754474113706024510144992156734547878031385434345394805316711669636952737173891022683366934247824504179535702361821956482439616168585328828191522064238602786652733310838195637184291256347012683261452926673606903921745086487105175078503995398224938198537752423353384922702965106356654622527397987292329327229363553355390036075881780165648554277113803065697826413735691667985167194876958003210892897949924603155491349476319720133654286925209112268177788442963443746191776301583028857902394553968081831143350009270709517659493477891125338004371298316546257656267870988616666067202242167697586891631858309790092425983091401434939995295525453644448082672620346237370035801205068161562240210903049619305025896853957958695014376125850300419530123499732313413569932875295788729845142783008296849401134748921690909752201778080167303558874983048959413132216180570115805546034265096392834418366963967193445221503540352825547645247996118803637179078664415518509556774767534024757443619797618473473246360916690373428094693773689637747069436872413825120663533753726522797323158158681413579690879172102906847679536828412725381134323734322206297520516846580360898133869104522775890818441386818917661340162386152193019977148776484797894251621370314955960358761510407202911456777463425199101038849424479456733964319448254780420388014363261787279811325876647090436387736740058026537482482587958741938162722174794037518043610195862149148544143462975308827206132497646362578328193007039991472307308211021708032728478363438466603903281324755134574502031640396706882840878286361921625031033548970042150182000883519449571958976402461487267890770319168752798059372068974427446534402141890372482705518702731689698560646353160006109209132445109293806678440102110777121722266527261707244282570025563463082960644895093681849693813359977779115595949139286799506040705597258344394398127781582290435287949050686396862230147317305298472893604363411285366526543807932910047980240020176468073555379355271266384496746854643329555956164627094142439140082938351409637438216398582164727329687879086716490783297429789435146058938922009280147440815929766915072830336483966398024700883503141141509584925958959884845143745454158845377127688855578175825117954150406684737947132941828625334611754086174951504405245068531100810689903882717863154090813789132178303980879619394969276614419469498920965961355784439044617929141762098753621885464919472405147777741182279833476369457191372635110020668476054453097073689441395041906809415230500175026095565677429086331848931311517375710587591846122703103365275460609042029981121094342508128633902043780909596767318481689269988476829758952764305139008526298643033770923353250767398791615217987802220080750762694866909403231741694702941149197829114184050984285889508503410478518643156119763927866390456947009208458096513945941140323387771236275565383643906133351026187716543564172282440011090472294739856799905799062413597719369949124859359637518585551515859841186139283034063642153045063315929875610903056335413991546056699783267591592473147713441619102269162340018958510148606979948657071042332494255652323315026480609350585467422943638108760376878937530640610836440771756717252494450462354454469656377389878247980205113814960578118723839375217073217076569108416175856954665133320962690118668164127386748857808901648422542048567810261377966935192898900499166971254710556134368214575827601506537669042758411192357008748116207812375713356446879247228336849754198433319851446667996228667409640784658785999388196572437354660068749790056720646336754602714274268409505691185500994850627930209646401357711002777622321347227170181629148030875834697550646474890650024538340163107048180079695462862619998455328304996158504786787120257011581947483255911101781928338050318787663875324366099039990409778846592483045620119413040871896947107047673525632245448127383573963503658259898874905497074888143520496811455752823514187616874708267971135377004200494442411674797923968722868624347100111908573471854684854869995944475117748397904677332475916650806777457883118942358618448178658276335085887132512841266418208875530710820732923492276218044679276248610021687479039067913065118461497428067809978509828147121488584896207682087540669590307263623005816635871866410227970544898044287841073454594463868532301789243412645662528948893661920973674945283163402735002494688997912103483483544664916549459121161588266473771677531705119577583821636536654011340901770457980751419428678438217171083451238036334241917115985022638803681031731656325230978677812908534695161745421005660606206122784797112005244017216420273520509966038764243992479842497366813336408392671643817842334242602923388845742484021014955778624937113453542838136958646894755301195536113999322439776127792593406719594913618018369184602298309153033047524105309432644785568537085793742401686381029502517204537651459669068267594038620943769481517922152351323421645917722322503332946920100261379236936105472578853819847122432921041506690572698694339358263998536283692073667962127053784882006407909412379355119427487902851636900475541724758979222274238929633302584428397252472315458758393482796787681997044574267744078596430550273321969193802729452656057463593169160095969178867644898029378104667955840652136263575073047721134385978504870669320704635193845523991954140867911996889990532021729643037399362181167119472218800227877804315700287325038681078828979169864816673458186959800948687960580930146092329481880412206699804449748160545952020198563784425334094154778880456313225573136318510452182908189428466953778484590841151787626180201984491682165273415526398573437603689689377881844506975364313290054231144500378173408354049821605319213474373786773499675074204997766622071132755817509220678776476394674033842806485321975422314391984217940502778875699513125016271409364863659012615746278512907340810355364058646016576102009581231666435070123806714157201044252563964089461478883987598812467269909979599327894236358673602043291992677328233068168996598141605605655265660069205124203431229827976998474432331092053542594110385835402416004160974668368424550735978640040278963797157327004946350039187131946863057554631048824520212684485192565726066419740426511805127047348494982701945446768262795486760526318119896872920261609545501731252085601182954037424661479633331324222941123097908959825237138295266903325677771345568479096084272960856069061814736231571147116953573186772085149331857331554275745027672852022889730120076506636787673047171451137999602791191818010947642390887851688166702000218867119171961431859564854367565798189722190892240247482736345281996655170620774598104926929988517390278268481290199941448358186988601249599269545627368268989711838086787540154988202775712078546545263281259257861947849678520733352452650679862836175703801687715847525567126542921047451878312421196104925813610684263863118875165668165523893307548808898495786472118375438791441287892484453608808310422818822767782427851099465863276646951159892956866223740546863251570168834795276322401802037214683100819459218372072558003386722911935583339404720796135701246607553366399651295411800438188727518939013916339581084029374466561119746067566785649894791125611781851323704526281290985779900492429717420062289790188203699690326190977542754530553034329787534844991679405409458243947792557170124804932700855834368417399862161868091704478021673635301511138422327162240404125348706735093159822389276726630194071442487431274312552687930028347825936805077124737052253442026213435176521904496068786318105635613630816547012840527595438274944175218229402232906234919643834075366409598624238159040711858003437884206218950235993987446415996717631014450770569992088277414948463091058247119593413581440010469821001132370049150449167836095745249347854473020114870501087875675386450572274328334282978581273870022543851918507604691560242877275865134077992287157207757805232446149728771271465485737648401933511049273799068983670538018430061903772145811238365206471140003863091907392822802246835380762381628778040348579068990987862517588712727211229249378350771709705132099659404112438173086142337127423396182281819988971700571275693506286199636624451547586409319336326612241988101395835349880366409944530802935113708563211348642920887924944361327970368400816981899885382316994281948101771595542604015339027889905276344753190030396050489483174643252923619991398043546612081147717865347805922529383140732560297969363669529832235465190694512575282952850013886831656673118194742035068406817211297829189688569335133322368138601674767600956261879010072356066432553909313833081819237607238091683898161051981653357426776962831657785942496787455092809717946783554117552513901923771770343371700075594139787766482788230213686965912065920780270529378910754100695243007895554504447698594152098187369882497195235417725672815623112968178433222632538040642708495259486445438437178262096034912274340562060656280956954595560363367564300665660344169563059152775152559913973016389142989723591509257220947646549045911455003303946958622808331923095655925226899355481926962499578723918800438212381224431043904682440999900421159867623190176246501441884343871502260371058179653647721020315952935956577420347800136448030857202574899045692440141131478228947130275877490052683760515244630118475756485752559269319676629250867674685866480718035550847171450337473292163599044251073810754390554274686399233119236813603463012384347396841353682489850491299347573399833201032797397110400533973417960529087578250069575613903436948576147494120843328756374530623306938182901305087690323261590561863808035028645229271582426227606199656570349563182871700458517618712689102593252889751451271660153262747789424761488203577559635117807737658321406219498471564924424632966816526910232317369371530075501149052281839014539578034885801988581902678077573965872524443312290647236465748254719006227675884616136140550012371124452490721002394497340281381653608036659348014547194854566839763323217584595795217650135802046473711702379942226671713160946104775557975285164473362845051163654339024978231507968606975092929049876103010991884254979850012881423272007774480437015848635099708807518610214652034986909571371447733508453080838235024004557493999605769760072248103726914713534202679449669062808948169367618140588667315402078713079276553921999321941685201315890356471268309451506237625117198626544270550583102429999646988418466732135288673238484945119831348048302727099025235844925643064722965514487132071277166193090004956830908130165276683928604657595400365310804128772169754046105130658768930314669993169837327475796204155509116045174626713457664560181833712627534573110573100376245478320594415747396536387925025590967937435050459374744662961352668477144972752839455818138632729669051277980707065644355397779850418056738137760283078637670517155289591626183961055738267856109322653248083347158678079038050260149193468652062457026202566353213319644396674445639913677706916205028362016137133749838815264369867478548188436289913645877228490926325704222873846207378636467146404192918671295276264427680790536338349378256296664536234625678303836251224391430288260062871706896018182836815762244574661026533111007279085177332117872121650934248925734671085462936951855912648085454427956872348605820366911316996915605880018264183519685991137064404663225777715393118060332780895506013409248365506957943793064152207109722366087444140106850317222382005967974099105617439081265153048378238431323207782856794976317766905950910410278824474745394244965584552044579659317259011403192863688971281648510020579597926160936639307081323689719836996611217027438119989634901457895970709704691421598309539754093703619417246802734325135611292710728694708039550808566420110567026529171280469064094256890449310447510932168696069347142232069036665096379630351637106408483797153858592903979016505638754800974083636704367722358294540458737589634647669878689169731098627597093894595112116200703461469948329980274780459183733501958669091923470340693199172244321147907673210017307407903612502012712277569335759722039998168987711586533928143509400246270389326170887918994881431495421394970951904142726758738438832465460345771909424321722474573319843457170984022159795414698126707489442691057490029146694111775532951796060649413383379929937627996754289256623355245735836179878857792896245560549021205283513208393717278731359735265762502801018356161453602520831947119308988672644740467537444359271015291472505364924462176897724304326229663197092468383309368723709252426748201053438971420469009476012610907774484205024286883452536562401357863473971591699759332503397510009230394512522754135474762445707541967024682524767073097189327431339921454927725452712963407949880785334845298156672628496442640642626111211328090355113690529879909140632207911083345165361351053719200302403730589591642519480491143980228497394805825107863510054000611516902226878436465650440379032359296776561923200003730887740262481872666274331283553440207956147534651544888452476172143536297834364805618328207021616023377163404762027954091673631684971885279056805748985319716602079402498575264755297665791840970613230333478841889632316482121268345483343977199347905038898976915182359152927243004453099486820212117689476601087090581840466558119565519327894160249974142072217312151094673563812162419845386942133793196902519324743802766719145334941959901782882239131854511454432787390786427217535544983358406947037608086631485501465421281511075705100678382238343347775378164006735965574408439485942941916942148334880524510754886791962016500415602463777119658730345261136825781925586147842554531152183648829315957796030901920037762536254489486889148329911202610185877953509932331670409645979468415232267691809802608674115951645346135285199717844445417277193118377147826485856463595190693807128736516287588224620392519498007135955910415156078905167388627712072583354302169363078506744359215930713951375194910415298973828121458177310161331647653610995448660022715325289614717601500092494769571796039241656774160880837786610109065422557689927140560089291282310857825451548439747504526532833963288801072013914660639931682516510540566873069584937906145225165025121057441720217681826329079617557999898877805021400084238389802343519303544708323674817065124619446040548884622745030559790224196428135370691355004966642940191312512889365029732676941695767958674187909361392426133517935594090157753808074287368725019373796926125055759122070844783699116715622757676428655155384636756654969560147449639025128217960661933689898356518535215815643124579624413836657040786875408967935203147956654435837863619056966096538700191395994944657534000563298942681067493918162931247535593226927813495512077151799374558957463660090058462558157924385051171786021495631976426592800685903020040936226690027860417626176658489881404320554318403705348873048553928510798647297061486318639975875543988065576182752668573160784648114798435733118588967149030025510231361884392460419989684946460904577774981962822023854447948153492974356359128187940903140979296968925933093751855287029707642079159970009358435022758831096151866626138686235160691653249995661190826097174204818981311207345765471058423671400825734685769647793270581526577974356457451413850988096005801025953093979371083992072527190813128842521983396457171062891966760630536042917604542301519755917179251770285303251154828868701033417188853970316020690299823241918648096770185788309982459666026853572215351215563937338661456561702816844497529731183139742365684454705040471202669373073969376803398950035677371909879507846558552432718595617693581328244762771412554000916424780815876130698249086842546047941671700339361991529101788996062149932309966842997865107586888932988175767211491147442683549420621504558097238043142989153715556111727329616706083697470545139296006523167543368065739173601018244517504457160692699147994443400925406920398209421962801932168686672964432746437173860697176614130728042412502301983668473728405859881469788170353167349979765850239872632314157983637140269014970439275746911948490203323072196700002069547104187173753179563170925506869510813481323411271700876840909684239185124952409774063115812265979624228030808645875079466621911827386855285282644446066203473393865667279873861158840945704616727952940294366876762115210266782192655798321105138386741516416843907549558310923218096590413579351566910270685696949177695227519058087795743763726342096416321086453938258704699273351093486036066935299195904448372301498105486312183337892194983466503642564560071828496906977803869563111327607877952538806009254296549171427633632420341091248252989728073713143052628157872178762755601615119769435644690888054622826244712455594746747634461848892131140286697561026189771235369218706185350290855680082575462921703474154746075477903422823886134071873856108425066492429657275815369784177756349332899717938440977607967963940851968605439286578088649114174148284561048971562186589010055130669868553731168893347031933752815235476179732362197934947194214283895905224665612019761232764715180748641186035832932639905232727523740977696804169559317613723129091642242399739926680538568278495724632441959150171178032479132986887016715473803485064651381539892492067193971498248825159354103157046902489908005280833636601871915738520708107036499631805638112265211913483337675058496000537768244583774910330271898212769518369644519871010965240279805547534613213568308534498875373759147387067125084313088278710990067488039662663248947434442844427802754190696921855554749385646400145890787751638088538006350848849303056004558789126989652793981783651626835715862785610814153403479748361762172467975460030253834786983239492250530769525389115402016047270455084049706357985430228625428636929092131073993136008189305087113623786877374317700190349991529850944213490220663801843149437130289551207620614290253147087880130498150699837621554522233149406296111838035098340771919474123443018496961850175509245903190743748807106114441766546761145274676820816631628731812379818093327273849561035545485395337055067759333762707093245950306019741560027127352686217672651172090438154105329745134962650090567534580622956328064723224937435694880634692428565471188473497856324372878549184647377876858579078891763974111516016983172423050200588597731974468505066713186126269390433867614655214177330305760652901156673547583911337915254776846724876826658328963872628597109262252738596436547635843893274712083835482939233821208829661214043717914660275496469466767558131575922817935475549927663496360387285757216970240373331969947987465617894676798484228077498451587860631960167371271892164639071309627779745100369290362892094108387698132794425748505135120548309290646277651131038204777486377226428650699904976053824157356854572727092889124005868631216299638874866611886019953775308429424181618167231465099413781675123601678748880534776990592111814236283368244627451533397518704611432008275433691654162904202645990146600247749875451541379476400538821336020053091914681946397969784352439893661425937045232802134175322159946117623013503180091820417862380268077627517332287283159249591688052016134270881821665637574477070183873748675813521144179058505055875498622760299320038095897548964290948783829834925010376253763170489138940451609244706299668621661386322613897621300136961393506411063502752983136802779187329321283625462471006967468113524595284355655252736190939904913054214752258902933893393277506448044798143767451408321418021204562402279012863694006926156689954035120512238078251756283271539162390408908948417945319327995306479346174399396838377300963913286746811096119832502249537264451169206869940673652431608481186034892742021291968369541911497762963041964307514460861638113767009731881748358826120036097579661080625097998001405813124382768508266156057700577234498841784799531764035233256974187414270525518416911032604763579516078184900506581554420627116008105726127006956728445535452040565862849834302803753447618146518870865857843654810874023837638168191926188256430309831859386731274793639609140590165445315241271718318785179277530836661745038467880940836589008923636322946434605123586882288092066775713784789314297932148043402964358271918211580419224873020934870856714607303568194918665300098606285642319327898543383666263550226046293129237663779656949312238699919115199788563734332097428785446708903991045323636163994338662514275712902210636914393339892536204651576922110406305431616173179071082482394376016170346688044888635195580105489735052550883929799419781070475243896585107162992613337415904069230412767562123978598550559383951302801092177333671039710564139808991988963998199120455822343303476824764033393543643421563750396715391185689998064731485489587587327245350148404251019180174167363921447527685734863683777241579054362769810890955315417314018058337546275767683979399622583996510270062624396357218142926260635402007625379041947505233322432755276211436474497702307408897075060688000097287097092646348144563523834357551547209168227272844878723679284358667141856324555821317304066815486619239429345010222737743101744733717382040050565951171785753236558576186363810816697226654727112706431760555631299114355989939729269580290244030510687894131154740893248766241610544264846769130584823615042441463283628313095462028297207986034598450438228277315892409602287255346392751264044118728748630216283781000595203546602283802717115289556106298896978315894473840750784085837364232254801789653460417523026198256158701710281170734011102046056984454040440940128771462517391772008094797329208282806364096752180783535741617885573934637538166411161758444404430489523891512379359640568779257127773662784126108459554668084181231476481108564122754330431659613685328157192734807649342051303081136980238231480199749760568904323097762778805039831542715749267312747397726548001158881990132857651611207277413810056987333009089343261150345418213470561047885685423180558711719501278658211472453597942214352479646884977244346193896746328298112703626708624894150299032324986782797504697978792553024519329615195614977995838259858185046454872874788539325118833431656568691754652349756484951279142773033635673812125474493162083618303205345701029649956559126889538456989273395536972289894126668634340998815125924411177917540189731563469767484870488515980039331052852540451395575787769776562438405026502917768697720595607118866130801875181172614327747628739021306802883124068719680809330423876832046097428335080901683301591792759462986100041970021897441842556369844449276466071271361280719666993808998495988134818978670149868014939829082361947819854479575637330527283492589835078384294438611473072368839157346399987783080245041279283638551266288558831288116641269636179849795955269415400366327897927605104487199961953034685136645752432053608689630591873588982572684194223737678959886399996008237027430922547100115513812586948106214831940771384871095835627533064845317094036822816355026298143429842144534757445970457392216394837053831754775733503736636171890056858283235251885648332315054258766373077922054942033759316771359717621256169456442481971173374328393926964292448998690208888029613060601608369249341630872522680272054046818163451462985053726511606281280733254262460192887085664121952081847519785429998564331622958608917408731556461661871245769458875228359779468104988703007358759000678058824377767985085921219316005711859925249068306223783891534871450978124245608565589908326201455030031444295271274412468774684056121054884631911973177101790476107253823877717518069880126213824054478531265583056481984378428999006122653170610180157575921319600051170310021491947926299912203067778650773887355555824609433070788745563868932704918530905144624913821760261324949253732927389424889623180479302762549657246021057892096699081843037446987593542182959627860065133350086462666944601691688285872919438543857010090640569069380046359042598342058074643990305823826820638420930713419124134618130524446725913995067865058634819535241578117589706714395360268965490435942933327918869204890536981650935230135695684048049894320586099164131406921575010910561159801807340271387670515644310949094701736761168366912295332527849886195013005681139122175117184718776216080655965219334919333983427608058465064596894313783595878256775496690849622326222359508134403772008711597958318497398512098925954916982574613849496615238163065966697064883919407184459015686902740963382406006417280317555169458269804824770915462611113055964783340098159656546407581149403564701398804553822396338197982832230061945091843299407772566593387442245050762481493664204264376456323213129810598346625475550456036546502542321885362463858283827970346617783998638631645658959324605762367817931371396577627854037023890254082649360887225927962571703361569481013795324787346740353363500279371555091840733282634918967315719566151484778473515149665543559737748161337170616049842920503505866548739305634598477805738185921283552080910453133839814564532152007744090454366110174211729827741001760468933151225353396070315576193129526646873009056424872355631902912449119670219599982265237495524652217472062453527178219238702491405234247650699178803753438439622326384686060640887247943448248141035395987137581856423731236848139150252911866765508640154254072945328683480761251454644137669538720901298199377535165814291182557598480257754372853286325940594675317195519318941055292021235176689352606641373773255962147583760145772989641271038083943881375564085630700864333265399034435487967983697710028363119708872689496470815469984837071687399388903229743203339545174331016478741410158360013945407495760277990652760632299765932378160125032993085622771338148011991278155228965389828178346763251569318086023955351265677744389942449895858041936455672258855447493197407508688830779396486682580272275059701825905937142889733149094660759537293643257505255145566965468228204804197368041886104988020183137831649178248715777877598249417895033357291322499904507741566905214483286941364883428828384454469913214256288563344723079128538589177244255404358580371537724073217637600752972164742597520137496184502090214200273879855436100658051312842973126040298003228767325104012493571376927368680131002102891050997293662259978958458376468786516708277916950672303183178262083273831596587973628992075996483453790031442928043622475120515202737521816754888488463590620356488401205061262484217417934558527177425345583473419151606362024581242224929710592886151484194652836331577443299115329122238469845309804537368057602844273114725916218409389743272624301929223886073271143158361353326730935314187105442817215735356233885826290646303047638069954695584795136147677199847079895646095835476199405113203525910002689797206867530135549935133535296835114638581394999417422978674540773319923530988167590875475758621670462093688042465108346466181059445658618847476587017995194046152766012483165165863614894142532184953565807060371434567783854280687583302805003804029166411839245017281181964433256934178930043042686658166709108701243901220227870359122367840740742638818996112824426730627112998993092458932825984830284038149558586627422009138584613404207715082040844385597546198244834362686520584325559317964785232182198095105259738098861527786221165283106253304415282958814222208459491385242308420965510977476414126637258192713737975722616744451039215420524603069697917452505941948883599841364978786840538535710961071627014777920526481392111839776743689805565602713058313694813303431917874342411131958877976242467649334309357052837773621999797921393020098725753685753275631493989988284407374539687848287266085280540144959293179119289958189458264353431460734682131200371999293182792178389441211826192318541708336932348215336371304467953900805462136648455645014896635442853219669992817938669827177780306242256364963728288523971141299408450236080302012499554784175056931404416794972620165902798688006525182692540376375990829054784153283481931495799153478174617810164846010336244944712459254154679802626969736231609913441721049470452397369353094936028597361091573411437382432487011743703136183832557623383224022657954259124874021142709034787569506269608980303912562011777388555794136845090937862500201384409324135329459698115234783012121507170091028831458402064618875465705492732531370439942054035707537329752327642191137147136015989270382676682467467006660100949771550795813515862067938305199528310804161447252186810150230232579988490785653729771010078591696356769405302589619307493628096469699648153564858504702322816485336892876171033946083512306269383729594139378908722902394785300435132905605227759223561661472209557022513378274858959606359317919532381957278552408271825051992672484984776914230646571502716733684694648949328805403363774457043620694888067916859786188730557992299885511089858451339434038740173380103220139487249570041851275103307916505143002766556280245152291037062848482854837495204939290384573225015292919221845332692643695820064837456793576692511534236008242283927266994665331301099562041055922637113057724648721832724930367936965436392757432190625335650975343978054076552418765536056887156365851867724081280263661647738468610359936023295151194248954745709203588771039313272392710056603639864141875230284597664623824403018536534717147974746235272444413436458404654992944793885777106312446339634014241894223261321028449170803978392860440612913313148050492726269721624235124919109695311683749055673745698735584434352522407298311636009915261029476220930730071913005794018260587116392393457236345762801686039239152041129132822839549868157036138331595846860369983814456961987827084713372863602894352396454412024184107121164383821016570194599509826435902020922305337737750313139844841033631369855972969614485494703468365208779915917226315431400940665961339120786276592939608136459196288309947757779545846443122432610514656516366775137020780605722251302101678803723423873125263874758891275036348365818530930299692573495728699271325980355555372733008356000724251394923289043310942732683046321216342864035850539249065799689149262970886041108960386406049746076391113723340385752025258779544609107348127257584310807443179868627599717803438828793946332748957379898993816032520388060850581731093749963616502118223884047736501623687502629260008920494519647411518712655658702383826066167625639094437496192212338450676725218339408118254089466072889684755925039507621978856012913189191544717205308315016097953671349858509888022936563325869013583159477799187618086558637779193366271053610518933630212973938756422739877545517754602840724705007261070697949419425772484099418065672408948033119211632332748976192953357960299191058177414079148268421997824660342928764637715457206004265967622707353516480991562922200933035617967285148437838786891920277884246711073896044295827656743184348532736907690238969745556417761788903149138923929607120330428625980560060213648470140613722690256513660797649988880048184237495038744077532882068377044517630653038339844017728771366413781677478304769270663306896327232577963752152979317258518191365349546804926310375516444818807276989668486758906716160667841960723151520770194544171954437150102047527714248496945307877267983493793476388816997738876194607560481514088114698748075134783753725936441954484608132020485311973455722129272006875066014749923964216450820346857333963916846653632386598419964030451585161300620318109602565597935400866939432367442113641579047644632040818276974829972040050369234069511567902483452946291223827782858642181451491627952613044269311655660298574237260777014596026825893423028308880351442042443766140390743264601606603905007515545950876890160926220490938246921198554278067730272538481173573443938205746014793444734318491783087332066834859873242966111961525156720869607554221075241226198338253650475697501616099515015755524624428522846240467055332685575968394688004279876070072602205188095117559292115724479520883183523924620183599901666715973317871761470686961906154449352124020371403514942111879929691601383237299049077062337925067787930432579423779916067158015518534380167786346974329043125403283409199500886201797955212032016630001690370435626510829701430772555594864891323462028948199889572044563791326284007688353111555310472819931776732554148541455692489311561471483512160544661869362020224676727501298841279921273126538089502766705321351753639787010442225340308616992903065087810367273608941268991349563131364027657581202697354700227523312038615976083546922101017047900944663543191871499259327211589873345686092416681035004427957758310511400472049470804186977928761743621329848726208528805541739008329143760088755952384679139696877610117731043082709280132528982601325870022977168322736706671390334360086435355575284289731206991847893327536227779433854931472801885040760956295768048986080127731221785363729606256089244190332123501711012100516854285918977677305788263542288483955312948552999634369277048982977884936578435319111680369124480895529029260492475407217388193995561018034069214036499347065920661575500038214518809305443004474850682020034540265135873286577761319366204958343503736399811915396266955466419528392905107830162381512218302996970916479016293268193381146513185996393288201700596585339677502588206834815189565829784202703132032294483247164470445950512309929210865834097131050713981878859377978872548391628694752796085485829160468414968202994543345080982357075809163852449647383430696874534545352366631692156756812337333787209160651328946094420286293138423761205781014771095251539809093983327074267425609478563387314539148563059894254180746016394009068619782760804260386031156544315628544058777374128191387645212292002743649585712580898995991070216378584755919945687885446441069540002015779417924594814259065718347217516447887673283961351001971471090017077445405682754877168239349557945021698166632738140504839628895221051962713921333869037638112661046558552349314626168502678611336415195078058863693459028649308556539894036556636623508766979371381130021772711007880821817743577113155169996118515311737309892846369549594915700085983814490978753646402837775181555258862088319741319151683672056613369077169262942771579444032362975346729681509308466509393390271322040277302316248816845905552408511819004166194574986460053520308280603822636669084985858749952287245452043581854844493930040622293520660244897489420075011707274868606696987730733665739233542744080644493522989206948771925736156111179371377897868700715114091987534735961299410790256606889691325809771914803830843711304752552522956138626077129821517284558476149897243808165054494357130639695462059503249552286649822815923384818209870760202915149985100237770177373182905580664748076703701849868316647472724796427582285839738040236662822143155984667602269658617188490170181600734002489799919978767743896006133490088728989369573287886437837976098138364751551750799349052833548706953752812871194789933966068213468235124822218195626583492834770727007837702868817221753192844077479941910659708525572921070951609274847611606208373273021417065393397699500413028460679507135994615448692626593913767382275005405711205622313062624743692356599777417362124058438418121591038946211286793001060129680179532313801934951053922809182070714195691588483265285806650620444971246469643589261211883212542140295218083439345358508821446521372524074476919380233944189898749444216583850141704768481904009756176109501938371029027265585674325922356881121354803908264450265521606268544321591455770927840454385728393709549293817902666141546171477791949019243372908237440083554728081215663557415646266428572705534295933741069775073986059619295725901786510947103564504342457400192383756139459695517144455410715875859049914964875733962946313586355006183507162689587905522845664567697152300863325975205222267864172560648275497825245663288937236576511580241492372468981922736359188711230133237120307658496090233717194026084837644525973980157445592873106225328490053214848555697508614975166340101125824873553176386994655699026924895361951315588055326885511651739382952704378367965353249299228238318430410710540441635234478676591133949073130478213801298526083129441223180939393531174940559358512913142889629279527539415732605569053152610139323828044010077322046228039789225567211926181518957628285123255147193426556798189985069136500456772608613627814495458796665845994033924507595124398172580770060918477030833604166786630825939488768561170643574002316907887578615816808498062241930128847990393447063692576395497640165792073269179611739038463787904111362990408366443649057888959255277165513879439875371212285896119196046454451018817302948618749160024239722105161051164285433042569464345889673577414281873396626521086942588758060555277859168825504920323134071138490010071796007076848901199198071345388505708967485128528597715950733884866192663448954436726729843807451721800180187200569333122951256097400254713628194417235201360427943794622941380447560730428014584713412430081429492665576060748395578324119316086639115528543398830216929221540071563551155698023089540938094621213925562977429869160937478681105369085529423284653296884731902883578503421084384302150047716558153894983466344408613457421867946434892235259969948447111998851872284578774921802152980795681391284539766598117032828375335908302365927521343932297631261624909588382944283563851951916932255817519529156408146912079626882746604664289178576405253378232896551151348730084015700552889294442490444172736637248123868156855109818695992243174392736348648043057861288072226256377111236479135252392817865372878430942598992381246139834664753508505890993173774370307846417246666573590648460506101611572045849527351940781006828491250094472305747531309141507060014230905614021633723754752917201521944582216757538447638657274954052785983675109371322997947773391499854923733917956975803427860765441816377120121992036712466264036013282154745362325057499527601699797662966101375056552093352383038300370419439122996232140712363008794906104955986103639332645755669138615283493430372355126855584750812968211744047869688852809581659194362539682880010987709440062981677961148553785565684317961374918786401691794598759665071772057319909089787988825897346033734384641035731524890064015607815531799414640051224751724471476040238663454292354439445676308775104110151629364066530773663016588049521933364417567812711702941779367196494476972488311557734974400060307050143132760404486770490240631933290005817548520998870605995665438852301598752640151512122382368365756036319454427754291747488823541151186092269771322102173391803943336687762300324784589471793044856739384028064807062693764833307022089489392045117238685156306880019407848177506671129509666918735956532523485297255057696704286263358832809645701913664420395232294215753143711334545384326298534699622063086421551844312155634076629766616407072973453776016498931263614573446501998634746275111399600611860989235169755742566496419435906023740787682908405207193063412851677588708536461116445775253183821555747812606072589829758817741389773430350605456333587443349005952006299541011016552526929011288572665674283328999683403719377536230036730212971120562137560711487424204367579242487915326510757294128524326778480919467796360811176283496839330935628254636637937621961529135603689476046845413186070819808032458503283459598756867182301642954485819337441384897044081293520051826058776785454040952716553739020370812882167828620174340296600003834510420546751273894328901948796603933421941921404411990328169568432034475167138567488389910278669894022680280172722145368251232580507897416706671535000448369691579865100364356647334882462419008438271945503709272625225375866869253241111491780142077046421109530613142815902889189870370497859471158585694792901117907614495262061254212022239885488636936758582647286850381011140362192781894541010925783205244829651260067507632864122350748388221059935606370050362268764511520092533049671677573856898712115718702675673371577077728822817242829501529877350605714767424582961823046016443432760371616761472123245042903872442315567800463451346546105471576927870491321882938782482687873867070468842488437593293575921142013205219404790753379646332231030691188179774342720875108526478225920193073980269979013098391234126741864856662636295276325179640294905099341265023891037887801628934779734881542802678018263339431145588683317309805211377521806661298975938724443490586382876144338574995498577999691303869768428846405153826462093924067085850512934673557071078224954042102124452834917521622373660394273947404690602730652815307300968109567954523209080499260558617447914450768958916018708363573152212946157934040870853696274793143910925970925815679892723140949368145633374882610154854633563299394513862350822792422024886737400802335914031188480224628232798483369399223069586430951979368582308692646999799453823127440638422684978685044308296320252190938078305857170239248613465795980997967126668394185391623461468614792655473193029372879080270548945292436897570854751630963787770704526063520022201930569972129755990658678572662826026199298607847076977714891042476274513613475643794811854188919155645664946360742720491283966422219864925835028835394960196921495455270469941097173444439031200948222570145269560822148533973253181040474761927610454770900578221145878546484123632794509229537971983261864860670945010714031747427933710007296162953499574216821957952354605954389205881582789589966242263634331520944602905929049170391126897955891191430470448546054112423767430730738184193356800773661773214403309805201348369093220650791583767850420221853926422373619396343086243054755946245134970426290991851588523799385720686373939871462414767898878033473701899231396076882405268935113259345904497255231209957415552050464130696251699281226942905634383132100178035636334761343376567476880059295869616478450191073191288111237968953291893891792573075808431334213977550462654084981810085383704650945220473065504511744863647586243515181954379819431614474891603241097166424461643416731985439633193209325871649060862906837738201241173204034584719429282147173965711801034167696321578768589886063844119973459149410444389544559629133963695997599790381284380243243673814779856019714443215645748701796027869149520363938571046214955675716364015103203904306273529636417717036582178192078749754581364950765494253533621253799224659745925358281539988557002630846239410466387163560912579021095148619227450060456291148190213366281836885730724990891575811790192910326855227647819264599155156849253771883209525338939122670273018683706178660230822520000123255085887497533930314976582671582102075011535360588576800611679954441570891319751091207408143062046531813726383864329390395337987983620435381894547428116092081409861119024939556962644361102368206744475616651249195459589143110868282744655411368665135753079465417808027731674009534624208961252035032391407220937888517018593585872524620845636797842758613886305817791798730105010170763028056425910459353787678144844597575314164736172005895662592434690429265352325948004204333093659042286937712569323220128108973533685242349964928714861383466999532012217339053743758367719784077559498011325724106101853644262405621675886448960514165627513516909289644786189628978390564750172749893832804392108901999871228039411616531121642652786946215861391352474094657253958226641902784520495172020383649449287186132610050449142025294441397999839071569216962085406255099023607031904269617328133401641418382959066119537965823175664057804085805849459708164099695791606268790356723590951191797722783771148635865204893439463335606612498676379104128622755826663626052496397611818616553036339579036002520661862566605389386312259669519897443809121176194868592481026529662656804974443929629646138623581466033345268069851905210298430497204174464545802164403360436052289641895380613922037581465871513418545393818767450024418142990534471079420040787342364112327704534761032062787371317899740093893030583300935829811651278915347478043937075798797140233933619783877675403845342852780819802349181365275143230636078273532358557539639030336849891648312062628233739412559376754679795203777304629182602828893274661241566904343905488314755000636882804107163094127621787076608576228254448020780147847293098798890153762771859519192149501996083592357254234816907226560730906887926277988300631377475283285203507052690275173261613966114917114479547172416504802246649158957015506535181742660659149490382514432430366468329809087186735415778125006517758743129858340594729954246417766346588963184005529066469731924382619671217958277258209403035337227168774991356206144196095223029460323311290879836247627913841487601871017351557393060900917959118772968040718265299308014733925020222212898627541709062046171419415241492330486635646861391883201182538234386457623556496577928602274206037391769280691321957818843076438946675461231377933561843410656219081177597562914613836235261404871146120167272563979870983724147970220297589786794644270474985001579560281856785469469560023417574117395871152274239979641925776861393983558049863885788687648686739018281192594492375588243484456911719424623819480058474137986670670051581393235255462926690982223203675846565747748746389856716621754989006543060131837333663229719329419792527688466186730972688889618856294074801286155110548746690987494396675358287883561706946729015821810839068096589665699053023107376016114924771169353309996556041517694603971986066004923357293141155277713987276476453949889838926939123444949695675132037782632360357695318508518435477032783503835296718802134997024498975037945404932082104871489380908937214631172475312733024762386458028852658676385163575624464115509835946944226306247902410335472227997447896970075758831499627496347317769864986085864789709607406413635678825141578664676600747953156440060751283212586765197983255323987535327608939141068666653230052200793183338279044231543544317028511307963843375078190714720980016248382384806762032063764506140584684247210367649182361620551658523333297758645363867416871022377408305407434182125005369775939634626914131905264120389516743406339058329647270353499958978202721042114349979812129458283121746222647283435756405344458189570177459356327026745075222574976741535945536066774609850288748938194031362123131256474280211600663169926175521292951334751815044242866359747986495379799664000832945188684693047114697188056090656586338227202729805346974471077412216243048422254396611328658758330485713800738028397099849445650642243120863636416607166104553550018092623738820997787212877512757788990946253205715172746830844923082247144032506452342672584010786792947572329052701612525942657868116192566835844463277721806508231899149015637070978974369573224015676341140157384893366044139931270235923109009643936374346001642705225337386845955350740346123494089300328663876995774340815412883830385521198633644700221188760522080009987634255029610865996059930210230399504672827873460713911781723682883411070483858120788830450131288176684972600613236330106866861532440940096416948869363208754555553826684140065547567536248584521295906552060249829042159522835344014811217714311349772792958346392164365292889559609835007675758398608452331543877827548685983677737502985986310117057219318303830310204622240872654105257853047059311916625561628174886747725175989266841062646003890496422989511002447705535118000827093763641030441436177097834277145584800052601703335061327952203946517048682209787956065888370066966739280541231251305113047344028135276813961284505424245703421417868534344226102999847420341665366865170755242845200722142138841315377444607406199019825419146442038055303377977623897634327509751348967524843399180625184897064086831686315674538615810285290605817066038334336154272839883505627621351047070758448618572730915002942225483452892047869931618256566002920478261051088019760613436199547181147835971210324688553644355910898259308324770608134466730992436711458932063732977183282133937619104156325299625058118522588061669051911235024622962765334129141682864796375424639657014090840459369493791272462499487157372245851007779419111668187068411492922570539625146150748060107840629931017304474061988277100178250888451360496817783667220478325417248605234349102936165835085241821220752101083876021255111769806297014231049512254365098095215116308162046970715590156142669650107371842693553027836429766091409258451329193991203207661001297726295926835324511809564555761600471843469179317803528515407651848250289606887419365323259471667862692346670819238375741655718690694140532689877355054529862537718738289432721266288129878450109574561693031666166438469345048437798682821066196080763085240890314715216948061572870808474742337148523515057378400599506329802527122813727320418082195378493590070365306487550100678573773517308259961089928557850523754609112562960736896314381756169151492804256919028971753485255345372289696385690132441875044669186559109749343322775306696984138127811669332022239472231314422950094324810776839877373799057162817752358652433792051392679908522109055953960373459154305734853638607062178079800391034977395933915226955218338698555372801107222829493749044644271317339359339232610419929039379749032237078895525652303263771899297780957599074193044612194733342043880668455934516455493972845511145618800491547842863480357825286785488931387048845079370251432713025660003150699189782621391249891759690463213279657559837810510450901143486751826492415064754139866257450962906838972513046589870459484182058802163823863965079097975291580080681673094294688283895424115365949515389105349059839910344643994915293905475685766960937226734306027135435261578514465195860229643998043722034078434911506340106558127518464712948061194526668643297185111126009444538039313563546372507580712565465839978280968982306625882303052823785585987987216917325239916462921260609916777179797352209024512858979470801180375947138524368584413308996674127577683831413765590869193734476281270175988103706867942036948760547487208423842846213405255802181438923184880953739946556001850521888693144308298725865421655795170751225189717615719989423444359700709765118424819065735485023643975291514593117744753391813413950322140522661047553892231239843694393203075775992670552661504556739825269122465054724830727119343729836245032818286917013108337441558335509390550422208170509264112933612825031218428569789331344294441574644646002064898858313133954914569299804607450567623734918045586981968893343759058813449764064924058663304013048517250381060728778451458447797614554958444521913989655034708816152801639161978672268077504974064018530937189384340924452051259111073963899358420823195550510410479557112259922890992305920881226643695289995103868195831455992334772205722238016632846786044169022330008978724148266304351523736456536118936989753591328710831011482506917571043241764324525346231431240276548666128795773394344533105613141776450622157262687570913994716206619152387989628938301426524070621234112077116005227269335712349726959924354075982235097831284937191688422232201725620590569808659250691705116635342160174499607664102126816485299548600074189703469263398046771757551440254775826654178191284426672747179622542075879253982821856658710679129712075035036769784656941287012648244392387244540094455227892087788556513355874373745268773893890938817105029175589454088712206792563606887328235084058161256071726953054062847353334472856949417222026755467955369997277275371590461550263337427642624295007834854046608468717403138630325290101056662598266348268073922335762622395298926934889831092398912751323610733632158017819216211417030886946243701375320223769590685745170722443907170228245942231189335396921921524878154280223214415303984227254761174247634421555189034202149519258121174359452609557485618919825116233274432362740542015022561417988038240672134805047163466746679265261692301505468728550851644964482633276556714761349369300250757876308350885737940276733844124450724775844423045084090252554861851449078475775499047780613332167491683564797160648547753901312704082979417642673672260349154577826142455173663606814188585275058960266981858693192220946927909279966904130456936927710851726632567822307258947235858242312050950576179599467445435349916963504902747680240328884817920900174321974853900281986031045821322546124695622477239633188635716708696860208725134153915068585052325144905337814547967351217258374730034874016802540159365304526736436093974137194342151134336982763728012175285736076806116652642974365278880941468466553763176424936889404431084249446831348924434201734450786226245819982112919518724683358535609561395167419896258201879207131250544429818299866266751104013123749186115850989512136404954934671712330859317550913511723413252601323291081214498988469760320243220101412023910402621966869024511903921687105239115991767424077094583285803799188342838492770729903777365016994063822172413211640054291777940872448831232216323425620355973233679874777486178515627894476966130516033947227130487773419235659421457688437110587112059703552136194402030544782744658606392142904736591049067049043662332202788967703732079266504172663516352673622698500918471790170249349261591185633683502967566969775887288949420479343337817453097170429090333109070846635197787814963377298369004482289366022443535509097423661733366467490928325217761223455426932412133712431153093255993967804072202347315150766735684426478617462682684198715939250530061661718527219028404795235643424270004786117262504969772679679971309343314567383487231632482597506760304192235617213007197457462506843779722063331895850207302431365295661319818189571937944024114452766960445508949922922687752105205466262417429681918277389876086932594367547726020343290858596072731961393765734206417533939490592880114928999582894771434243392606831443942728501572493456728039401361016207130694521979832084200765198922448574093915649118995314644398654558219095547919670436078216845624437089518014197478281725492068275602057796463381401341223985931815548499144665532304293266723926503363212927327084570907241448321498413918263571615641228332334998535917374312493379864258226190818808450366055174630223660712072053414599126076806988031825449794435032342828784465113172089813837958002950436711122087914523081220121305170046121261370092086644221144499522286708588931085761101457034841314405275834408697122503280120330368368760680867257676307704545546155635313419704742648257518397373382541585145438657678336900614514960416585493726836033418520789049508642008996473279147212710703239017058383149444598935300891952060143374114764096833123335636685095969375791789007211329679558309701602297731488273907702363900510770148315102198255334972340301402253934962236914876344220346615368272092850065011393059623925215842325882895118163204115579018593222364684281559237899899947723954608134522832622746347836319053141792031749946476159993596088612577310853075865215536898240916088304090961832848606920481785573410972544115262986529879593512146677672909135985726278621565303753543906982401878139773169919726475789394319509949995684147018009415206353746973795333104703550744155665703347124971852139978150593485798729556595884078426747525978918558845161260471219497021151602813960823020135046332937426938958584817881810148330339589389992061557367430663248633500385908667976529421778741732058218043307871101177085186496963749646384452495303130095453500429846991628038607124649170469483782063893145904155905621440718883983449378326633828005144739569519432857251142667309050229340599190061154083261224355438664483512477035788016495214780069050475809292466981763028192353499067062131881128442184224160523992399142869074998307935359455964927203941112004958109702667833494879677435555842380511507166351799373973519665464285341108077419710516341005895384318466046366699209156751236273127136845788438755678713132785570018985306323019324429317408000727694808884288684605640218182056774756938650452460586273336548234936634316339437542494739631329612034823528345611202436816210229395317664309527712224680489118836492422608231492649715930029973750702791412431634402607253826094651657063844231073963581842778668935716104117007497064568230054353747846171774002266077985742133131953282286053741820759499183548550978846001063996109365781020691797175516972969084650555428916238082110035647427376913598306886742543994068515552366648958055126571326823192448828993732172049193691330001379634059348309775040069949597179701710173704123856572839806385104639734292837387139758845154837358309052398119097811995010449847819775128867574748674554196068168683472232389750767229146890538589613318736215506081477719882750494185983017237056516724056757982778653878469648475786413751695348657259296880696483657923601090182029134174658695929232782709814028552838892030216388818597107951740829569236731355021504978308191015207401858085007655634996058943573900898512925297008771386506922077258534771438296554138416921296017105252516219979943955257885350470517512854759111870889842742540485285560387768388513590261315483207229747021994777200043930103456318677786034415498369566669318171102251898878578976767961764418505189495781139432032420592946208415332067578273723817614520440043542694372884830896463832790493109583998409041583650011575312583641844935238985133343020291883764003338917428302970530265136876402126038843249263861920040426083214076648400267479199137959277587025357281251297738157925962926576532771295305166780329609578658224034804516645442417181754684936225156919723889652250344675677204561512356610265420009702710776770999962611378666081111702493334113991163380546477860691349521473468157417271920076832402999483600543970689333484437273977058499965722629872822222417264356958090487194654116170143936230657226284848463675294045270274438655521323569917366606310957037025642952533483803369111177227445875392126335361236674450262762610232353219745784721020729521209888090684395834801398790244418420480801153469848606374733264730728158914027172842539173527607004461431641706873878936644928685742255172160187354174294278142639067675209199370738936123255708918191807350689688497409353701827767547143367043193467801681774463005330735001740450300459189109067005664750974903270837637058724453125875136033340426926199441063033264494362257899461975904415846318251799395320211826774112143871118815829762889568771223411822255770150900955553761995996896243761775186767900792988714827379171267773519136991918563388504174416431477764557645689067547988232171842211812349685913259519849205829660278450185426938602587777714562017541354731466108868667236875947474568951673360389690925841447682912254711490690554642205829073399428669803234387746513102646358106914056535343092416831274108549976134676490210715692497475010009531969639907503985446034427326090758774306877872875423185050137663277540257016791420259039921690689248914456619350458583824783823046880838564062281253731206512443294184247563736935089185027498236207532636690332415023005931745366573514053193588068000177168278663703842909255103255433518278301586273521968313669246890678098445789802349546737842084055462419667075121980636226386619653675614787176795537622074594594066356959345039823706398759188805294940630884061967559785831704241019286570877443781332177268268675206668311232743852486984820944848682046444517703721417754233821926508460334711710864563239413767169477276143501767154194476004144007864382328585718699956124798520942345021871685145829689288803244262076559378925467659508188971572841915063908114791614659460975521192617995304168592959372558262318395601848329923319443147797815385886615449834090057060480556855848781592204693148078232016177198126307147697481970894322189263159705067641682599061506282929735663164178327663700771240957164932607940153169561490921256133209886466280120025913957789391473534016143274086889673209909408913093600342871973275025783946201355240370407305547988780097075933095538970471551080043533807081183216621291211856506798521828241636645274055263266076072433935636975691341388342271262395507570907825855726825027662772530225265163761183936560298657628245819119689157431264342248711424524072813511357302595000812583948047858395080516774709838863437109400836488386579213480623491182169557906882066642036953854780143910245586086179617521052135032665452209305702899081982302940243845566010395754410157825804551704154649978372821594850083186156830176627415834571232211294695191653858381833865974734854364560053218228757978554703754193941029132814008581464907725163336559587513061292821599455843534248254079679462852529879057614876120673713524835611259362912489493598078156277875598977656245809132451763212340961295007904338864699872896338743247345443571046219771302052456809562725045236117934923537653854879722009293322728633449062063358759349005816175756244481912065043618142820468350563322891159636359632124078383011455107383418772765110857685157603358628072826067334144481060349430048859038241222718210356749647228152320566566385741247771824992858414767610763673987938206710698120580785785708796382544966126370404109886783682894164455524576161898885566750654185132024898278399614607731413504334851152929092904795040519552919661279174853693786138564137487448867856059456435738866909624480000532729498603391352994515772664467782291544917868846820644837383422515398104238853645564319956015255874460251154623920588049521748733663763758039709723980936165339736321211980972898236998572735469602953135454054239045723980407055921141376614672383220077229054214148646614665655620130956518704352657549476731964258108665659356641288635817665655670935493598063621150938877470829363072206569546840796405271101069811675404502572831528321396023055416745443451099546924803115252775673111388486547834561202995900178616292229211100913139251141974728099868318084211434599039673856691267963304245649515315919391781658148488407114324073661553941271101179936682411516686362131382396197344910028870353798150812084353732585542207261649305857757388195582970708203891322085424687417682556728403423715695779408561064140828298267028509209280302108038267839997760867945998340051209899059436719853342965858043098118823409377577309355762706716647986717129946756727647152227569754878686049530786232904378135456905310485701289673126091044190065994903869596862808269543241183449201601272844121065569202035909232025067563973346951026577278121231631263058250292563023095590038797972146268671245944890114142675769451455371453042368804982755911419708598809256875732651854471894657027481127210622767272008333361415777525544481695980901196935694381247623902736736192073164864767978157325605219106601954582646864352424275984655771104868512603229089106082730445008445494473585898702865974522721534455806317726631006175769850725520712772654812659504916782946425829256420093867657489878508803421034086824739217106978229210020067016996745945645896186876208521205428583910673541867335940048397851554173677332533651317201821067736415460532412692006555326674269391739759464943517280643698238704720490986805166953822733907874000610223231787512058096252278106522012029492964792322047157262992473378975048603128241711680784630359529459616405900295466677192429292418422680273802859608859231544206679655184006755163164488892927147907375830089839343548198375418517045150237251256005072078453342315382340649542130734340783638975676481517353818218788731732432287166903119680016418955523147860119539574645040036136772722566794496717092415028550643195170572318313783794231645358079224120411812161501976228793215349660576357676141635614930531196677376034289958748395379934296249963597401518015267551534302404080273619782188247201898102990414350430112488803180939706584786392942430637080326533426357491901805510824081473260476726807978031330441468637989174826848518477792859389570509998944818451743860606731035027075885318768310378443803841123132077698323381360123079718644524763711956969039386335001039396131484155931926410249834732232264394339653834541619990945705817987492943068738789064341532936686387811077287930650483286760464426003324946884016594672678808674278557906473007220722796212753803037963957949111901774923673186181388008540985844725603126710082136980246854206794038345292339884709516391968346134106892539648129089814521163297449244512302937869803017538305665224841106183703217539729513209938205504656388890268059669900805091306775882479867370673866648268193309846490220939079786547553720342795129671740248480964984033627974985468832964644276991526749593213812764472693086423975933621794774702160327622337422779301953214967955043621274941211417846852518792389130731996861176171992280751064353691757233738684845908274267964254722937894741995475769330762633160834466591478191432484162262688539990385076611769918950364882726507286342215307746652271932121343137638375466414584576990801720359939703740598806353148091099824267689281209382491209847106590352995605309824975866046470294621169130651828989347689709730592118459888155356386997780933846759672363138638081515294480629287696825193112172230270369455618036431765878374999183801518390495003802553420085746432467166068194945176188303300135654460430399347905868114046595279263977834454120703567874840545133556805603887396479873926738758825265344717074030961820336549525617038710175427605616866892575279840984048138918403624812959928838918051204182193628207442306110293748268205266474141429093873471169249878049602077677890979294799834416857772672197246947229744880025338016294251603735212929801173721181971036854982733747834504378011920850941896222555375397493767345359279018195370496237496158419186638457519071002639461122795006187753406895578469904105843723156302890789440401110925767383187424466183142607305221745736057053454434625855515135435283035604737766211223401329409476269904384043571780010495461317025774514726572871298834735710315356583184487725798481024924670222351182971356219268040429368674479430647527638586601268168295438802569365550038272084348752854749251428892073572327740264344014649215806709611803899642499403992713275734724565028401130882380744883002608253183172109519549678973831657187622198354652761745160971112368120315243684727951577819967957609378581030169726565078374988863167058211636609405295372057709925431585273511835019020480932867630880223637537847442863301028045121295929680322367151323999940808564887053412865278092228400893572575974262304103583370178819140456300848401277497354024075382499670320467218601089122735199097394021149394657001398992024178872891318971273479314099659703134630591149226168049869182528662257271088813226941963683935423163013894088462585480049420235773594458847443775619963211824047624903919035651539336134536409904841031886829399095660109613749241460473895667227645566816165283058462399269764157582195054847755512676345183746846246941656298216686992175904555899696462661924706195663301599335016021326189007452032681252985059879852430496496398703697998182206208947688229214854962282850471174006847564196200904723577009609689693423516045342324932530361255892381508600516180172779153758478531957447324188477197841720479307736724956745493446765389252256313064665331435795427024070087020200506246713411670557736058485079495749397973577936770872022441912921665451498785602544694513259354023173150729625845829370848159635300656411285172246664895845659587807175469950275936881378336389355068818860568035596737788632942131907575959328361740544713349908754548409659163798597140267579879980631606267365088373187715020389906191839762795445443122621241985946065540649512081199346875829735032861739440209442776108202003387920615159772426056344628117109371923526172743593220693067893303192161974534175687896655207846286425102641461539349871033582438996206088047872579667686205630118290725762732334999066183637749743177048053197628221067818463245955856170817360061331790998183497277748516172433083771031663411805674983990619298481959040941780477680078672932115518566014898011123082399975889560071362164115539327837172329231551408416043294019708391014871084599058073361787077553436764500663232796262480481340394295397847853782157966988381051231129983026937227267934475009599506568664923330838314469201538111452125175721688468057213319698548266746744383987476224652091459971821457766873700767775188550606280066272157073737775134009224807464024081928680432958336717032353344749539728474319504926923809435940223684452963199196980666997862094777238620636127757434348528351694858282771097585850565040396092299508619622861498531646696964639537759040324130054292912212964108962874277358450051214830889113029601851270210512690573136630701616312746099165848894387059498028444873606302761732736496244496501864287702135209463472735868032118347995319382865625469117027410651493890818976445542806541675700987857846544623182390476914840128349172857768858857396634595519016567600465570770459842687273249509040857045243917914411600323580531123159829517818302767679067434860628925847890291767122384400038044002449942641807463189011581414453893188335315020675026487910936066488738322702062054045716025350259619520951869439698324412099415147862796020304247035792760830455981197984066061234819328191211733288286051334692514629550677086851757168440284932986064504302639370410237754252999999366369911908002954889085257099763921397965330002351498222656407678372606193772402255862932331435257619102826255744608864841969616781249075797821316152696094391877801264643157455514378656992178178465798118239243469813827993853926921385347211030678357428745059721007146743162283093331329659175885987361417898049019830963499526337980842966228973405152337312151361312088956627072096105579914725991833839997527520158403473783484818909533811191563904901183664941589943358326185725614790570955139594707093721831589719430322457469866632415623102489977305889959703265974302158933947631550330417158813307787059717403487604531913535162538266975861445279268466436695607021014474184398452679956280395491894907362532990003898996879439713958447648193133496410035508580641525749068759321051534197197281860966077970244659789402657467136509095406513316395457850280119089504004028600336777859258538850787102093194354107945354214630933982474467987938224506186995189790349587851407754751225871091406598926385424519821115638632507130171994119248460054523966005690368377028896748398154598731267736372329646789545630592558100197919622626826321386109395399980666470235483453698702406662836653958997078266789448788126830404503542578504621619804219213478174696449999506024816132691475174887338618886648738924492220611403055428905547997993384510080699026731383180728506884041314541612717075391528652360561651745386807137125351386944382360870909492224166327794965117221423268689194410870877525103613235690582145300533230449943558006422101006725183331040600067744607639040937464595579596164307402592810029552512171733931372665413231725184433779469978365501416990490375920273206323365964765812750999295262359078308250734371110002094626695547971124295927469423835082584071903690426710280199000438627797106696011659831473583316794873636387442659306075546144002685285058032087705630040432026821147016456783347582765485058674569358946384082893876909761850431527469104244258949797050631278865099524878260550698380499116145351684736123517621695588166491061185687132421847611154606618226634097977930133989029858162365270929442960061909589447256149480502428435812409662462877453529588336842079426027347931589791719713795537895780027561963429379532572072777955758886264876854521988010036758627988046847026245591659453146751613879091438696121734589290316257905747226802531800210802874282573065108543260982055099361483724305838644465242981408970510218672597762884606520307330763025820287398623673880269975158610066735228000043848727061386930701897863044233053631518901349583080871187968545832259586199947145468471682263503269762280693137458308604082223564058210454203103496441163062784064163526223396658893076719482668666143729329103661311744927219662865141579435444599752984499184789047490698082613167581267424784575649330718301690254261269380328209250606931384803339827468189195800922930101794563823901118989624751192862374137635301088132826715013857501721888184570151384806611742709643599226833916991727563039719705878679161997062753108036502395402047273809828224958877904787751333211363420245552432835067628485722266422029752342384424490390474093777539837813960878716435766166947863013550490503954392263150279921697793601331401447818108392807642116909610479083737477867348514061405957284301211588799199992621294163776553679737372508419731155528225153598075034967293266947980881181218331153164421881123609001994402715827180500087447603523807570252793590871015231387033968410335977550458996063314168081085786259155858478582383916909263353718277789295754058913256337006474793036877334666059120263113450571997847575548545771733118447239691457355003655264327154114235573807473903670667657999724415069093498450855224411849138656869986517690296390883656586094314286267054907332007677276369589255850626205202571018507954531501093311416834268357023278283230984929519748762902613092021368153480525119216422892846373182346745131096084238453567708922846271952297173461330111335567106753943796542519535162239910251518484825951420993950736764910712921576020678340999372081397655823609781247883007517754547615115022221839717980372074026767227102486414260226150851154969090800600988595980932001484087919149343742043328302583258982956242782616539507477202147659308779420848587668344543272886185077554882578386986261147566663309328230299604844475011379417818576837650310993147350624267882467040647860544905557855496351866459948818538528582223907222491111164968223366754858349210995884551387857387613573408843114606214129580934035325264997873909476773242683510751059899488463627882653579232051748594649793892114881053832226810512523211344882631731175843890994795822935184451438147229657576175951265180162141515235077622798543902322146907155886025996866586263183123508786579875919283074376858076752810496033884061627858797393748096962141008641786730170257816157306157654067960832309754708607181775989349411253663710016356420635445357576094024769330606356623051619933131268977951113262297180699780281162911967350531754880483609228457586050347639456193422686394842247835483767655330020757326222134993925987463557527909388848340621704473024620373256378596751171176826567757530457815037257170237357603813216596302566173865830764903756261414182645567436566337443627817927302902767426564142440931405436531580200495708221518693109394797670683420004210309523349160455263823294104898532874924042430099573623780892792803957527381630842765591148601835730642678650176648486467880869272232027569054660284152519712410391461748747367965337203782015263865685753335672591892038069363100360378071044223412163585532953451845267509283533700890233564500777275720639226773797713175257530703243037183952021105401227485618267077114054305221300797666218802318318636605966748113500677451959672178185391811595092262422861050305450177599391476465429238554525470700062561095964753234186336288932067675311187843125355010544464668524068325619046630438804402122393418422783451328795057784331395182448960203948008704246415622738098987916458091873858604970203539810646348643050979170997781161768660470277543497101900548649855438621989387696040107282845842205453593410132511883015350151653966082570892315112298392410364319363151364166645067938667703610495242544502505603362024911424288146870386567758421833862314200877336664348152213816092648239712451140347241117773665692549903118997653210953103551181923209554188590958666210267052421797724631062848314365119303493714245074395886425361413108673925337207755735109650530736479715003903399913112558418175700766613593130435755032532988992848230806025659631706222149576612706150292163538982073509501569349556020627002095149201087677905940044393447953162449468615633543161736359355252593694834327724833957785568997254863004189229802881163019622398131867024402055915881407159740150402701864033847600177091277019396251426269479362462892595707015925179318743664437113689154310053882580615526174880974024737403631835007899494165685608656871880232489142877771662055774990398002986600470458107505074753318424110423508631688562897306933248912499908626235692260219604159238574936540825670449794353504783232455389503613321142792386981923483298514188965425426240641594810649252391965339495897784032788714266935912377349920398912340045913223264489049332032269845098537705854200304192386273461224539234927862372930506053602023539299996718719013515791430381143991987482493890949861144318328198984010515314744229817498705489030783133135043438818223668726990559392488849500530979028558303265486338707781305590695539938905932318669540358465574312517441235745485862695727369241530424879736452046455987915923420531791046348334783504650781773442877566591664376061296541005136034657926232535892140540553870481354307501181269615073789206243510230213014769746127829917485523550832857421910831360554140944215644900080866231959502547940330485359275362948243347722075573625913620881931468425920141169786815103411775194021117650987519497832497683550731650192680679833297873190690452988721161209836469914732553740887611779963117105327507400085294983972630958849584412127562047523751666813649308073749405370710983164353240277738184699618210114675924516584216797943677703160559900119926148186454910902994217913662566368801154297414684831217396159702704318050765967314384160906489918322052737767327549848547579730879700819125376573706460048590440775329214959978565698403327261898727133680804613968662217415738781767635653822898402148949839596117999522145247830799459315308187591365210331733272758846948911375059209847878044349369825102927612227741910883036215340776893573082882438224819326133311088485389537934451297205572782596647354507435702133965567904482410671894484313450284164353585984677290434649167431549978795385162761987272439521144706743137515467148904933612049075702448069279951405218453949051184592130851279043203872499559846105882347557326403957007306321362457748972863210176284150617120988828535358017234634114876296598726415576371527861739990098461793296481307913454109788158171533276864251178805711168460426516524623464605308508342110595905583938758888341371417642758723535873693583881191594303548745231390791955698583946502486646889187980078970739193481007581670535375205070006843656329343438139801998938112054477388424720223905953710061517563133079956698268363934220117290944627140912155220756130179049376709784948111964467318144066087005124494636168234109240303586918844415565566990527853036380905533857500117527147702267916471592676282236393695376272257970022743754757391181065098483933060545137997271502684809403716262791273441822862168262869647767776484740696076286261257356031284372439547419542270278679900303597900682229110100367219508569300418578819351726254105204901272442397492186031926304972474704476964388433136507887412270935084771895112173928389793652367078076153962872945853350188360299937820749492384699517836203392777037508633569155484715053687138357957332663905929631464977346928004876029852031702876264781702753973905553083684024978004327194834314191880445914674832311532708097088532284036095293813327135358873634628653009750495363612749788210342161677563438043700611653240873572760675176904295984035359474578237754092819344309813561095165542139613973769981197263404462812961752197580570828784050129844859564596638191770985523935153060063770651734000677594592848039240845280597751227589161079207980669120154940369770532016235622671502048051695381416446890735881293562303713166994305873022766505834912315060107047463039163572833563096908526104447390888236542174723716278442316403327717409448122411249354662029362819621047009889791117934613887067935042725647493562183217269173208729570594311612016458314997331537290113544371169498768548926359697399712038848208682377009225932780906405015539338311322545574888571456142299424144953438891948761626048252598099718147079594260019175043903887156679860834730977085162567319833263804447717272127008279391213569631565028542454760819639647542864843334273558312311413965590947112686229087873632267611566925867937499949799674697544842721445386108050657888469242929451109350889437661423618175250438756229290168362357262361895984739134055742432357574013784784768251504329993871284780001922643836205382757395835500907556959065150362127377140013463748413248071520848580162798431705445722440610797948702392456973823585051605908397262729942882057930557833098795035925375822345636214395551895461485636087737956430200066938256830036012944232585410145842500976386598897529508273963307390232304699331444803362579290251757948874748657119588753784392670078140944947879415567732537103612903884694812845961074723826534204138985852315443298199974363376078047430739054574559499982319671568630174209520452057046757536040486564702176437064258610712741678812428489093183189847373147147674822778225487181974675044952287803981636093850742069822087897480384379383478107971651263541253465092958046515586636595552679671928538049418881805959347112160925251814709625368251390333579042422862376637784421236698233217692544959763595039059365790441219722851737035521974080553890882828917457461256696005681301490983690749367256885637631032987208940488902477981184810298758807302655700932520870614752541249571679233586505598893731095437158590939731916043827188225771042750663033118789865161845770115715867389177080276924486521411822017746338139765452194751242399648479840621287332632812093747665601060058455020368473988069808102900070609320998534888225489841495286055591007508620332238996161374339242572793386427286620092661482982141727298865817529587227958247028206963763255619050062737347816985335873066569741358190351252308738025066941272826482842207423346848300487228349542789513964606158872508507419216433241183237195944288900552037277213055989069669097727915509635984335022832640075965866151560628718050516362032666194729550837721950613345300392571697973245048999134410525938499173394092061667767414628585557294060906175788111942369821351206906599587011336382971091401998421848369604649096270061890047926210949583758932526754550937343316599961767539189591887042936303909054893984762313626647039952879112011150724468678868306455623249526679568200290519666303277367930874222196739480453634940052469869467620004183300483127962245587087083782470899251755086309712127390337117874018503958515307946939335369252052401346364515870178838719633150076460102308884320204485491083177704349295060870658967744697652231005758353190258375040559091187286938752155355502046688951642485769972273006138876893127425466483453015706958333816202187989214188642193658570794547774317458849859757351769822050302195464573411776407193959388144694160681169829227747743997415742678101916865978433001145238487745376047333460614990884451317862366956350860003005518319851113536067355554709995596498341500450014191259841158685759786831047854422068607485943843768736424726650774994319857921101448825245443250843275243813435901863479166826238080082610542049077688686804060259528370306943455638040858208427383520629426898169848408716756745704471875927073971910400545120094806997975267693010870174657929028308117641673752649693487329416637443990387198654115498065872424383080747815821886044628160346154121321933922654942095891508654590834857996665984135929533234007094206979664582310161642899418047803537081221150031648365555236857510661988074317514857778046578413264263223048754448271918189216851586608760469684428107457905174166361800084220944832859822218636335480000417093053956885853190291781103600494836245251677932081857792283119262659084934312336670708104756635639692691554754424357571934024548414971320951979131189327707012855924091647666394548127597219615816675450529107708951356814884938759196052849517428317372940472641083740636342356000270725357339567004314475268709842943416034093887027408418701085164698966050260618270854508022131451171502658725992658699203085093110793527867161523347122240171517177263298343938700036566616150323029282031634849885633941521007653115712177405332618898065786242281843320271627879914061327846320993335954113037335522511380656442057935934838663948012984127156766762452227935306797372786523669628652297944226328253118578080133791832197725510681502331490011477610432126696880028690087823537136921982271565514752018979275775495185550120305593858518017056108652490181805410094674107751394201179910248964665334502614460615649213609302976738946216915580788671429221570966812806780836887368296043616968687624517964447397247973612781062319430587208518093493479158104832070865660506168538571080828418546070848290666762690749626950075109244366104844078537030480276934251065183654403245667584834945427099302516006485341217731037066989249568442580888971299381643951226515065362017157298992750633716948263324623800487249186023397394957218674200317044516331754792973154223880517893858499403729729521596014844759627763432653699432622678685962205538256604341057579871097859937663261117470952281244866775546861598627244522126636113497900506643010304856396372563625658145669041673051366476756978457929139054624713618770196472678212274395127199906848602330134944337119878758519364862458384296442546445623624405508663540903939529673283719244570332780074062817443953453947312823364235872360935488763224484242080354032441071639765930251803931694254650437396783017722601144529464844450282313384584868338501021280375172955835754876895735308525802368823962424251009192746926903509497109756927472756115102108285763282964586820011207712049198983818363767401284063179465131565244460096020899993788729685778812626697206937417516669983685561280239563751003152248731941194620040283617800020467262596166707865307111071039539777160209035880923220836532523403898137893552885045210179678262508881261640202377159884313501355314282730548965390972498615352134334430746887901907091365029444844860994685561732781621298299874324309552158527130488543336898975769639828939175210942391563195189385869325351059610607384996844614286462886635584804073999202613297026834528019948365986007963373161517435100621025762730344547768346278194753711077222877517609226333731111589817512771231397095376867229803415402148892220274515869896370178361472658098568442271092642399656212468970216250866478007807418490572584465966056775046206463513254527245837417871637909289483421650230842587669931739007637487521546658480484083043463099913081672331214751314636880296276584171675746006811293062119113912846453144296099448511283706278473464451397377684948261016632944303080799119517893895381165346471378827945562371443748516972394946508113206177974197736757110406908867406560065991645542609960662368926691710375871722709200455717084702675450358983597176402856185858999290895071137843512177306283957820784328827750520357189328930383392708184378399994187208999187008077544976198051181278538524518439561082737943600963517628745731010426753140791927322454831094544912796853666146739134674424453070538006449022980808790442409344070053943157883884231695494963989734252611451432217042221845670937037048277602002515589037581570969893886105760868240290963539841784934444184269501130862486115357391250032121027533127854009702853765697609045668526040929647114564331946175000294452763164035221265693676659673226640102367662796515133460300105565758198770859972762450866069099702333966655143857699051464274587859182406266615732080813835634159970253834558085410931544636087917883930901152012487131805928406206198224565327123789614060551700133295182067050793421018940225924050485779308074261006151055623432346303757217469728394923049818054577969769961400731636795124944794113734814192898462337982212924474884914657920877233089154212442502377881923641979750734684144549516995697092727294698951455283598807138339240437447023590866614430341658920181900905495495866313306095684945680155599034489592428800155202984455349678732162575189082558926994233790929236474777554796636925786174479705708828593976108902133669017718824298707319848160133350913593284390595288948219963650926330902599912071983128912475305139211192253235870913908951767042169367771858813312017612142487563765145279689430802348015991929815079409497715356327744375042718896706774463322788278429196683817409859240304519594692596785009750907916039586825695885449922767164911608235493968584711238066188750633492596929146456719348739056139700494721359713553456575678335392101095339053505849555775953779206640223452310374575062843222765916635650244028847519681762696884333826623671998964796317770290175102328710077522458346128106317473453600434795953039250469060983569136386241943622144693977073502379942517334062625733963076722000309039278692273664141641191274492826842707282629862771192765742669823602993114837153767601352673078816065132533101108430762492116802636678789593424181145664105028830988931078530421784419919357572468460444939304803925962721979626574846408208744876743316619620648771065844566379654494082066561845979485739938627369357042145236311213454779893840836135311605529187510068538252501340328932947795575702091208065209699517425332935428395639143693849937934032520864692262897239911174221226246915371841677772702408015186478651715718680407486299664066271155335633409051782200018636444168599132634141824110568525666432881098249967131715134054061216723904141965131658290369282327593274901358254725924684145130604476690656764078891571692043693962051359164143600492187431096385376441787888696668169893345656617010185578326479938296524977135100190572995430078925529575103300949930153060995269310781691487886855438590774069670872985365222819820608300692201382011137443908071934178587143220828423085779392996984685736619610736174284726641586992135730517903312608115492465291029460372935617228123796148208950039957138182947171362839488956933468811319301256787803695305874067790637886743339091860371325024620822686308690146545176777556663976956144931756367746874196281094102181818923220004616728833780868884154051995770552957034316830987468863887383661345419523402169338198187061136098444501163188243061983970698996550843087574367204982552523900810443673073547545647855404613639513190452140816459373749481970594539417998981783553626985971929670712114899164082367147607504664531297899762487566390738652398395239644430356611057438429164760147102317083901594171465701267272741342935590657546988268890554699363673045163229044402835884757067139367242288491748723815919495751202142162299869948870546532333058425561872743078579192879194402487171503590620827875541555071174067545247243285512607910040537426563648395813170839618838844526725580388824551342735410147883568896980237683467517706068908245263543025671717355398233048232482852792021397489023607372448036877859026442742134428778612385332365686914527096306522962327923579430638010882843219398733768671246328039112096097752434836565343495904653938887088307332310217069862440262016807124258239761029531771438558116558232204821495837949307183151505888082420508782211970966961184016620207077449069789850284086464176462648111612506959822271645198768034154492300788290069655786071706978930450999246694415680630968091014354565883853336817906142668684369505826252196632755118991738794508920390871550224562400050324635701499434876662836260503337447085729079723809529548542373624101189459790088485694436678878809471031858181534731071344130187508230523466332373666783412321582491603423532857745472744990977153287897140230592739298548513289090355916636808023637619157559839490496147028632553576228547283990162959848168486129000501798756547056326635429154972049219838686799996866439452636127006622189341609682139166224139645569142444348707112915178213577094219730360027656233415492794040163605783010225575731456393144889506555538437079281833279055963568168522614423012911572903734801380388397138238405187655968761171025104016410423037596458572618379192943430525568377381863421693046610241706280004978708621425612178340769051226857574206211506710446632200444598682406132872725879235142860997875253456401694671225038216224049380753561149399589988155782886543641012033119428198014585601729468422910451596240919243506153481918496660819807949397317072254037674973823074282923336966314279447720019904221591516487077163686625107632750766832626690009446528596328915836545666294164047293019672530650063875721658695655091557113737910708083680105965724778634918130155206164670969813778212627524337806056084338999161681228028553644105871377524567174381247500521092207233701147571578038446104598374029961338323630783623762631042158671696966969359503679146280599863172812170781414591042614251482698784473845831387746900770928338388375444385993690499499878798235350429352893226901549389561034862912863046901716237444771607826504683927540286183485777453596729972251548559047612379371132193550644803067744725501059097033243344214868513795392642884739532134474160499156801253300987764078781498860033317060229609261943431556087833980748487377397851585701681782269350782938595173044266767939163517035971837883406923181298311783356864665659424065769582006932237684289341325158377414828610488781842999609978723630446850796999175134894095483147054921520251575531320149330572753661395500423976004646518021212825721764962854954395504738650539585532626047718136091044886244982439477152340811494095089285182754002782322250018600220677958088949059244521275923130325490747185789207646929049611587104490841171766416175010463196514823459084424143302884829789221659015580786550692015501199341218978112783696426533399187861082047495324842964748653535594158282679610674087458505719995796007163444356139129326046766240291562061213618064942776212822148036918299672945451394190744872256877463856020820093187169545945674414718753494254778955684881449915598944862780571741805704583342809387769109634503999488204662488274761386232231835999938683919209553651607823836040333512924135457726701883646734388357293514317482389908417184100866123084324599938020799759950040310026662091131889298542491340832134872131910297754417628409104945369803922433953538332238307428648056450460285308368442845225814532838295709793564814419639068027953121904784284514282698309684743225599315573014724333622442341764060560019448419592378023594596820575894714514615984535935316691397789432045122647099763898657805971821377741717059339018657958396916014668100216578816587487354867308853521759241633044057116844715575376468299080776487652777899904544739638847468323865259342849373117623434951612937465283046708248111922240348315074603238311503626334397061781738637131823988306645046427650922404870386173023625078647278553086490666344317989615787880375899742766308293222746148029936003813845557757662247769664262566191364814749547486629755990826665297745323387221585498135186677340713164398987274618690498129203695207356448795152419937118315728901430577063992734733646487438975033867217007702973580130635322574542952545864832438506517084367353943815687193311067980836153309418701590164681167245453299441913383562331546455286633755361864710123615001836198161164042994880407602954253596222179812839543883328117702720964070743686176691950981525635469544604915155454443433826452535986853854915713716879244115156636099424754661589423756084922097916601354224421242707231433023726677786494412558476613963498447208857745008572466124011505304980089838366232992038537460457432602714964493242105897652203930923154108486904466492439527887111917263655397246318441684281200066016580921331074016226243433727705694133521126319047288894741687693539336695595197303385818278451634281876865803700283398528855685738426253572845696865251050191967420021609241483071731255043255738840753798795480853523154004905907400669622177502724435418998087874685827687577632945518269999013632601889698172580521269657533600251069822916184092743028784465217605836604480341513731581469285201423676211265692631727833903652652313118454193097646510968176778965629875711749613608818476665950910617564347830814845747047170112454324336735806978132376934372669440233579215249718836227750112993046281134832007302824723246273996007861428649466596736992189559361048195875055180543197227099818487706695499193779887372078858703945055912280987179810501223245815031154622733558664681420461374984734914283788681389125264162383690925968387804930787647515060302704280743240567457876342226297698660318756803219816605037397365902434697770009949343881024694086748999511766302662954015266774203766328576023598223402289377519286974070679720613653972037522210499919496885266086159181455423507293697191379306124658317056051389888994425066400763987632299527963258504396734917457261919707070808915618112380007368798934778258234099743478365774468145430810742942020380157597636438713825962226550677261100747854080092398178559213316871960316891916940441366498986286179676449505380845720600261739055340439742994105018947992325757179633618597062276080385843127736369171817687321924997141253389925967314207881200002728506938445395224053888963863654592533859881558605157162642823873537353301422419041111046274017417992851936185327747626721518601095349265298778953058489013654599554515580398827860851087446056444510449716271715608823974329932553461000937756487638903319387886583590728114843439240710522955012991822302677347831805056597236883078525393614509169577027822420196487212204598768338284126666654240747931196228037204554624749831914820560047428893144842341750901784994733550973395372567332246743027409869297333670569665612616200524985294388379634589925253812559940329770461500109773568148178230761986661097907766429516244990252682298216629800372381485945559861049254670842415423990998105793238758920907267280066371938165899361236226033684496858238269412745259860732632783163488776853827666320581633999652554245341353423594332392998400471713122140531755087101240976565687203052515618461085961475980515284660678690679164192184732694620466832747155912717400647043910559027203790435900580859139113641338993983631403319654279543599267707655748284191290883152936299781847689016782919759502171591770969910166566480001733799526895696067289626727510847315577095811667083123970256417660733155832701067455976088567768491121653685342798545130692489585040141148408821051418974173014518416122896216713194129857792640146034288193408994328883683835750443375317334452109873201403950788931068516497110813013922696834678070739020032543082149069411305231879574039790003701603113346289192703894821235181453371190739117221349519410362821274756205090490313366414476184017555240775821612855384887710639927425818143753007461234339176714666011998361985207126316081629127966872737494300356182302497701144776416727455606630156276884864291317348626079599464043110003578596402066386687466888489982589917108448162674906492215716686261689461839088801177467823834415062204936573321368600361744097971681489301704455442647802284283116433125369543039419808868729205586761654999795163567297635219580190635335815385753354483067102349034241410218327437031418023220919432176999711906025561740538001282356359329925697421444640952205769057871268157137792634699326802976708801205704340925355705957969653449054183738858035910655504459585547801514444996629085523531302786365413942924996582520111272422766473478601841709567663647024641161993997071998360802769634316022298388794423172229285861797931377456735440918273997207681649363107732427538937910185746752010773985171697065579152368813906284213532287336124575473980234116326745513265665179621916873596978388343258842169399348938810681130073762206275315696111956244494925792343095385624715429199713512007280392166573022596174877717541982429376623744381128411031496894765630460809828261073880551143243398645574951548160899358123647959441833184981019396192369139553296290505123326687259780388515668782654299327633958846697895913531653311099238804372120228111121577787645699343192347194056140913316638135432550622639331747945172281579013729107639254215927616180208893580508798296304795601100527796070985673308245255526218652400075160333992036660669216646666749986864607208890225520348013015839527796331914474053268908134928843551369530073267022037013462413491727156466005156270102098642736038842863473377574063571005548434866364118852616533936688523358566487512464651897545197800985693921470403322694743861140359297195313416546273906398204487600904489287949580203851475630066006183586427881287690255764255297560700737077164891872716692327998901456147809497738346688474672824648381654893215571766635459182284092566654022927384408910529280811540260535043590518691050703562349847953447195078661479646617008629281103435629321285413726709057032348506268447550419859335846768603196789407645840872385054562893760372098095903443359495364593697847475880772201865293428753687542212187454878472779239300554830535138404528916322082115085734815444860563210311232280617763435759451462957628361223115648910632956918075599442638492540730355347441104696230616572162997909284704666973242470742779932272428869970646950705954561206845652233086883561172474360901328975522293953904819229131757800907912464445351223975288612836351121500056602703308784520657444860590060139023416742989290266753773805831497490423099712000014203783264957718819998381496280143788165991479285481829578861603298754414657660062223902194254966813638755873132669796585712225460419947192291870091428126412414362442367376840662937794092842867647795438172117000034670480122332180521721363328481823929429163549543203346980338657942795635257536473185581319436644590975015457144264611553061268256844891343032472185892997016707208042337803781719560883967445018305499818460257941069561694386075503122529334593756089991010346868341714332313256871083083347016028778163636430001049282181290266045410268838820414503627117822555702211690626370767163029674468419874776810607507501263060598087589047510511085566479679407269375693390485625529392759115106691391505017661128124374852655065109077892019498600462158329765554910877336389885917513089844805029934328008987217264300760387685403886587855674224573783283663564697719793966893768018818410342807253563229089198008438850831910737961681123774761681888197604883216968796027646901683561873685639992036490201529473084754521898623644496304825872459016315074525581507027607561064860405818323539217070886003238960322860439449376241060269938866672214275213151575787502972841100757279956773092098543879855954003028062747052708058626753663684428730570646269076285640505754279307136108889880619034533060813900146190477890829980804214122917461907716776989785222168502576337574506276061471987243068334425798295781762656746131003848131509967003722232801663630662867575422376982072264987003503155409625977576679936001173750899809074153872404003484137766757950727041902132559091018950874958781082232592760375540286024149452328285266956915284356670207046625367397382570170241852555185097698915567343833368157977771502132874608664851124149360958189768700106995371981731930055052513284676778350469347006767704129620613777989437337428526742597927516076718452009354306029963539225466718124516451264976336383649468930578993568849637915930059136267317397138602942658510464168133039857341711276398886370772265194206354685647278057544445665524446347670281510621404417237449769610508285666143609498338224955952356154191560021384391215365925960411049463516478300706573222843208120628217381937133224878038669956380891817846812583268301887345984193197635417599384154769460928430234499007598833741816928385590594077287517796411772918314621444842685227526706127988927167457918772357775744348105818843379151298788870928893288230937430320316319997453976231376059530047408668111054590797299825438681443573443350814876120687640948072830837144039836773551952256352151262755324543986689528442342301173240911285729016495838003125219190534899643579845458148411316139843092443316500120691300602431887428939748604624336858000783903922935210995372453443227183988445789597841672001145981584436858867056426362460481100783051265334475960197876059285298739404840150573728461246377993411960785913224129253217986845463402311334154699200031373510709809474937581223712591776993680157323172059694286947527260877710208154679318210842296678090951185538156553735806881718692458468825765751634089504363406998218220271805924046249940112596985907377333227190168932684712181479324305008082092745517710431713203552593036845205150070327042491566264670263731606564178151081519908682551139162258655352358899814327285413465752679217973187954898129926914928311589599291567002188860568487421108050942280232038441571034771290269931304609751177972837478320667978003123841806301485603195685908700739162029516467946214366338549466194127167120992217942365799034070505930223132370681383777672453028892056165916370763422383130896704103279518196934048795017664946733515778212502122952022459631186655566307647032900202312695437533195920999089587229591737647899518440666198554381234731861445194292480685968670163970222915709783826046143190118997397202479688327604047105026724500700519292078214661952267540456796622526870428695828674337798257008672884383585244213604959561993071379647528318253371447965308983043537052069602050068176650101681497622258002794018167210276832369527345505705112861201713896032180760562793716005759491237414424302121908125304124214503176131782305898210535347330786317151565228573288564249883110112732598632916504245594282403425928599307972264447271134306100880994868102895795798647650496346913540213847509111090783901455477742606538798119232198531006215748428171502311794188062642361196436584657830858767016864717406617112434419785884051254142971180397100843104619700589050610491442071988972397660191180655152938275096048913450113167043259982238989064981368433036767100289863026912714205626461217471034415295308554178890665267713299287740103352715826455284265390002317478246303862075035383863597849368028846201309801827367941424308831204487267980554444308188028364979256088978315117727097539729846639929721024461065705450203771590526345745189377516735950470719838961894465980956380748992126248125319152679252008652312004374489742336685060646035413372662017822894944543407708030904870466539479952044274197716002328475671080398973847906368153976784399593494260535003746498383193996403347182810209675949476027972476518135705362929490405531399611013522865984508757081344980788372028633994652310506097669252586786979219265313924079459561600004971423008533346886409190140582918477597798937449619682568689117842262839798507576371455887006705247946872050416214495118093768385579752710535167959060474897287067173762736391012837470901657986554302062443735785207861796165403766639406574256424174312192348740513914500651405142763829700533415991393322807251065561608528355065740720521131279928084370060949562660564026715682234005258849375395914258299401383478523284381020778412671253891195488624268599360626976051982715537990809730555856907387369807820634580767058239848388309929059230711165320974523520009393029487836320499362894293264115553881065814620175598950659297774268736642527815216308930903761481660143861978653677664476678654473469701784341965878189725648061836207505948708784685038272778788388415911426665666748807575141122075592019270431505969149696494306537571321971716689107906242555196785535666091192594358194902825398375470738617077009038805643736924494535434520091117729933846048366267334932185777517107834603497742940062975090308573198869807582306785753514314230719797530129934872879965699247526253748890939141303681429275869263028495453415959525493108266167375863072984410418600831302707737327840166288956258496406296585172788995108337247157278443454891995072379389902205754369429015460622950888725345488143777342840814974996650906043227693125217624484994742679178231550676000467820901327355755681938803561187145568403871196699400516740041243902944074028285544133742554901137516893670415476705982465559037481110464086344644926256894600407326737047976485727775893879743932385025283520268411065103438131359461097299108302023900957409079912441417450833465620900731473513815539149555221032178379093172968544696639155758738648998435979557835814056965338486774379707023583100219745690384440655378668638193059789010115881084682401353474317753975149444294100588654167888702648109963752729710612365236307984451357866836692590317356699578941155743080155812779410586564138005205244910264657371082890412791575799003611484956436950073023987626522396382984269025461319991569866060480625699898318970563540530528425268980645210411892084922566142636800615149317514335897918603686123201608941176273538696077288580027100708805337790604857664627158214473051848995573441667429195488379737216180852962987979827399888710528157479755945949871970663493401099285118357234210055119182800827180105934364145011297588783644087732829918226555027522811660695892092851163532981444968988472338480375491486383182894430375869317924618686470723965492304862162098334923902464753870394465217248804772485851274195967191901003303284061432521249005924318904480994904023626403358339440918475077246684250007340278390001062502380177948412087994032298276946046873296018963413799802683037676151772635924523252477622350977188351255346335478207536815044089882987888994830675984466679495426172754039923393406034562057539682204052276064422510332182281276129436748425248487171956216958878411299566131747071912757870064782826741801441452560232251859690981439180248242140844132391609241731468377243564736120375929308967204508382243112127408315662875752956744839052586549149531134499910284561552163171247552567940858552324956430957210988633771791231113157144672814801691041297906710162735274439751663690804947261762295564675053982658762572918032217416138736921854873020224456187073371419767813388036055324664842493792114361404732234601629034828843312349704008006389414705330832984803095187764372396803950166818409855399111879963525143200523452999541113383425023199427867682940438145213632321236843472486656837200365608646582526366504676325157185169360123168866364983878667340757799149247436681294005957403075021907683920976396087616516980171958721952261280093662472225624669528227965926820150975836481875303340042823376140066943878126951482126200814046675683397253171886564413027870044160200198142480323784849416558235825227000867860731146960773328616443438864416945250486404103987563307673145609343388191414510371929000930448443726954288933278938820553648335699588388613108339440857565638489116994542258966015976901369645323217016223891053202435500190858564616995030512753567855761049623100398582134965185321819568076524613116463422151363855788124783590215685069763994079192249658889539930707735909948748506789983645307057521716392888486469448206282010198361367567239353894622007409362207120214245217666335505867184754739034681835990383492414121461690206751776734266880169105894869255004674399236991046809571248367040285736908650753615197608819625758078731287391062055835125938324303721223477007699633125154241940745351154856680330998855122208942671203161726350738247449901904265248662692352727661156171296902474141431578813709732987397183477775475235150788028640407332160326816856776854352778180350668467791943976917276794083554202065645807477839662190146195469389219839731213839115244011472658800647359552527604283678503642009048439701829435321884787066920616580148851495705208952473675163513588023666486626122858696527012809425218394736928519890369865456123254625278068859550965538129295259534460723514716298433669893139389085996570292442345565161303851301794905907880646603932133970650762349968595274806093330264848895879846708765617689756082958219499506344917982279799729963299190575655408069311200782253331717761715530399773184098347033963318261587324755399794036608148131085335590548589351985029506864011376543533844772129318378105270052323677867351961743704971062171780086609675376485548151608647989186363390145879076905696445649742115820586529061089909989970635987224124124657822777436051004112644581678398572820298167664084477979258499551958437730543973138228184031109691504374411221073924078057134425320020936208661366864972426841065784417989211752077934971179383778037926252784647751344351610281286812484034206548574544474899586056136541931934186109767488423377141000727067282498685702740787085017519017075430711433116829768118801724707436596247965825015222108777210630269355114920113959469477036909925571122060152753150777852854182544540158889347280479340279789680352006666313574224195673075583500811862012978067309121404226504752059399666754487845426848288647190154443129680260086561300095079553607132633534130109315317792679834080890985382751644692156474438389297423477935904403578924932123753871061100083966484569171382284935238976097626306753802427425410575959388179569361257286829559515396883558534709407237957152591991622915479023859303525037624312719535175895102164860118448185927169217665189073622324864660892217279515412766992671833653473549780582157276957781850335606060302367670866179644565362573515072411027611168257706850529670295565187951115759664329396950843176641773681163532019685125719181367972223752051521704283279779928049335023143667554398903103512022527476362905856523778958025541003294967247873460755150496829005214980010954579113318572100370392567813199069574417614257665809696409667200042124288416079602433394830756369836998558402182287696718747778818399287331810969910817213786438175932036423188452287668878478352947782341295993385658284881684583338055953875192509513560814568307773206900607237006512914950847666147071198798190063947595199845220053650972076090226033502861617020230882169383656523552669020999385863451822003635616308994587869073294550604484837128563029017713070884073975768520198201788857539781539009311545453724100056689050663655499373019387801000161045694874402831969891003174874691274880783356160858128964580295374590863241557171781180762806065057546450232256192021267623535640373491519094410475802290917898368349025072847827656107815529289225627151825850608091236545184450648219228586811420160363188570834324613573249470424313058373184602715257066569117967949428015676225481703658994392881081318640918856192222144169460690414835097149756764186393718712194550438125630915501358325990100600700947636827682404882476881534722314609269584283660008790697062387717053481865478750142513849104181721921305387240050834773380667567377858447267723755504517291671655828709259866944437974811676568918979296292040567845472246967187093678678117040139601527079899150702692709598118120785261719578687959385572864645167136411474237128986997671503064614190799190184902881540447389911040668714466325542997270905976352643189235916588139580215212318640135325616836853971418752747416280201482077486296330779303601900788366540434631824000642435993584132823572342468834924408069261409081524168900133844703835124312293852769050195850039561472725962832978583987794148126553087623039248716016018407355972060382927314308176546589437647793515178098927878089526245235226175114572624096480013616323360598479045375908264390590344989651280142836223215940822147528011996361107492417622837957926313529874930081555877425236222473930772352111594812911532960784095344851792945243662774883332190722941726660694043235383514585218825588055961046946782998147795588467659896010263471486543883976594654662140138705737836765134163663714483723025576460801761182606143564720853367296385029141445968701167048391424761961482937054116899771209294224249634165885630969397853428044361290742809773016949996899775471409158601130264045318601669059660258860342647239580601010880174270604903643970017695924560384840911197141849028242814747191002571653666650219282699350658903533794945521778008608149534646401667692447952115728614444068431081323847847166584757371384659484990916388115500203891707384490980674133319468884101716411945042225491727771489432326240042350285182712671377653461112775633750526704833229193824935697464597856249799758014444217235191480179449759059818175994484085690376817806062265942088133303039965872679667636987492794523712407657176127853948790077026795711647685501009049982493017290264616940978033400030540735591075488636337270213716361235156859074884651217005328817044111550091500641874239806302498809091307274044508845809068461909166271342824060087725942786249294224811791250910067675171277710450361577846902011692521987951800990338815822780121531942174024506133739572796317817158516897201439234734948628193700777409894355700028679462474218828789670570425243970374961819641745374194073406625080317943942255694681984654843447117551637409500484307982238842086964944542719784750793288672661177339113216301119808995858639142061790457255632876199571714683295724884305404510116220898601923196841278899346779141909952465829404215083778279888183539398706632641405513774579347387357318688800979664384419543609767801598855812447550210417945423013873770092602791564957303888817954794818594121308277726726675440437605557511256283992864339049878875393649802945730514817795913913207849728023414481839836525433516438262432583394618932474338113944617904548129436712793711477246245050165703778063554085379981007840055515567291651710846620215482140916902928460347024830095573229557718613347248072665655593349170831854366269833036864003801910035016508787207513350121037573765504827780068371103170715091870743312578032568193925488645529059656395898131581851704994861832810908570500463342925508348658788565485612975368835451362226102957945802820771746109405193414405251584586118826150624425172602558137742364229633332498836934254746351151211901175771181440967708591490878218261994163502848323591571572072746188680748664265104323597741927442689617028673784552277150485367110058290062328516082984692572865555204801475426702247168476503198368481254005946416140320385018451545272388973109467950918114670860967449768151554730273130510335574533892939031052076179976196520575252015207972423646042167608557148607168813402168443369739930492113341356085224779302639865819325041635463329322708287368258952339819583491646156594345470534148916600148129558484851703409113000859610333275876845348507495286630899195538700892861245203967925925286664764392784074439530655935812988103427598213679809799341753421361098157505696188585438594581390043652775886927450093321416974991926158730205565372956001955732679266835926497797431649676585336005306788256797995672600516683328618051147660863322301431177482777083493834972216478795895700808938987770292124136794019804426292482429748882891720893568619485648852298221208350948167275409165833835992923253406895935278813787558079759744120302675641275582955063380349721853378722697222629596400812362965581545954960920089152286577837513897619056595968213787049154900128361246272095750534079512048927728537256029984323354185914900831724823816020970248364291857629236388166898986778330336822637566609481748384699675734133462031384076813631716669852922669800729052334534013714599334787710113073400312614889315182276981068297941855256800257800163056488574743985026472755755554102325274305052740912211089095943178116863799237816264474650212361516136401533990872794786634685047891980106263360925154936020813630819008617732995842300860801102203577968949885738020959749699803462662242092453805833150372988267540065442106731104788971342150976885512137455820583599731797839169338775818216997553282653440240610932466369595966858553790814067482392926519215035517473042899169161589965435458979219426741265577694439496743260020386693095709103722219371002215517760998162254402685451599185572221490516111968712890629706519279772131723204136734908331626113272485894803194680285309901707559686088188738323544293006814659837000936263529198278422549960971144515245242713513012365257926505586671795745791573725151440047951791771502735318451263515091632866033782308490328903366163074507325266601572231976792429251435018718524639184668542814983600198199552222103497828130954071259522201722458881052482666451463938851789231941021721294732479599065732413584361301275017091972239918037058789553221070386564969471737557149618046848370824277992034803880090208885831535339056247165270029683379264951146721600147785183084394873271911673874434270727878670976722776402197533081646714319395664982692617922646939238056957483667766074817142813268953461286181038248815537784694937774114510510486761745773744982026531607734896034915815619224482123153487423720789790440462382237127102283380854881932436950980780127594155860863655506365891600324045705382989516537526009902149250755476696771102033321884548816854948147137602930180979343003687073424193549892815711431800529947125344560171904712627440012012233684913481418069087611850960155986300391826729535324396360745026593008965918206891969342935058683799852512320443421059720087838828413275064119405453681569764892445398177891118759137851877273307886900921311042680021393404971397478923360085557902062495126344097840378009124376218487639300463919225752169281973020327887315959086578181431962744493271845101080497584173117900408967940957030763654240244814295370017001936441174568552023913781256202431643974777059517327510423055609120524335164434465114297502791734835427364386225770761571750233268125458048085263312533741110474871247886058261102832566917655777996670835755930666510627671992238193741214223175271999848737730538310931667661002391309701068676277234954254789860608322983206395165440111214486017718617804875526899342032398336297666713491607089045341209784168782451809479410166926626021567457558290800467478382828200236542223071252976038329008302961062114931046365835898313766041094695263421653077214616008446693218507759895451964879176293500359436673867564398187486058496411436707192410416418417556003660915083562734905380847406529319396690265279964441338889623887985334450970931646635520665872575425159463662648364023664690464106268952872700123301699447471186275192407533129871019752505498150137312528555094336452115748384508548844767727433434462377333106073886801825730128210711749008084808759765100604089674636537467596921433527299316160713339555204500722060136049123366112904324227895421426154408134013191555979475507113218623199236804964044015077181237467888394152563419825362214599426754660122659353530609344723083712058326650749709174574569982673982278353899283725675527191344597850982290095787236706347577200826039683897486665652093029049251037421520206748312524555580936497315169363004156401930782584515877836260314479457197586628801391053046894518964327686640480099088571169709207229906360135036205096766176347424672979669014010100459106098661502059716026452306997841481413610486525956478969638631036631593083780228340877361503718803080593790779372654123952858169328444461941478260443460534765881192710313097729092437671654459699955099907966047192808578393092435370341704349654533940342667717537381685549482123097891804818938645782873533253238689895736353842800016579088374973187791931395885538964443903554238099470379376146948976972622491224466237569924983293464816730798992683415426572491357351955785160066479539796708160795501565340094945359333072725492687300903551216920809280395986544542111324074433347750112237607076517511215002429573218341341457151671428390489971957101975708593947423519368022617264508930809894114426224003438723855787674357947803563056417990265000670256077247679231360386960189877549785567306421368979287559978701322424370557961282765033213604436652630957354083746753769607932882584041283643926066191576157362443794784625456058760321853941398471054699579821148653319329728320318495101606534762924277763283272665725189848436083520310483977916415684618701985675274733084061438498026889972410436782249940797144633345409942377703218074268210106261952973992628995962642159795802276718409973366686644964570328986829159314944597646718052605664645971839321397704449533321206299664046426575684492678161575362382130255926675327389767382091932254254688753645860146771093625070759528234727466879438987373120819698673303927349282948894624451921643235796551960979609844895047179217735656448109480672895820206146995694732281401375365066976538828077297143147772665221329177953356368386033254683514156387590803775463296159190345252323273913776064696231358957911517496063320807656845698753000737936792983491509374982974274110744154842692703583832862719230319120387049945198436657021395665786349795994734987513966017215232969547021423853140985629811689388743833919938558677884642973498991923545385044533240176807840327639744157576786105681724311498855572071058473537100288016718486846091702929912214570369578625463402323329214839810437410710197382998013704688183607191026750814579607805191626870427749871853991763176727023852496351364919050736740831896203120495050952166358954012115597998298149314330114607764480600104515948079573874144420352869444564523755715533402493530208954597010800994866446381350769696092738860631597255372004493477397979295701925572288476798231651165308447525775915361382831007143948460252306400259806343866939595802454566201678752290476665389150209637261596698699582511969232837725216180952848383666007142861570685970518516957477188607693345833025529405596357734975141498070095902487572577781861895532890885773381881388750875355318916640538697649519250045852104111119312180635586644186067481074239087951134561170816726618937044388987773492413216789799852461136765518467995607393511256120713878232356113471871504768277531257042196188022968034935676814396007796516419898736861840838492973272399135639668063560870821367484934410651899836012090261631084151668523861557791525267806224423472447564417641740651582405682638255243412990672962007381379813786116622868753911848122973493622702644115028747639506852946729608537735861066297274736541322501711799397908900267144703566226864009770145419920421330404934890955544728526429847793172353743902690742105360532260184210357793675345862809969174394193428286094299026173725285036109514813322254890576643931359057031280592494072252617515839335776867504829145338248460979869044314952624314983991843686811317421908445648892708507769116860297873473297608307215331866561457661953219834502366781738812683882555869242438365866141693452777578451757759382548746738399099673303772901005525442945612318167082013401990816249099693604778685910510424076414998523325458668810581950590796845120659001641713146204008685306045043461404415549435575851147553406145073219159580233819203312634937856256289784778166495902470083367071890538210974564087945005986587643343890797059703282992563220799387808736259507229337154003234487411082948696605103239304896284493206869736395289390833077748453537706645449953066253835615452428092014958963464507287798190296649471428220913938715392665264145950024870319614162240787963556407937729269185209417664595808326395672208122894217584705633066573896170580675334637517142602431729476626811749284134991725863570817784262312399676734665228305201828980990377234398560343879552141107946750129987917305948980275403921811150485295028352029919449015425115887206552094439554527660885909068192087677250832684815646687838456370752127425965621169510476408645190892474528137600396063780355636891786043396589940329783365140132605738117388825077839052035240583279932787499040555106677375421530765065263479345865926023990567556695388673361782653621250905120406646072533350817383133511999176404347040915852454530064634997650466960104963310917857682061410351811490825077302019471990641750828149970407246267150415989381159993536767890300441023791676432564651134468979931232403599300613761048046656572450944404764102162704732445655755498278927377384736192446390077872308944177927963637357373897374282587952286798819500611975563561865689802956388774450228574221133066952712507069989490967389703023005913836269023058126486172698640310376283072097470030212716352666632421106254125699376534605590492051264342929005545054643582936029475357280659207150794642264079244285810074523973078437318328437493432258267842147590812362613356188865019141276444191834761814310614027960062617965051169059723643796236646159979406071469064862066028053709251566375436975600828290564500868444935584141561096769613633182847896235703365776789835480058270785538506651673169952535687877731954133670008870806186433857536648190782533597511462048601231729691640470660843953350297177052464419385583248518689887966025794505354373152815963682520112426485713843568519672623156247713197052563889606779089292876056916645181531195675945899171814200472926926186952564422412470730851178386713992387402804422790742477261049646839148280056354702557496348435760298622715985299303745848679828266625686796007668308138540673875597244392956336098802977069978945948351966939172171922829462798284435516041907530857690409445738124016656227171205640911914799852002550974187869929030226888137299651743604417789350048887515720948489298243177336066762514351670422887861317084045416498653419280536439792340131904464169524673518663983121519635117172793263844146961310448949092943498119404879416267926235168229366203157272745326230211590592557001569417281539811342408310257863906105120105715981917569138536196857901211669301627775661128414793718304817260096066158713911224328710328452786789174379173193413990949143447527150027431528489148163848366296568708860641465257856289904789216024964323688712757732853584820769923637694301618776054347660302134370276490041119678442993324673258322457662547024360951132516829024872311756927499613103981614831996788414907618478822297005328365555039717937886569861065316489413662182925054876233936518384978138866239521099203605099667743439838236733908707290480679804425523858917723401105183292074078436420226643831440527660894966596252696445643023196711746284611874791288080243227098402563912228629532396266970454616806797391856786546333098440943366095690132463524154297742575001048569801020936342661237960082216318223192097608207759363882426552607270869816645805365962944786952274872060151296859913695732023705746656570203184489564798043802956223944825778268875736689910062980604197390626798564447889570012835769466550814005119956640706946818131792380315333673287656579401895126162860715650381505785353152935165788570085196320073439571663006106786238944121813159021567488230921822133329812312213405376665332445795650252226625059563509408528898393210463192349955240730815986171187393457108660745180073606065545338260352061241420733397388656045368484366561518308487160995648905128624517644708202477627171215465684728831055792273243283815267983350382557424638505195900623777448109876068355718985028774432910154343817328358576037291198802849104178074807765081670561377014236513138504357329010682907005249602747277389366644505736677462764649539905815250825827290309468693370849647987579505846087644817266432433875230314835134986432963438394478032315265578599492141902460548512625306939545322050837347527024912359739016874077350639488053756432497705908435211731318370719179470584333965182585559483499991939483967748760986874061161163127377041115244912217953650159512526450587285939658893849799129087830094792755814751169441643220244971934211208408447971567880021106260439812234492210587778874712692881133621064525113030365923755273310438829898227479986980791345535978374221485831554849202675714104097881367572958233496810526772303478723202601000882120818587509403676207653332485277574373929969264105794592742576405912622476163835213063042251896874700358796728121738831264429520799780105689308225856338165815048321195856122446038281439154418023972644838078908983283856216010656838955893516643954377008404073606393643277547151904704882413281161274417743581618797542636931801444448911192518123864280768050837877756084726309352507612450683739338638270435844930265821803959315810870343547095048590005409620914039824606107928042927955468608195115354552452841839392443709412068056441818474352143047671108113183970250579444715119783149388676921713596337859325165702855694054822105014086288828779596469957275867039602423561802384453526044156014756513393368662954973426136075737713943411096537896987194646608888988404042360927503028555880446649539974813001244658873689793117068772416911887588151212914066935038947334089667568607601778470884021391642565742239459443086432049218495943432557133122074892540171777744510250542314867282185155881652353247277258962221514075797233724150145957331513228631399173239604783763049972780893106411831413114607106910350641545671760808439878075936299016642201506530024871027561819475945360088789536108417458548599785296982818872823883900514624541462365747189682394015195059041292223584991858965735455192753797846427868807822330663793607086181533457583560166487051362459201360862913817499925046615171404863821076348836306284809178614031184462425532678807081529246265056945411396966456560438662679454811619948393966634236734690699089913138696712396760381819891946643785600109714737841891328517898391867875878894245869355042800083909463844831517362942422650030108742395237740111185451830286901106992540788595100253469640058067689144939721566492480942710120323211261085609018095814861524468395082321807389079846576960690443602709034850263433044968836634705706133145785067953026692416409413933228017422550690147231442748848661679016745839167766498686592318622662435087552514799899446396517109611574764398416912839332743063807819278641017347349121437249736760946688933814096231079328709461072121831188756855418312127794097874647756587019280117281696247106685165234911926498340559577050570936654013657952378114790067962463779504032959388061364884227532846536854670825495443859689881310165108697278356089113066630845683597990310325747626139196702340782390323543583480688548386687646565272890669271951539646285914584832908448727758837385219240401308496470570077252397954608668136959203047894766905286005004076130625935682907429080957491501687624696274290306710764604951753688787192712466655973868634793076415932175680492445531144681948913836877779723842824965848399734918772145061941857255058186862054574458129732166138408898711422567542312840744894585050850142412428953102142775488641386562732444064386262426554938960803985215428775458251418411250319315483273068018651654910531585668681640555182779168098063294047273252090158531269679646479695279744395058789931299487044560537561661023377101085517403663938725290572543225394194038680664720293136624629383613792871537105753302328994942325553492447181607084617750773598571242490438117311343298094480390727014955756006962188904392049124653635058293218159453718788932722696961185288651295038279349159880831578208256575894452093457309608788343580301762004154633820721687467587952918269078731947341411207593951370837305627872188595975892419417884531711061100318258073608233503531452850039862914548583803133971252924135220479587101366426859231652914945962629437972969886414076639077233142241787098683158395505215174657332303364714550945580057374375369177676769108764073853199793973288991026749496860956324198903404511587943276031549418076585960572793279049498799851543584776896818096867938028523089240298449117908097792587999468643067941725981156151787675147870097497187778265550120490366118084927104720009475102917038688522273779504254114647451860331662222255639042424017301199542099520196687600728299246289012014555845284638490695018193807849329906172343928622878877382843039405972348864734337087371330992901918163835557873630590959432591424679582031799897412089360395524288031334430728076893161152184133293306974131374857180217712615207262501824706585065891280081499299086134716665668253055518111812321437802681027010060632393770323726546563082877144408559341564388578325457587897598268207345838288699527099177765562859602193584703548800963283729443296475403326263814195165150764505575922674445064914805488153032318371382660904820802132032667799192321076005605203815202584635083954468492046123007016517894786561339560854637029223611094855185860681557846800657830884953033229275287040519556343224331551646238103729979378445120485897262684505723120609591399043896668259355638173448998885418927585026933495784630910998578176956716450192157185276767396945214017087551862443220914541846414130287505683984137298856105302014588240406344392443881061952677827029145243434378520580664803826449871410242462062439151645242963260185566150555214711685338534692499376358323114158739343781306320284576224346526020731905883782231653957004889713394389799623133523073235077452660839974546457539669156109650876088971505558730030120320285706043838358456406088789268675686145417354449904572898360808272658755496928163837352430157374301758850618425271395782725922912771365610060314384175551270402203817595480970926790869406153963707825640655140587221107496160146737164586825928014532112462368657882567852470368635554054147446139784571769057294175530594448412552409544756994905256494850825550483864507154342268291897916109196709764367386832895459210219666285814288792407570613895036875796562837561686774550209080893501537960270343356617025778995267592546535522978274577805445223612341515149404147000691676627070556558065315509046778389293818266969861404950775108792329214549898294093435859811114932606374778152653957222652497613268603547095038687505267735040004016194576387335772996973206838122002564215046250704074867378312546235922097944153345874643452220930897515702886503984857471983762654319195594778543899503242364294799475592804269796431985645916001347029652278390123030014787618893003282771936637104966180562501625106604065985017450781413880495950603577861612578696934129962017357457901030482894586925343733399929574811557533227572491766027969485365285501792692547829471816123909131078887214191246726194254635478471580733788930816731144738407256327776657825065171186949224226777370589737841691607243672247178458023193919672178877509092128140904804995356308190326901482204627738839118817813700417643697839704428301047628643764471137654340212312861543649989480557549125815040540791839115091696971552811220819004474732385554026340184556415704003236628548352287458658006314488708390058417016981481232510198862859577017030268551895174833963212660190516578017992684717546316624856323984531266706011634114730299355340767420835233140662630941617583451334371842290332246345789637384057966621000496292959227053187572822038181911844198070191290447627046320795768311864270789523599074663878835734168814220294524060518579977549960069098755502421566156897903986653565485647658182253035977699182043366587019869025422508498194231429849726307854832464009677257443178484592442649575707450221426924589777452689614914774514415629685751763189282013195584184558125839319517811781437679630345030735807083994261274249809316402422788566859229018142707392124610172896809914210351367993170894149242014421313411890666125625068829238625406168431973579920500282438379059928130735195422371291965636433544894315647059635874395654508040161709869814025836335215119640061475379269210476160295623791380276051665075348094054876734500016755417005716399732825675146888270754133352078098913563682796426957141168090986394065089971320480121290043866739709722843727500893732988645189468677593800918375705456062927359118988796241589325063265182081182939556221574011661165827298183615844560866030321773552990898743625046124014532501741883939769102440858063448626670683691207994017937081039931941439468776996053525339009335078378220087094460628744491077219705850767005983669122884963242586712013606889151630405244458291417995443194619760184235186814359760439696618407490490316442707176758949750010291520182529349092136094371759553702747072298585445147353121028860173628730048502952624741620328156913403729133883956441257346379746819062335599243702749952516304049932946604170811052527114793647034625612161333538922860954004017634751542383774799257028747949876735600011271715117518966384793897027630925693621032051803376425779899905566966521822859531809714791926927272962118399141019955816196824652172808637811466677939173068412532848536048830245489213161894991357299908665060286280211447120276273346753589157034130299498686569636665460691509375370411321604856622807719788976941628613854237347877011276492316852180659004345993240041741673249881092145040975469800851672040609626250693367589598627401762828590731401820170342550251756156362460510430191717968561804109388126817232016937103580527803488463141317314956024642497767114649494166787564263285133070315087101926983655841729120134886379868725030078231855203966944937358267029485327095639503110084825469391141718421515030239000498299007984607560155752929719236416953578092201196717493837117641421881299676280110496075340309578844479713077488117802581206024727956121211908268642037668466922445619362923788599940911380017040272521738944818542901110591676538401841928996055780001248507227150485896685590371952812531966235565674831616984603954183956010084837662380410101332610786615254047771353611001518703772603330194283258858358887322663210766889128682909015037209382253817079227967804822362110347206689778288120828633783003086749408356818303096412783242432145314322109360212682744521658195575051732456021417827090645900111909171756541174145505247918998642167706907181884600898209023068093646551030775820956762220271652789889025550253080912234699556540831698232473817536570471026742689718371643645193733114725829804923571460291360118155783674293897271707591955152079182934078205394995592856374728187428229359720154412709140550848330311840751380242049487477549570396177227736122231957650237666685729088929887119807738676572940837142201037305831370045202455002159487031695766519533376774722952393031799079975543905747974782454295863637313652136536446406148213178995930769652185798290035224781156499739160099216220852797826107448807803072147014356369750972230887938491118982495058833808189641979940060565299796631262144297189087151156452899188475536886357155374887322590831587436078282638681232864408257140555550831309576302300178807265797934665556823710360820109586621325803692563720303867029053628686178380959527335646181721266509473761466769758540317513634114672564802111394234793905126254552508186714132866162297878557441301269457606365437613675839873143387262985488275065952974501639880523433309189288264903577540605167608184385560234939721981970727247322040770386790834984623039935487416318023986268398248867952950679881501853293687920347728537119560747536003602077439165460467858266493402632048501970181660751003158285195727975827197193432107998645885651290850642179932314573886126838652911107183298222243385002598533751228599961131511757072385530391307717963618378925415812683071466554982263852423438397611154759990879206618298698690611264147044358539021421195365453601167177182298310644972730614880372054231783077551700909042725626396063003879783529845129494030707559344391723396600660848189982231244926501067480575373569801730733485510715542754278035122614445252004878782726819291586696484894013745824425916759472296263740300361793784215936448528990332613459983908948235464041678296803619375940445365039565799269784650963097727510967194033631933314146303604540790347230530924633015597097651916229995032477867800454017581707607381821534742927824226581574191976491335382433245914962725347335670734723251555136414023036442392750294745629726427626837158498550823143610206185553484684862108065517733831118025183789222340570467251593815985938677224584999666542894947712734384407259230777385063593407575895697318800210685024816870513293766952481517342424144459274762169138665752318518477312716803502772155236182326041388121012720099365773699580765489947411328010933029796213494909456330230444130369338393679951363768315556175159751866453205584761008279725976376249732730517099036335597562043611884314774768219262371777766461631255755864462441582903753735436640664283122124554162506112842897345330670260487002718369248808399322953861552542412655557714472957057282895497163834223522878189735131098217306362601326604451941639678595214913123016489766265156191721965175866371453474630743812693415567927650348576903772558127957917974785726914207950041336155089355386093536956066424491008582383630295286922193609853027166913585808762094616644116638005055549111806415780602722698223504155020127853550650799922096146840235912378180990318785070782026857135189773665073926380573904567677079068735798308501932572850035289332103022591705911104970641945912386069158136892227194611718691183639417876876816246121436425186783508164523640207797533639303121874130223430128364433476343584338668116745300708389712478622482607382253028198399174874369085581161615531809849093480922809211013647118813713589472121782388823211469313191528546440492094820012547065423919028017763876396116619765789480981568574397167259853843346887895853677174289825606256741741793926566801918264381875355089247292025745591066845877076202143374780832886301872122595725403898794804545280231256204017161154449612742317606958439498112187080033681507123369791250784193166898093412711146111560537777393526745329548918981233917313805232996327588523870863358936411752575061872096072286373881370070238907307372477089836607790672202620302016905802193215038066602983040288486229320238313218223404254803034550781890140209971684660927667106945887765129257153075810392959554883944017606494890838565590435349935211983779442957894879923739389332602471924021848026134059736977181094451793917414647861120260485992994329224580951604679298047036822309482344044358481456995793113166381608011205576076526405664978761904498053514640344632383843816069586181427593445311502064319207465199381381932128268183896730763851667925360262093502102425752892859449636799944533576370755231724570725122263289917829370463509806456130567130447958942403200451543068771908918355411657219476780935487277148971704397213360515393090775259031869498209619006090468370040991361222397922965523628934268954263050961861343294245705284202520740375937680237384890979864011639976290863968356102375229824189244709697654437697431740389377959563602972488596365245152774861176989512640356910473803182562742284444608672206121826007607719510901174385732315434213498953178527337443327725740961542725574168679598247960671986017121019087113065889627146031720402907696412071901103039315644180521401403749684802148720035149370146753850804771586171391023245349818415534678228680249035279427112634820511812731266776100612315621732504043131120654332864831682784433843475989044679704327560496018994204388552848152230548400171346581517581199597018613395724495334666358678926147381158167343825959532143945284629336841886004726063438144730153796931354248545363494344297827312203748066603011021358892331094613978936555636659763224965474229835710498497137826027158269189966940311897049973662180524746769120641733958444875304117083679285942328241374558200514698816553467621129881402686462544500664174805663284946133364743913573863702667582143210131426493516566399328068729829120646579272869717241521588840883323344119863390994970883042476109532822640002013659858534373926972036302240189266917182587537638280446580235969609804283206057241507097709633814055731802984683075112126433511577806889504608851472087414634324079904980026823529093231928668779117666196054402997678939043693456276032385132973560890898694484832947026720330097130911795016068861160061940758612231939797226827469033721737800523542019553531887922396241269926194358563175197648237024006002231769669455954156497120962870416572330766645887692829254715966037821330670528500011813194657577450935753057922390757859580783188475347702179853390029172629030306850010640971360810770152689290756196001158907698302530967654187058615603313376010783895778211793698289062998157130630716480831221800495360524509048262038858216128231571765918278421249306275497345471074245346919549200690522876661956358082033147778593645587718981842776366810480507106650956930919058537944930445905980693908279334067961210935180835649698196400197095658449368694824348813500121120316527998489368328731747509587292953689192293748644378266816511516500669098590591801938991671756419496854705474723455229469550876324258074802183255076276341721279583951172816677361010415294288378672801503955869377605707173965401197078388074909526323238402807554077976809401223420564755847297826446681628409617800360282035262283243701599501804001878576644698835611966180634499613533238355195063708451821664999062723093501092226675203953035852807349350040440137994744399645217134536638164755823335502170364869876971564377981556007886364287481874077214705910299192730944068410793970411907302174872449839234439816565221297260873536903538981701004213417291341418857658576896240470402371434005658022568738478508626128968802538035160144765823348891179886155045638249787634253394149907892526298637437250564347319513855079851015872702490286228240370669386961766837523547577756598856371468992824725462354503405908639256761243413800901752895137043493709168124167802125503552018327858105594309764866031981008653468203760485463764032141670108226865941906443828716415547024711799403201668293567009899768041804479966849654108924180340961063333281252710349552073556680134250025049183075847883463833557134417421769850965197749280355384880304333684313854753779605919120140253556752979709147016971088419090312055034667773859117114065571274887215906286013334572115770070733561144884670592829072938081385157113440864771823117978107511788173918862296506023375544538919589623189908763858340761059964084588168344045451298383660602279169635116892199967156747407637187769792615088005733071080483584196366642990287487298673487824119508713857912741270718946821292920322989659405882586808829945941589704146562994097595729441465419618905463739489267345796912965479462768909368501648902261720152636743045917303835349414197886129981268339834806659379026128996408804201861568549961104666893575576334740528887560804291359858355873508528867377127666926653289295794834929924874886412203320835973622112792618468026393420953650333838272315487390020981286521289492339127706599715606851381277219585619991369836028162442790707495167190065842854423836143049446579081690698876966998666114589775841431956674375076051262772248236265285920984822584504154647467731940335730962942669587328480487253448351321948647271479975228150136221683243498290029912708724666291004287592426589956723269823617465534667566917510469360231480277068590384792889310400872026924452139543146413171935327042242462980194278307043841692121698735236285770164315477719442080279991355247482080439117746727508559779107953620376018116046644736959035758160025034081461034711416348389211184487759081238007520135073320752894283833908295304804901756494469066781272670334639004663013095625400610138223815429947795359456034033260172952127711192980142841351702785614133321966589759197158692116456837319503043153733201742794330404735940755326873231375929301572142824009157634076276548002129859778859694123488135149772633045260644705384003598899249991921022433845388678983996516096824949215976853235742890134186111589726784802614504234679570696118103975197438648314290859062242451875900755816175813037323326694630830603430089757053046792967708957181008893309047372482938574525137363850322072581172986266829315875452611862127902124587699517810336512212556874595879002007539778769945778282080069484047272326411622689611813225056581622458865198687048021418116402446851595664893870618281025797692108061572416395445550749168466410615134926855392928177875652567119337602850454357931895550248685455088593812483158440302512790743698413740526253653370617888703054329380542800206261765832896734159599405128572538922262481201409425101595584880508076374824551450356245412488714016498930761182913857453213050904778857771352911742357464295658846392551661405265467549919832837908355408494615693180499891479778165154506996289249925009615637051156721650469703246456854164487861934650625253588844719371953631734116211388108970547481060902939130810059468889308065450324642530888452694300179100366091457619637326331810978480399884720695864688998082835133411962139633756116117974627183900787676103087869074274649237656991204932464412696952620571696400321769188521229931696154200113024725413058025199930843551817319148747396063843536252031733852315475400088591494561840356594316805389865342218800590231332971504440362513446154965657723508988095189477586376785219973027693959062345043314255797361916565498374958774354383415909641297169492621810957607018823854715065921673002343310728280189052925527331377950312800388809360622873806978474571821882718983931856895884899214777358270326577359429997317844231867896411259782104374973548295755008541664152472607197433197648513686591839396782059601086380633437710056898208329516794249320116164618918071472827137516310819905488854789631917841906837810720809849241843531931942615516552256962810907472411159413131473142078731823272267905611889120200153768014714401035246449831414030083141492215486484298889213541650298909673701613346289879843712913556699809546377830629649409764178853668944678244057489043780993449295002475285407405547706629888708365120002969855142063543636045828423574291162284170132964668465882877441621727105008406226004826393858892460867556435900523741000572520687032343148630752134174770330207969774862853295884562502974758568074096373762632207515417103803900943116351039539587762451394074762729106573740833897460692279858342810453460462561575569945002055457661905956254751396378233050153538636827572041201321076217392139261450001279214408449026462372329155420180917854201858545464308553705213808993871955070425227902665188320342101451080226736982348702402694460998916379592317230697714948843087946949663466368969984067310809355311833565174445294711096589740448625028973920995524098394110329261077326844620425490258760615453179498355608128865079759179944045488561995281636372714050774565395744882178953654773481096870850551315816975271711938273524154353805456621082442256880545952398543350828474936411357447021578765942801621808671980401387269527446056488700515954119551166069952367576328657821096230945609381583073529821406474010395211795194414346523873061747865589227042915557670138626838450745687790454383125774479286783803796395385120272982648303325241474067647623030316066443054527509353449858149410094469540474300352303780114455698494468277566432164181465612654121255881930252159647109461394296293362845546136005141753955750937788639417961170366773879579320969215164004305965165757370247794512176010208495999597967244741769030642315047895539822972204611678021262383209207336104604322193235748201444130378916911795727415560381959153719598841525975801369527399954688538428159573252860196336849043905941715947925325003318824564627065839008441517465852280942384061556133358751607664764749344869547932925930219074188698499970133302282874453926412416432749907438371977731437309923470260332780085411618377033024022515577288525671729942466788966827414449949321541378089333295586598986187683091215064531204855043635925590678232737599800175835994699019100515909944264225096928673592550522286021382883042772594945021925452772203924917623851016226141175231746096096491559469337751935937846223654254060952212059773496213548735666722235725591383028527444646698089623427083801884038464359227712732536891049255970118123768042030219263055570632433277372176265869572682809099103241788038316805638907899114578529194324478881229152901892551008018825497991544175521598926790008386350094042670487676133640004205426401101185576520666903524932621403671343658528866021712458825601664884431434531951522521492368134734089007345799557795538387877339384562248612377549765858838448657970113302596124610103635130322854522775045583113858066210173273869679994718837955096110933096983471111635080092980287175041242981375516041493352102559514048168328689452284727789371958159663136884955919287969561862192131426826186603578814275330194507963300093410413521350480223371460744434884759824883750206833438365196650138947866882269358760860566911435846986499608344414448947645061401027250831552578588932157970255127259534700473977871253214826693011095403037133032891066212935788836621539721994506489062556672251972083390842675890371090560096053062072605863682924590484894312498425010400792103860454544391147713570958824982724910549241040457819631876304402746030125996958100241691383659195448784809262734483522711307562931064295471040395032502367111674958428277052163402182285363225979804734456043526487088099380064546316677116056163323254755466763667435694664860148125722558980999201384401266371005981505249126368167564408215723567128297187583569146837674393512959377209331809692607808720809933706905603793798331414501675810325165723091630253624787420060475923793720349806486101622076988551244078802712016158877156124356948907349781016637150352495729096049351463666598418092845352725701971458799975761229230715904438540320369991813616299303211087557458096604143350724917543917989611190089300092796884948298203777727439891708357693103741251363420761722404684792474768146471070023270672076093918541658546853886778766133555289722328548074394303616620506204574114271057064489669875915161201314247893835943064428635303696895861928744681706848012800321694769413434711789602333746013641819548634501611768849677334054910588236718868512946070079952576650201325439176452795275710148293799205042419610330228459166926230049437981332795261324219330444361232925281789721243144069265312824048718163015056358468950453293385086419488104320626823604899972068016470850642758678687509437736956083352245610125384611616645964674192705777037551003462868335816999644463917695663833131978379170954216929540021509908387507685384831634725630313175561836694667347719680055170230253897970884586348678965653184915654356879522493692783463694886345576936834434668749786393898887736383932970910452194671102027649977409899160568646288491077031565764880692193410591464183182303727864575838551185882375318568429109138314279107160556281329512151221071071889056418549216328855328668560135910623281822034960457019360747596476851005652501707904447014927150876495547354434948037924666727864166650317999709957619423545282983052220517699251155289934690965411561252015913686049820518005450682482418908756783713848322964825687779742180839043705403597745659068658766875275172938683694118286468497517212102721099741481150146367096821972039249603814650425890034332392683435879658433746576658523607264333240366108425224391543064299353933203850273572119419449482436860413520446844548757253651215482103363990524907293489514691940918191079435401018305464740225869904313280624641902918696218710851023067797127957081407649981109556481032856001800957350985805168826606199210025218543054335163842630518937660831733068561202982767804701282232731504280986622374509817531248907468710920693880676968951967801102429972210083544812268801453374088226963044815575953299074133342316162148324463578797060443920710015509396218398360451300738601490442753331043786319217456718296354007095161935411437369426233932481100636427113145306599335207469527667537708760922224296988603965259810945253096505318241439861068325771371899415479014945101854152775237294825237576986353782116979162613710700233449782781012226605009903548668208558075402312388829627300151694529851072990751022806692174517236060658148412952579235203042381580870808969092815923232042135835392226010720115460313263532152586681967702967891655920343770422906438638952475338307681197245657143047623312742286229327528320265683425094277570022500866098330617166390084875642697362378842820425140190403713963029551546754929633901034502991931903477868215387409422953947750436158734693389410984105587923193108393408891224876388942493647958285208053277557292492279351281637341534428231822475401196464022933492656037912094727282656490960225144303266172910215558779343271869708289327918222182487172821086924294953883437783366548775462736206678731400221154761488859098650238794084656207145387005435979854283478242359103185733477077970449240881024315028545232454607155522037628611495094573166637838437487347698604950613667501211258950671416070739791650442968625437938355676522131658944599838412924695714829337457615398579845790652953572790044984712568343605846865450305382498338928493603272132266647945820275859743229657232477768481401060747517509277517463468624695761552532758083161498264823313501414858369195303518576017737276690550680582469359920353798170394477473320901288516266388569970593396308863832212195837983550583920345991913982767141153130773191794685435495017285356156044506734910880665006334093749788924563025915802140188434202397695717025093802342092814576017625690049059721356488535499069497721401233799962199363796119838697139869502997368063627108298119042376401837479034260028621164707298763510615659194673213064967481029704324791187045029844364404697290601195973238779023478107539345528017119402097729281983528073196780040892770938216520809048921107487014799062762354488924935159533936566874203703435640630531350859365003080291501678715217298586404932309168186263792083649944599232326111737032205146350797847479371354465778033138861864351383675474882857763482735199530624931843477380154267291750898768554361329693993107988076077120625121119313789851589891590710387596626013108689988218475433049730926557855400030082560296369643969687222116505130166132987914297744811765588063999301328090899704105199270978505531858050173597051913392188168070436029224587818489623127624680259848355165392400252526323303349408600437639785219714290875981486460543290821304319098311155409801634360767414208218030445472202902749062132976378251894270810996723270092170351699312857124193002474156799296325212189092148460369639094667154677296255025344201001524297671705765167388195991336777492721819910595495875757967141030113617190749515832122288524743855904753598809204131839195914159594623978945508008576195154297130624608441208026290082438771222634659948221513244277124464651312255654616445095661906723745704451736248204177020502484833033733875693315039097370824951116708990513497696476713961948014802462296430267349663746856127258777780100247468675477109983734372866759381241676002531660130826597159361604690744118711508098311340667686821139082888910814145605976999821325770523682565086669660737717528105491178625956377526914566828555551683720037786204458024389270059940752111332603111488524425880646979221378896092631712486764337710342524731108146127984930878322954149710460862202231709271943787597403673965684912658330035452327908754434350460507886824676201282629802723003248549014435662608685452364005664081927236202560025254136882855702833351347856973439487183846306080558657522033230031167711428909818488691846611531974439648786333951553349370610671623942842508273322397207928891110772244126695829460168649995747190179659368230063057956118097584209613764241430207363973014249574758572115190738944293504129534681386257212401118500784496482241625761400817341148886921129977770292675908415736253507836898676305684150405826008645780763227399725676945078057212381788721838244257083306810688863281750863626662317129923214190847570401045162253947198331801221136495930063445251274660563035333064988934110363499710713348260598940799390337663340299986806510326322317911629720370869184208144522176835711752562374832026156949407332244932269125936915167215906361297067808490169227819502886362301396807491320752928934082344005175120119575462954155230050466503630143984530158454128477486537452508000476485843157727783694866356441753237333340993931041763515506227671344084803682081249842135815426777028856202233389380197778613733563831845066220301166402847740842602311345528507809735802789050495257191532879734483801173711193802863503355325272278495256267192074398394366015288680839553180992889057422096497316904330809927278701574300107110287643452072588586375430681433084661818299177490573010594794539204059366545501252643628083862460697040606759114955263099544883257110120417886236186899237317216404920751844313920232253786958733090931823090155831814366104828696298826688666902130484593400000802917830651026946469173798623848769637545456668009998999730107354034721901802188895476011884363397920648000964232768787585962629041070335582992287176916172522777143412932237619320457366599944977563674441793799860476658755465655011211171127890376968958028613533192337549928325769353090328298345830495723331897297105554513846185868082937212942736574609783752630902214957042051434794934915645894164971639269615945919136628585495582848866469247506247295600303312434977836611677641549533544449953463484813193874801466624232511127956541467767610880639812614237555086222187470398887826916890627395247846750273800226877867043277788057220384190989157659091929918828158400590792909461900456845155912864629646376128490134250901194858796838493678486811789219346042178800582985418739174611029154763063214709354674900518126264717979377704783112541078813988405314077607896354525191639482498116656446458391921667907377428923069780959872373453832421034475433812441487605575236815016729372303276746120594353870461542312490588451079829816651915099352570232381914032483617505693612900229369333510414816563758010004435077417557084607743519179341738231499957776470850323748265658749922224397973731891139378381171393848751916097952840569229400876875909098378756350356312085145054400367401261839092423508682342289570462100401090901237153891136405826785548986166878677083106949816660390931365386028783283510516674045824523828259787691891613685044341969811991049135137274632613999026604253547964746564975729774121913075451867805832679461521053330422013834775714034308891462785315409706314491408803253806877314186291742256594889756866251590039316160358690121674951187911319688986349994729387564617830046671288358517912166968454874915742294702426278125278615367647487715511049769438447313246823254472855501089138990324273825093994515123264314987343656557672599764632552331736010289036391759026156895069977871935318283401272858778207033310308721778630099567259389099126284067020211232616664535415428222363617418588459415291516924109122034950051629614906918460848840752486182763448971197274986057774884257141887577684707772396401070830627360717937789509690757188474506328766398038528764632252366090810891486803301308253670021860358887237495006719915988546032185037138659339839915547169515517329569079156656487831769127705898130530315219071800476141094238594731812025747121354531022341071819556249381121370719149079691226192569223000635688020876565891462724981203823241965537164959140368774663343645377386318944959503351176828213139358524103528085368042750176080274812684649321858053021329065716547867242901976667035977950566640358322582952094817915881228403003588951478758268761960171145254717707225339902388069817516680742806671747560291200503851447594635235879272476625937111274222976294926869062586699006719805321804475414678943456605427109281323309252118726344703744200989225773014078395863352861571696350988432346814776371519423629085376860602248577689586681448968322608801259403788955621700249011925358477337615324527969415051827308944638714739924586861600252658639516860035234995929100342246851489479102174196056355688029952172989825169186360488891920081735254493285450153770989304469649984452937967024988161787802094188682419373007181138606456825318521430781297127964706107739232079018608388784453663293362887141472531327182592232782939437513150600258024850796429696039983092563902134476161970827193772041539274138016993945591651023727525460903885760929284973363632985543963183282041514588477129047999969546169345124477837142787124721056974226084971531563889642802621978608455405280164965810803684094306765196502149983138639195374617718396761796602529071552174902735690564969942607214221462307659016115247577764121347719081387359036349003430320699827686327180079700792313432279897389236370917221679554885478908309801142368030980635906165991215961664823304509510604217087335710593805213456556830015010867449458738682073993600208507565826289310395582989569871025911405622473602675900617716728722415525155090372885222755627316102203893148235942569009534838537491476752868387638909503088498667948016447251764957163093843234676416342350953846466281521353272787687995987124725366673003378086290272789983952450574714276017546292569663777322386636397050300978477155848854924588416634140454224374324721504142906633350601258610328449643393702209277445962873962674346931389159089365813691478602753527516728430454032361976707705550867420813013810760553784699555469134805996057388885101107216099614397813853597318969283086807419674247183552353376873608815494911938353268039911322719891695691263989245660476818710311844051355695227564677086686072936326509195836039647483051550966384040368178144900058406374737782570305879386457370700865257483381067075715178239678199055281128949110388612495501273979691815546521715907090894981390785108473080825347637298915917772371764163649223055735932413383535014950200959369798288608616183328673410710593558725235150993876327865545408967556618765010199045543479655800527318983872361643720577404668738175111520223315708777734355742169380590987202039203742908363221143172781358847539203829414617671860477862038867937317503151054039789429550964607240777296828337081563473846986663801328907115455459324990556327543196981440324937245646234419234332194111917146915800212445250748305441372255403107530318288979187545409132903318909275643122356338719271534732960381581203140671686088343533399024237298150463248808293697537171149731851557743326243623845864925793196253215247746986013160480673338989420433329656427031577803027236135206385610669740343864184191839310976551022616843154498039739652972159850815789520858645306269595581932180856782372745714603480261591476714672612070569517860042027980114650442846412889532665427880043185254016377703655507473713485136388148082430470065544757651818382203116002576480962945634687357901124814303261234156567477403032466572060589316282006841863827345696963711400268818192972464487017060864265420828144701628555941760637322558181965721137607500478316888543646139705516104133981180055721312887815049411472378407675650423411095407526812795425359737573853617173551864312550381158284337895082158416794851964951818619190762125679490051007467729951465193781991673451306129427514004962337835411539232328959086864400793058697286267135753253637366034720802452760650980822186048866022406961119846677443686952686724027617442807688705822725905342325240017027484976913421919131948968656849673672985763378237016363101752378129832566547976731869486139682749442692923919518050665185719790873087409845420265818986298655271415130914526689565554124792075009137366966149311141266186423354575475164239171309232928425666896509019454191150956373422894758632008989496686412899505050296845920122925443810438353310940512254132263335200724692804857906494706948602534720723836991904746811209383470737257941668990800665168676117307006845979438003345706904717973154096834472054868763411203067625832296903760171848007324233528159972526569689906431935085395444191810512075813434796915040456041653123575246833771417867303230506118168653104005148084749616567903231596411670908235327846382707285779595373846075047192554135914940343468764480111664872167561429373115334994022613722632929828827829153591969499531835487326324714065812397880525365598558484832327295924827086689262086524102368280179296616184371672342084054781529763464535053255517603013428459973866339689213388248666082884245916081890631945794401407621521636783116612771261941567877620581830656322810153214126035902456115495436132915141184837106590126050277451622543395693786511095972814398163948134987376134680656597714001045499908249808477743166226782432743745646354105740919370986426519288863298339615753618270943796938322372584047857797277147662747342947916760136675563915844600345298452042075262263923121240616877460823936124596482599167401823083950647033195210718984881947953441383746659543241816299520562075004631170196271228652828334890717447592076800470382865013428044763865585600443788926009547597482966891005201194236563353728351455192127076661886901787497192232802258560887282334878634105407941557045576065494767220582174524921985066199860123323197265456114892037058462183251386257251112657955561206458790148831696373229885697305726054640933901275272605234799021970667731208554416425258845922134929520325105657480229065727432650007572305211797245293705449101385130943095657657359136172222748124380156621885288435733266981625347875906494990781424823414729941046566505226831115588728331126767501998433177957578287650664999006874572617948388472642459228459468142551996071694680451931233174767498082272588344297658355482064893986740566860894254610719655867065409918304768768299207245422214975986784800319077211356481870608300835122954205020601475161027803171341749153209671026486642728348930250703134349607712853128897969799702595449038474692617877641168907937472915100152891823299532423862629476529071527899136048405719751982619012749884356247332801239126726901417416685778703726012791072284589183831094449279806368083060539621067629887718558793271082004393836088207062168314215472682880141660412435400272880029769705343400221376848142832265019847107783211236716541062478052491499079094203540905550359852941560758955168077783731322177879725748179693906109659713480402706309756629506276863512109596323343211671024090737787318282680874399034962062775507319505123594604768993131765107600358136733113995311625571611474018186865192327865199982811703318701174274304024086707548884485886125393826137051966578651942210623053247061653205390237010761570186522105129209775216157631982529242725104014695196750337116361829455681520512167245614155457455818761984209900690070884754549731518685068774543955270145554554207095921106441086996389649127320458254289629340658579171148544800808767071470956743427556121921534951749284224583376594028510285050768295992790717962888559457138710988924626527104856866391025675061321844428964026517785439398954034931976003032594228685318330510750684161353027134806347432381501103543957713006514320696790844251681815341483302314807902819906113192718206600985838652727031144749585031152488568002848105452594260380713786881439793999243161399548895684189534302245090278509874572455085931748181920568161916781186487079057995054454824542696262519638600061460956596295854762644336763069906639024550976824815608503688440120523816930666226046804548597884908543582152518153313276492883594304706620649316516098322233842610040664841677324548928253542864289639693777007413104065661113906798912994253652223540274867444657379062256604884697766702031595623524216603355317745275692767961981832483281320325264282344235376863243585454875777845379509443015164522530896825993362396986143093978205535380892255276674132471211331852672544080381070388053698108200174735389580065687890675362508014133634675138754907010386237571341596838735688757399559036385304895523058921427293515754884830505318247334506557104275966742908109271417606511536407724463496498987711436069332415212094622066564729588458383427463774626625647923382960313364192179913894463750282377508186956863880183631058192303447027569704896379155596558193266166823100272852339694513826291058757852715482753135367990562166794141994874077496032046764416615200613984530196316357759541962082278246388808642256845233975723033175003889602314269691432460754144239528566589131360521182948710537724286932457825833229510555292254161129261355913423902809645657039652182665005095177257301400535457728821031182309288210265414471579336361354688936520719109323036943795619850208642242636918248020908982850433229080924886863422725727323367082126519794282308827112115050695740218135137528829896689107240668849535150059869026239467890015731590828404166678890250170006585240815716682819071496897199281679741874318681230333853097610103269824082617734597507073716338924369916587326802507339270400339593111152102066479442992152014811434043156006567142197134749041481059396180781236717306239383546157203702741201097996732422543711872131143832234639359400587209624980608964568650788624508659743909276743632829558988948437479258394226550913003592827937058473915882060427847620730449470452586605344628870880883399077387394466087261126066457600706107647825930484597754795170507917400055121360849269133672697159107044684989292064840428893520369165418070350470160864472962042695703804527861747160710329549459481055382255503877959572163281595068692778697698797623819525397689607107164181446490480720170750715173959492300102277429261760893241599190990541086731233768478148096202003108008019160952393250636456748081208945212451599610783688140657668017964308159628170978568232136027493994100099421771811337582940108158801264190962191716560037375457987068900404843557449353256296611067876818150963910486658492243388479116956707570363660017283956387492264359697331689470438982030081903975712870575032209290132346792485503440472936027922877025194163421414558164839199643624847949270704912366049622677640428002696600655984467756330342307435641626204777244338524588528283174949189359646176566196816079366163083225681657539512013483406506994655714607066411238859120543330303712917972980635387991522229063735330279104578104168184486851630629309451110467480165829875587473676377496640340166992267481623896685044837076256660146964850481377434527480997033814777964997162075778345858029121995553041636085977496236673360968035875450274161372094541493963322168100801711600791881362499982165725446332519240013037895576255548612337181490693172080219657161524054608170108051223540327913282824483285020372230362537256184391252479874260272545167136854608399266467558420026196816533750640062207441640845518897722342479237595010254085501915051837112352450701288133459619696031669887505585861742730770124237484835542829978599888299219705820715510325278531935788905645394847404928340914101841173169176494035113410787220876899912487807138211612478016885283602224899992157303380695698955454385545834569982226133428704434892919505081288677286198049731983622800269086360153649585814818871926730867920778720264726543389856299783512705761589103244901866359219780272204728413754589673740059624592291008671873694671606554376783060695844888575427861150784922501283585005282588672261926781721666693319523404436434369767632733218455729449235520641285305585312006006424082455750339371523340621207996419959621525977138128664291583596394038016061367748394408797283851799563274683427484200318083303470400473636493965320298992662528845133619395630162019918369959624102507375818482415052457368545067540662785369088581601969957227410546438941117631940363447372336815969879065715921183105645834892560434776283337624159506843573268456814951310992932387432986245816698637736936168954454737541228462154507100747975921012008285281677703471764879043318463311649273888063085085644465019335364830855373199181117836286200226534154804381840171179956309530384865041315055365819566016298416513325910557815792462456821670399371735938831483530923086456895463233124804767652126742028874239781129053931815525175419176542890208658433005041054861174231716566959980482749493442810062032673300417986952330207646056797421214355273625511285964748580646047968584153232363063667005992186545916174168031976075620631073963497154265588145107529893050403410434267116337563937415770679320720760407106514176482079135941446368308523687335905000748971880653500041878104118077397771400846320317289008714996002361190554531671654733997068308953222537284416362462159013736068621407745055009571259479061584385636346424386859182448895803465403655021573904592265076583528389002772944204901440002232563703516083685006805050293430256773597092994182593709212194626117270111083613636330835266294327404976007938787718613504095744490464088496741523222140460615179898960202324784051091203259641498377414302839347672348807005640401663223328602982563293471638001520718189659832658259523287598789674448495645676302347123119247925749015019160474297592189827294195786202451128085216494619031734392731613790689681086532713522762544989259934784566155073259806585352114413815862685832021728231754811106527110367013287015222264892245346183385581780352515729864614908761872594005065814016988589109910018559663656854904193035159034080436812546968999966454963271950559019728572331163478917273290110853753168155068360488121492884425936121347794934463464041823867172423757085829192168292004312555070912858175473172204253718965324337343299685371909986951467632078737078388968176716506885272162745222907842796590883527617168114287832778666982972703124683705082654907638127267674643823878395162375829128389537024784628411986373602496436773521240028238188138569341033798515691720080510252019671466442118383664199247272809878111012787275009558762602234596704007511728538504760475861105565927320620405178032222987752386449588255202497814025713924309941152541862466605292701523420809012049878856592728888883831566435774672295289614111390167474278678146832017982663974906101388626811760213662867720965454404693923275037858387284218913518118113524926774191692820493985897336859016654755997765885853949468635735300156884630800327835712907435534893860547543102629765237829440426813268114067127125646192871064585477307457771853317398257287435634894528883113246096624117136799092347402596775868410090859613947732988425512329102473732809524952392220646408462354247409293254006241724649307994608398757013116440105396489373378437227074597064723991633962397844590620453128198315009537980647156995522726501628396869236227928346154922093225085646692615772380984282361050616194414611127615193475726715045813089366064623420640102697544220204167592040171553205739846492897302174744938632181929707133175009610392669142224428356756034585188053300739787406263911253331691087726066346473437244560886403720783671114506929622940582622141510141757516906156135587935268491577599403555279132759024874188566432882079280399922181756932870672927395740599016540696191480648700113053744942043107327424973766564897229666216798784349142231417177617089857826465144341138826844364613378077215577567213370741635444666633247791438168409265828356494538815507522138692564744690577343441617645424470696469729705246742775077185109618517227927138379092597222226022629572038941374868677256694786086861387808307110802142193364647170633057037524410452084321802103186556883400957737058358841872603650775819536222198040046835393932734623990992530692990547374738232659220866489133142510783588133825974402892453093116391064477867925105864176967586608217057962845194397802600568441400355183101669414842715437989709009386641215000976435634936910321255242259905140719618361984250162527503243361231755229067996761760846990279666650647050174978435870142800258988986954304448526121615294639308321901860821508481898558519886730142110126212196590226739992639660202354596880930132748488333564926558346222453646727581310832838688813076571517306776462637460982333141204666828046589802117050161886975503674643826742343487828543204011203059501638779909483572865705338065432052187152687306913614349313987905887307419350115291373730813337472546341311543922898997738751143331773455980736185979881457041414798448346647586519839795113055789146766695612866510098432967100365599996048787289407041216347442075244848423736383538182573904947722503102713304023227332054093642498321606832876005464867121077132059509649221990134899684775843639898675898652946139779476274989355108969350292405678335605639095348023113878621953997081569206860707713288785343035002054330887603225936377822015420917982212760711132789509425151715021400923335555848493959049118380996033444961119153544249500272479278272096389273826739308575345146366172577568992605147384658864366726592423736243619387344339248535165458058263787934346516143029582076408172037253343877400134418545117931699104015242750717718250188248948529313426673891749064916911486543541243956174201974932114033551697628490300562329742143257187032669245321976459417901137915905221788890540172927159374037481554173224865858704739134577464816716685647968271388468447471168513933931499288898752399170621328050967819058657956454392085081412088543406916987785595607748652124294323451700257251853708052817079475885220376314511884651792877863090052013121667939095850555076554392724194398912326887718790592718838643641116061927462662070593501126574082291721019541178638863463100998564459379849321041896218606191400024362246886532709371106375071934371116267933736712354894078323580196523956381678414543331859299522712646443721608507566843861964611178277631319611942154142222191262597476122649073949646337486867181894523416413804379006272844296229079651917291165754095406523703913207159501997008339520310230693228547965314556682201337566446060484450497156339409391064654116453205679286534717671894967470820329967136231028941295228641275548756056563389004971471178014323090140339007844642915035763070994459571331344346899534667479841619883347883998543298850848143254627740207029366860835248435240193305584669560851572232595523187572276290476091020691439719837632104785250954855041970599178474972058803217092013581855811741129441573800307018525552737396377805923204063057812661356970741480988378550242553065810077899343919087128725404825497117026835522065432020365038253658948580361460446818403367806457043316013925173673313752527717324364824349529912811793953699993720539235592852915270393353808646250532043600301914417150368786442032597650471338285378341961743366533814971929686686920274136629347605273951994123533796507862797667817836821136478487102909724898156758223512439166116731815996143021777909636447605654762309198933243948719967176367301660543820929484524524729894913181989790986280142520018818630791639404455132956211243776844873698532678640552424959151339653524536417560763706420862975289969714772360160874570240001216243832525234005493498124107621703903718310146435187930351242384020970478323778058010092555417197026429946512719375987257020950169160449769397570737525076127232561160814270738904923411189008096868058056441791393739099678055453864536557544009937899554201085226275662938582327913649429908556672533404343934269688413253284459859808952954890240368145643775542089445394139140886448796604784370642034849364042658392575963978556762893886302647624557007167546911436647465118120528909499449274471266567668994681167766450606441380485596138998799388685123427626079707284090420315579221993893237552841627768473164752585519982058201960460554598966959617172000184185797569995554392741615778228324357149386863107735769733742349146950971010378967355052429940240021612863534222725776346259213145888010214669146224173790178264167752731806248653595988304193904428268866587448366876072213140282813509517206193597590109321111213534969431245041953341127685239211253608287026786689577569754334212611470278726378991395322112345201436617894110138141105688394397190189451584508779395819327352613123911308232490524285978350600766893879080873407728080526906707511241209822802131032111265624406847850357202921277243708559820557128008363553729986510784375914344025349231788377961700583454751198511481891889824876918141208131862488836806725846324702043667002744066603456944614391571763424952181588879286180897762486320374230884925027391961489534236924926868983667170733414564128094934656960027467698312524953061773979999520405952621766139835771237947287452935783004111260859356281482119037314306226311975353283142142499879943725620064359017489408811122160571991776056513059048154098385438819807205842989860582031585417456167841655891973777947710907447758991953913818574103195392972272197983282898126274368395682197247161957274184721946763817522177576473464462842847782601730220300790982872751373990835689423621059068680546367791725895634416028016338203177554603006364941581882833598823756028337313831026715169083249007399960340883464409816620679640653261953440194276589623490736474859597131932851148176095723985624154850583574018752329273695551736591919812643134676703649855207120980400681391628128504353035285639388891866843723801716186326859453349878109376635080039871028586575217502216580344518696256707445797009704397062033998685739050145011966405689475088317906176035771419524176842836972489432595741501576026754948320488165583250974504059918240826487080400629018971835300708679532687365259553624508875005526424475695797693604161193185426492748126117745913464601128661048366585381112131067369211448821618696565111326829818272138068847859142122760905264450494252701648547058083073374991067568131028043815895660584031617469830946322551766262611452468071411809937521952420957247606996714452041850989196540327255433884346299745550592850196304368626106937716898493264038276406548016089160961271154800540409239618469320513153647871629369390012826282850790655745605997581419440632374548192033355352301463156395455234327126749252514391004480490713394691863485181584309727032769157522541728866686123181374421111026763629312323932271075510161919264765981018122917589490476092386831616348246344619260661905077107761471560641094469860413087661866020981970944742570488676421871412351083072701948065341104427444072433517491296893006039673538049331658843449792767541050182620314055076878043640841074394725040246115491930193794411411274304496426775948752029354703470369216109259639908657411488350845610528202819072535054021882857440674233471545824559947414402832667999080643674230522679455616096895307250751287266059417717434646549093336151068153519236591354461349323638369791861593559165170413670999590474139622094796428904162436707697146976494694962856267145021168885723386371483891478374032012930677937427984994529957152000595104339345698322787263374054048938279070933263007831313736552552004726648654313425070119533484156252103405530943879291350920022247013117567894682912359954013167319309681413275933542774904572403459284004628468981523658868680452774126074764463527227449088064398150939904807703200859091923000854766287176187308314152709256577922075281510544003981927114848238263319727085495712283685405711502780938706865135524961873444004978452378147798905247149709422366488072286385277781937628823549939233281145455964507042495120642733594597105869871296655068894608204181624530636791347239511587996857121019872815386140247579277163706430496208701630023077980160642863588517628617907006637389524823763872360826292855677269394134077155773142415091426052050106324297282894074881105097287510930514146359335294597332171097978220251393296565566825508577030838948761153121317957295142268080363188453237694163514201237157615740601079973064074556516040443860022720987493078881421910652687382386386157412842277800948590240295669322365119673687139526537842963392312908329314350626144974267413956763493532043930815950856576988826562198946622997507226922641435216942764126984159545205023634822247979516166361330035057311603341883526474970839354905358964940164113108057817766880621859435119531341800474142552019933477437940495779387384298348233371698201842423886701360484871340402176374502428348418277086410509700710909581144070900804284383546555827539488928555511711853629314095092679054533271130657235317327779920195315832256693871237167590625034759655188033561762987880645629064568522499208760551260649651938843939683258784723277065034840440945507941567729555850059404455922128282117396590618012745469105520075404997219010559169762113525195612713174137480744346572909263335914212800665901434737405313000276446210535777995322934853950577567800573660335921074414272969146893161784373260352120800266768701275346649879576338306618118109425456780981407006642551345544181405302095038065288779127803273490966441331755894540069860262666260594033054584029153212456622183590783671582317615873259559846067401052937635327799895298164018267633931936590072372086439070060270340300347828546130166850194847308294749395553333653979293101650881590648089162267757470152669690459742350419389731675831017388512702427649079367213669225009310885463587913952668772746022246950617352334544268507220087202250446033992871191578617084168453408436315499663325829917519816494881132531290609386915272509237404388066179479285008619139505471549315129273038152651590395053670154084445582452840060629809942707459914528248095585302887425149841951913565507222879574513974033913409034085698747814810355097139427774460590393089568040361450056619572516866363188173865222583318013725870952092595364512550111318949936812626575340782672968000695429731913843967827165628230117325913789664879949493879074568557801632848762147722996945903778909629122652515301599212895743125746767485538113566207515087019411871463391859716954258326196084256657986527158626995245082546622086658389977402128497675303246778708114612476265885925949438709163332251311332407844895131853858523575194076707980440406695427322028361941437669299271793001129222707622800600284057728327980397030118729922309108872792961427737757252308107172061949889246960873856554310779477858522210189902415513655169881591221369473556851299254961606311407831696035342171832664455962215390662118777232967369562499008577218724979215735619813928563140162813150962684587841460240379304006051460695514693776647133381709119015520611991892626907787766998551025010111602415536479236863446796535864624405057153576741798475227664079145321474442144130212581280541387160068551222190981137360933875825470490185932930429117709649905176527300533621222507248432778773251086353118239208361349799895528172398572804493637130222667933977840778628922657047672092370600653128670084910272638731982539565765572324021174574467338472605131937012326076259614416020858924023500279474695350584595167562721625376466647803163936786007896587799424346698850854185120524341568607472523098180387679747215286967081220975605728771614412885414993554535932114490978057114249835445118704359227988941832806120422844422564477657131925078251040193832741768378208255246673058705480813199357375737709171663728023068033558436457802908110649748100127008413052317545156915972186137300149331254629298254405195170034627640212366526075879997465623659221582302716751304443272571513864010842380721169914428348129574718397314236518975942643830663200448805508210264863076642323992386406232583561951201293734608633993009150022924633281597857999424118020335934223520133015227842919948784375358511922442033000364838933935837319876947702610947364047653036783904817389357765479601389860493912285979216792766022003010566648526846059126515717141543926392688427089463064514327745931504816081400184108443449951798662804520427192803253165863553241155303377273345714112742357676964988985854782190861678204832551318805111926896722923814637205631588533134391516875988651753264651098355241793012246162219124930125786361242501247599134117441663587053557079556828743222314411596269562966277105080196196345365254184868994857477204314066244792640850939325098343955906534759746376178826155010417302999555802455987701004930300456899271222041226186683323429212813239486063803733504349375137727629818688373573103454653403891672037094403965378125176100718848325452931672594130897340569759612088677611028953405552438203080297092974599887703976198288255097731356168077195115832994134018827587926502584069725902871739462015875263414797940136578850753098428019526764735386591916981470181047774572397713427393842655259746418689822048481141516043506388816393363070229464580314570049206676628870154464174836326967658494621407361597813373264481014241495832208525324943826210349779093865103427235993242658557738959848720452166964298542496477628596408505149612565621627470804177352727545775205445262390000394726703309591117346498868979383614907708470196895079076858498101323527094723404074098044112693262440311709106311456442368543455146560779312494803526155629281586568012427566143899818733958775250942050106668589902157158809100185015390260169427484388863177786552776296887476845937290821016075619746921284245012840225513846414191124167163948969437027210264724861162297189349771588224331583387589092009313588417431737243450645796534591602227780586687452364364776350595762736126822776484044892146174015801044289682920890221334713980116301653441302713419430240538941727125076034788121925231071901408860159727160237266459656779594034998264007964318255912012362612585400476291799359638025656531207715822223012164447814742601949703501611152314153039387171705073854604312158918957640866072288656308921083965597768822606735711433116044331821384332243541384526674140143415949565612269579316116851921635292053525253431014622316136052223982030479112181284833509627743346154137645198068055824825704962883144831892345153632584304235357539170646314126501830492557907764425012240056597238550075000298289872036260478272312511304701997938129980212761789014438303102048902694764485644940578276562297350669937563074662392434269690776651055959239293411575769872605547921288029995743275799654444495830070823243724798771130186975078610681118356697125886086805017211945607121485152234299615219394121465834969695912028432978891533559674336126684636200400416013591391620205183949403334864331325731934412623660172802764291366270467854435514033988997452569272689210300366571515557849463189640703448661887008301933236374644504029356494104157075232178923985383751156435070298941513975524582318121792226740031985347576242633291464822689609600798101817060586763301637057679032038527742198397081370308437184584849313834773799637281844664138713924541112462582763979610855351244209163898544726913787806570988772793143063063873408505784302092922009514849125240897404497250638249044014170498102125554486743512979377780571586058095478808849589003276125114210075741868194934437593990962741719869584240471338224337184760682332864147430704749473368524477528671787945350101788597566296795934217438512617203706296366698318123776796842267480243937753544230944958837642857559776707787700633065685679933950993941368534866031045491062713332300537218982520724022135899441326837709297509370654479024206566207718785212136898565562818112944366915010503308784900149269472721189827364379644731130493789170566769427782720515129830605018458921105823210359152612326934780588502904677525831038360473718345499260227436533143311733317553908963581029057332506620168773074445382304768063811927356121832346142962975262681189456287296263746135142736990247639849876715594031874822283659465079182772042499048971204861958209757728435599747053498045136777462011865761112400697309411861747416417123593249690542682931146921762903160764886779746620911970869473322578052621199917205724526733470079423122455016106882951874569443984380358764593707578016010095777696746708962719696854493986718575372198774102145297176797925339998658631268341061726544192006215539570718231680329272191330096481557367855923232718870006773771336438019386105970902088910565032846103017413336082036582203563571023145915554489865838289748541288774563360733965109246163120684014976481130623965861900203472469088102210837383753898811695662444707374372885521620994609926935570754631487841635111374964412985758185155029899936794882515749443418195088343109419173497060979420363979737001119873882639917480647088043430626417921425151301491762234839786305438555922804203915305903928918927475842726569893854153005808410378607077232967051690786847708648637149040101377982970271128236387480663777753798151226033600801070163181148364056985986101089655635565086163269492288880574374549120349237948663524142545819741702119741175224732430450043186400528842650910665389555439767393591742721765719730008076022123074359482795443478798012778881295956444100558196588559110761760037926793562901240117099694970065316321733358107634891615863711400936551668433453287005884880857441897174354482146151207708287517864766484954101977321060218467590115402967185297570928083948485701827557679803775839709589814541494126064333191069112406296437761927897939147011469150277901582405650957716433187771770206367334583875148954716140719681032289735437723957447079357207114786964344744871168646949870747304036010957483926772397938602390004351144670089734499343193767834010532269336898875270361141661638594798492885425181808252883807828561334321201514077645163248671700173730426055975027725352147424786801441341736090365194674160502619178750135631321557672561067486621256011336842425691522733811651497960691632558951191280346841376948073498440682574756884247723545918893149037613084757497748240668280161962869612265053424988450010116546960064119084849008640730583421783395828345371866535732145188031877186377578395334830937814906586687946854600483251171452372763025983708327983752824856171571359441464399066335633030105052511648803754188911549712052931620163082125250372369001840861325405363171704105917663451092086268789489839874079836696493903724460517792969198118060355703502447887901707341688053681227241029399837231277028938737831170653508200675042413290922093550009394224182438815414616254308113113476163573074759336138519245356393567449245233066528090794185268839587499346293780089834796233477792493938700078554006549529898416027617554226504277861161943878986731392726512144504640201669990337595223722716108590210509543003505038287524463303205117773569654466370029725180470826523663698724940239142852410559788243212180361253217171652996546228560651589070020129879289383526455044723193100963537709095568787721725112800287625439260932951890448400170515697489075575140444922399348201753046306575242762313831957790983605542899955196353945450196421851953534349794344650336378820744596431252454570764135570247127210107744511574255993668723394176530963380493533876508621417728334570115629994478113152393330294975113511445062826245882187480814742547382745297095584690193555122375787428172223133505393059688236134782755416493211166954332931543622722022663417558812320319508905033440628333327404675929348611859831909617052960012278887859043990257363248073640422650934855211865964555021564843549668916759491871232749833941787669597749409260670834707604373747266377503330500223254680777840924930967214174007188318734873931186662831207542588892288039773657858474708882541856165746338153392463760765608883794374451989432924735904801197909199725335910131775615004167756425151068326388282521354295568714813521247983749499639910008072494432077659790318877719869884026860530768089642108338058352131447306897602653829076430810354144659496165040861998948573539841924623813104766259912783878238118111318523820678405147948758363385212957082501553474851760845881586692357022193629760077662381662108734061343416015311195005662685081161223668829168953792167372613065498307721704955755453278408546794300323889542901634112494837248732433385020461760170152143373899852067771633828983081727011861010501770026574111131188093851258670648027409900494707577716633423954721417367425717608012101200891812328021417221665478151523166175083123756924589591827868089201194525211575824283303283062363178728946348482242510841929596002538404912376990614957676786048012498711102146459075203784640586243217747158496907568731639700407912744126380789911092410497555008026136802488512607400544401197914151996419581442905233124442818705359235279930044556327367373470079944626563851055078779565663215029109758025231163658522932395148051539168641105950073352775970165451466287693245383674883674321748532141346375779583185051660650626641621702571694062559071503248716138248719781890220230886548868968715453232773743522105338881022900496831573816858978237028482813355481398816597380012343602228252471765264530219018893228021079096010891932221509309571622670680755222355380181410836250813376503222865946928669254539882289029061319661161802854193190858173475140958553589920048080262237181573500719793313600126801033140820352181125374897574707029991464176484683346855808896598143494036950968065882515415361506954664108794386848419542454275036729564410282225751588379811888151654116934202482723235065000181183189592464975184883357526035910948736725275815603018183615228633951014901279444169803550001525592572734141755728673124365922205901569845326857417235400132674592284860460152071860726296132385668641370082596397314539041520052101147688594566496447827585089105963193618028671722303128578377741541582127701190467877956142228371337771351499601888276997786687738562687377199545353529510430347683504748981455718472086616499816779532871533025700608022548441264646600132539217190912563000599914210620829423591591074358182894177908128832643672753901043720878564634548538525828298852095594942865438898175532011986581322323627855834768502533501220965756970613505518376690985080982758988373276548644861594129464762916575670661093692888187276196106285473562919917527760182442103799951950431574363660060015677376047071692412820489223502568632596213323838812487404398702693161066769363808317988416047146284389613568812183499743473952622994179617399193690179589081883655579673031041914530226307397130723146251638712401865839647716027730382692186660481227733855606196529401885980907152340820922901913139682767358018125965731369946382642353947726857929015214952318376682305977386220062317454342679913195643628044339229156011991961490130676309330359080430648328641724645613093273025996206931326144910203968669172249806255492630211329744030379958418469613668119196798787623916269024093553800631562039017960393564299130784127863642363575498055683970323302334853511766884939177427122197905380358565127861647617867126108163686656872877455310547312989677756727809195196482625070812640179186510576517853184011308228935800591037768814013286650433285384459878064943042261418325469707220969863357974264485779412230156521086953687323314898067225194748744744757583134558549245041865206413484936261048441023879964618315525988056010447709455431527203788616959735573673919920475421717405296125866827930893753469946436823824464265748172217890097713925882739197513528507564705829703505232460535954090475584736843670915788113618860425867258717351562713708309868541294316451456510100802874582839381388245868498101366456287211467794101832671051590679301114690372466245093829080617205611599347342960295497692137609279660393338423895185153219511016240466937440242454764156561605841019939884308553981111669424658510428495107131180184395661866336452191025434134206687714009453677635340488259531363603190994590373863871337453401234324968895815828082500603957933369193653040684451040783198524835433860574027507762496405817385599275230335151486400585485309647408509210458360195784462075258272974654358916943658358379224399985545939900961937619339198672130239110631458083064618567017045444665935187281058709059917725751753911496211723267811240342890985175560016985061576574472475044054422758437925158483206849409880422054601667070933430405845716512390943248081203412856866217340844422434755531448073342480506021376845875558202943736499904086885250421329423341254731216654052880919793171994633841027845294320974373409093548559648739606905471385825282937981288855702053430161177850590323677570538674072517699803486869085961452068635475036838827894821485403734945426102913131627384853064383604140884604972010429532067565663218374696860469556794928059050128454810342897128394205560306204314091976106490159785249227574792913967511695083696043432787173957402415554979196038909935499349479942722493242708750445049140393147247582344689021289915371846315693259577089695222672830853288404801303798103407823484739924054424860464151474221345958965605670219950559116289103333280230949957812699695511443378357400683367936461144375999300753505728851288203885731675789460771337898027046937884700258075798755252485765601965339805698814488466267180014735266981118919003541854081273378798259404695940651685992269994348819488851925939049653209637417188153181654142895356864307990143970762626512214138342933092754957595861550308900928784999296693944499862183584101242098912974277853332669468628278430270190456381609952343952633558674706409333440894422577251041009232969174742907425364440375518665576901852314091032801169375258595221815635495842613400639536411959122620238088708657376111096560533333733263733071415461070289368291479706194047796254465864480923344983017094034390178041375463050770025065705110648471283808973342119578465183567957293624784456194803004995546148131641131229280080595597203766311381795186465089722342062424431204915046625679629182458409406927195698666659706427930066981974752878810349959797903763570700670179447417197561464275520411049191716794027414408058148294906942163231194778890087823036408676615381464689693481391398292047921566570011262211142367740063538354293762449182756697060086879481782787261843680594126167572996663752139098526676072671146042508983570912491277670159635546451835430352764419990548370308932866309543277566455405557124096911838955948364679891748916712431796479044764482378765923637865801907743296337639398926160403985763869035611027598583497660182253407308217538608138938118218805788700545175583608584110710774673429357056079054752208811955942527855101881500759455306026517085730028181533218062811237800927252367669466677734930153157814519231728593232321253037097609761664446434409422619484955743793017968638956701206357297912515811021274850663606668146759695998603134421400660806671913326032110137913042718506791729639044893995136878361261107275389843461000159342104415113149257663383894938859731687870249167682318123806434074941323065743835646249524317864218463370859339585197534453334553308326833772142845541951529385409824021001680234627982982341220458604138711565966505049687281688427319332511653184437945675190995788902787222369555267227145159770246283576453650155631329526110431544864439441871031335898800267004797535474138251390414017745808248051027717912324508445224570895163930181049693587347042636917415911445175403155324500425857395752406150354703415240209680703359753090764602453572477568632889254045554313417581856337149665278197363048190734898706374309451147759111814211407699137144308770264933070417468517189011306708288511822452702243861056695447964261614539270334265500665316893891157215099967003829670364317269125111926301999879011119233001282377605432400410217098082469423500240976417111601532917437451110609666957151494352508091526838412484245189278158935263096039944360360829985603141047651273777750625313182220136041017161044175617834546981197251006130771030151833844058218175956848589056730197784241287418571006515447424757314176590757761066587700194309035514053246984962700335833397044898804610107116026649989463433926248269834725486677740839349841808633051852037124318791879017210736319495755868675530810834484196917293537541590082959795971972760543644491923218191005871154236383962309671207293919089370634134320936465516281226481568044719342426942490869814824783331646517763317771600543448813965370495111879058146071302539300627806877499076176746913710295092480260154694048000869989124308462104426233007706137170179186715928006845806124103202112255600244099957022154992965882554572186957339769702453491656420336866161553841448458251616051259799279942695982849982635783795252056034013626842723038941175897883139841090033415196670334422652640361042983018312847660937053670542408802992412109611402985464740714426106395410611891067175666838665405627490100248988014608298547937217310850333069516427854961770865310015178153269951874714012178387013105231861600669658631568822150626754569658722929120910026930696196417784455092452536807825199182350140125624837928413210217326050845165496586265054672476421340328125238721418112298588026584609101855730116624880380392042997286796103684050586828749759570770951133365839973868681882002299798980714212352803124473366101744020098515294503503045220972739408408137474270985050215407278313379683288630809559485291840539936031896114850633493585092698865739386392269522957186431735952479809804993235679641416643612639285165323496778198758303360176695337871152493930519764445191882891726920815621012230640903985164721925123987354299567486095588421598587357707325793417809290358102566517327753750035774918438939725849084342969566163859259679378449379858885667605594162763256630591824991168862262974434305192413338886075415991093500362905509098385074214393218261299507864796461955668739250439753149777830972692213608972982589743275910690889955617606256600776160510451464845953381028457173921964496842448530978902880664692542174145841448116399214956063116185218472574029924046183939481341384614531490813674029033130821202671554049595411551837278488526280506932981813742716603890283359191062141874315206262309491554102839240509014723299145226110229600641667247176576338007798650419371142883916040886584480480771725744441870266744000841984353932400447940627392296947130839034218091195708147383723355624765261568148610699595788120061616953282650045659716670404503273783215780764084597181409874143107989897288491207273514511052106665854179649571431078679874071494794063955603576948201815848957767876172251006887416956963799052282631263751030994532320070668365440551023705320880923035704211687528343819512050102692484598649739875270838820261756834082255898853210055432232501288792833362408636066104321525743916633897190146416967049005003566241562562673045311294089127225459531348622097374904801923541210520738018065152410375675263498240749054715139286169541695285240161864097871669918210853076148641817859493268106191318302445057111775105876854733396140214023964804029721025288302835033057078491480318333774480719236323946705194244624058718610907227016017210599574701852596348212024029330520556976354797719662682855284050042312078652841326327274695492427504114427848312705925280037906398662733324822337589726687121377764061355295179104273564187078929464911401975559205168738861289826205262523391801432769373243350469176759874081663728086421068694144927949007078693449428468109837700426324493969736965510431777031972976953232332407594789243531328869647812257200826813410782900966074762052188857296643523855740967170002955665636450892410247545644216633297154505061853804455172955485657760977871382217461976161525316019537068495053567172020359654541849374276953484212702914349737322053527834613015736873284968771334343957762854908188475663270233266126682952268018086602144298887979414564832972013073446330069351347016552424240198834118579045453995783796326123142591772118017113997956007439343637456858313430366566026340519957436132165660568014924216814138057424761351870730508191748509321638346082088965966684114300556116755905161175411455113298675536939072383331871677945194206998678857002620768850417105137607994470372081189303162627577375045228072425119260462350601958995417793522989074839385276597207162635827615560340129223262797996980232594577103016630198304243361367205195649872012790446676012799611373901207603634276553848951929135951295553601474497250794365101549262980739047148670883137421581569182376657337789759895488178372479770273733631377119090970529466889269634307195114609794496100844298453665198725392564993502477419423513260583958615775639749922170230965824409928883268865993950086338519058403544526764377434861396201322546813335974144730501950875542336861725802763032709597206172402373670243075194249660389076023435198188436603229220610816900390030982424623337802091664907597791196194407048755656740898553344762856575442946081036123403501661852173803670745275555725200844984261983527764358524487859497703618098591236795371023603517929550641608883197331228578053739982764646538723349954316214927219143215326481282112125295124709463049303590761519184116054480312761870377445608173287570494924598513229912998059198160894689926680985038690193117735523205384901449870283563926436547399453992750629206526016146956496910829925273393526115648481173722665300289581738182563376515335651859803871578260631139349332580019540214736387978201777097715650405287378562364888204118044489225435933449592855312621356056294359245096446403382405487921411952055373625334408501933802723753393760236147958807599872787126406877797134490916784035364624413548987875582625787682720531040317801094367476801750805347154927524804574653958178924422989782776210074691923758126135554792751244590135704025718438677600074664577748301255002280208449730415579866438620539285800248688098327120133798881235683035819528894125103526582474439489501458472108884021972425363937116728698960302704918517017531355671316740865347576969943028781355706888314528218551513783128791614747266676712981458535078021765673202282444149623685732305464487693796056535468653812110642608298708843504220795492181685872875357471363456088884591071820705505144936399117435492988327936374517101278788975791762000009532098796236861710365822839742703283721086846454613038085397600062966525454672682860493101252633783084743607815684157990908229782935501819405987538543271655892480888800135256687406831532959563068064045718124018120081029422866706430989923566270128238223845659450960838670915083109617755180245641491183658796267559630779133854821318854159058832873378397496719574494258052906394814662201976453480534556469024982461440592799236753713124973697271022629862702966414166726544879930532291553435519849017501897563662502863120020005595083762623121812376078541949052789370722536033396678700870653440479813805709308920302192937160155820430282323135347524555416352587720010240022655888577246732970679454585976436433141871404786049901902895276066283896872021969394489975224825307713932174224388919120494308893286660685941575172821325247205019133519353466198616822907053795900215336265521628136693939894574670488354230063929487103774510869082007067682146004671655550840187071059331652271120990512452186758209632323451860412530298073885291866313243793682104207407546171455349163734544981154766015856183647325849581554341331952464644496847445521561570169438221846545011206920464317459007404829866347066675314508663823836015873445530973872547496247794406940204439828386497385547714973875636944920041951018801996164654978178467919658906515668052411907924470444050670390882680053968509084356602519004590598497403461773883794972003209236500786441593787461816202754888073083432302051919472131277333084351806270858491773213505532995731110384631744043733355605571787191205726034836730671359597866007096755523355799044704019479981943383519821625166804279570288444665369403672180374161954848237790065101328709315308117848977611649359484905128162061773294939104502939656791269657254719953085233552480077553940070314194470283070310853843030448041793346878627784978543001983272176909051057080142345597384287129355542843235470291504689442064784919562778315319984903311864023810975297814945291994058236329138328705973535774055410373970757149599349911620286910504226485806873338688641452023104816609332019792408530981910941339876487810007578576077122682071296689803105792972210061324076195962033339695112258286128418961367413338417898309443441227902494098431745926190673046010262975229591368717484568222891803122395297569779670222618216544670779804167736011399781648574908623328870671368724869972322093504443740448541872343316591625499373807353618724416782467081358496638496970019953343900158907892472229196510207597121848868357605881946980604273785146039317343914655169851876986046296602459901433262261293517683161161826814521460798761598420023660213565975181587242141427428979018577105471814084680678490270754040514005140249664173065920872724447336380199570484271894987321520292675424890981630536572274064556580500517851479379575920400198027970215434594112927172655494776159160063682635584005890876306110461976019623041626748069936217887031370957846456239905291870351231825697211159193774950313610715028847111020786073537399458714565350094944286458137040147344375087762640756100595016518243170020820760636636692913809932814890366018767152820831876346517663521979473507210116162511282416728592180796873658965770253002056919445347110756379221997422414906519350207824169253656096323628082223750096047161432273156920821698146288297134234531086988009844236410138934443504741431679021102315458478268781336741234700732812814829770087480331212529454438358814236352137803280883691884677318205392310877305503650383138470374019095903023551228536056954383594525706410313443836644194339355085488841153134119988760729635965712196858483369253373648633649064120357854280213814021616535848602078110471055236416603796926038744568058598796761862709162072522268598814902610036088638991655184968471359060609830617068306659154456758430380573872101423125006550281786217459832226981498463233656773167465840122970190456369728963738859280201906970670731168690193258178002833735318592919847033002789233510069979810688017680301610195304068545294446900174196535409359654496120286556689893448405207901428023190402196510594583928075620587090822391810332814724566201723144884637950093609563049168376134000694951139627751033413779048720647356897821961196312738471724263084843805555236369969186864285431502695942749032836183444725486984682156471279832102618254125098554256193603778244384213764625351902319016872607711347085187574281040323002995074585388175857295824806209468512085344890913707354418948058339801360015264931364836686867032227455147370442444898093078489365788431273268829083202465070655285967224883950741702647626055922167162716968206492357043722255251947880653198976361900910734592345526589697889757211327993982841288738113161998944413674751562380167586382806987993212565450466601500830860583110479151684519990440230635513714902761630761062969555218216855292553076070524011666126943255565218925885355662618673124025643866089063449921076828588285732858338243642140784161592758474719612940591749903564332348768932571857133249746287428594712060528948392163270743431193341183595802188608199055883309786807482111206582298518009173824314999574420245602905621809377194446196247664676428340876662343663786822318945026000962972851911912609272213297690964935972296011476048171941346288426154638073706246867584169753431471020725612674027190190239305417152275380556619913967744015870709685691889180571475797192113260795985190744622548891467733002337523328817389902696589404020698613815556044514410671077738021198248784644989767579232900618498552184548441179478866621967863422553308687092586340035609932521998381864737595832123660232453807671701541104360136563187005710255840165782653271861633819781367757903290124702027115851272589030966654518873768869682206716893043657678923995893078770767516306991239781887387977451536136832886990174543809603153563283302282137892439503665556615881283440342636191473256528576854788644434341199119803639278646668547665901272004654501919906923900623977632428284269071102730702613561915683158907495604778152130343773585676463471883607400524895296950707463615370239719832874820857832188639888474597731040879449201291834133996848295921755753423280327339932449225930166417016050557887128920082073625828565975494842122622738025577116026228344762276097149958790891487796324623953313968101163394032593340425868377168189633234953097995059959945279585067572962760941163050363561660921846219717392358421641589355706220297261161366523436925905375025285880727976559063926595667566164004201862822438757229686016097454832399765309508618114814457033590536674420033105353356580191789895201936799521129415117499298962734791871860257916547570642472566460700315817608169176673189414483686160173117523217295634901648232146272566970033116936102955663606888857283721580134496613557494420406430951463345478317274274435810761573995999174639785960903089978925603963237630130445470610436083433091612458633310777821125555329906009145955678086325836330921121377608496333229890839783079114127407643036058483208581453686631975029439044152277138319273609218705511610262389936158340426538650972834266542408795532887025712359638594808519235567451035960202276205819871159195986656414458947516112181731787608931086854331371082245540614401397658461729877031608303390876068323057497985600661189834612462570188218869018190555681547445579261983682672460338842569853206056169795983036729739235157859362386616032702109898952151522655143052187507642486992655309092739197604464099922926174590595899974083081050572370763758545755655034246570314540065544229809933713929634221824874492052247494570051220709015892660341067156455275726926665787147745113904715881448912320786435217046555043609325960686956193842524597865151351581861552739497106265196031562933034772820872711332285277302990960535830069665449758493098296439255109538717011723322791009333927383248032383534646109565435502852392253894841557152553264431109280286287445879736507107665295671623860656966509466193568631185255209820280596814661426985276006286050009856851546572747984808129629343057673836552387120000118212941193866693807405486591827391854621230851705229244770754882726613650950332778568165719629641960751841001527276022145025942232423122951635130116321314707862558118171386035637878733187388007226168371987382978523283270635576664474397078743656655940928614123398123075885944067238938660759114742766993705278697296282783234989936024152654217549349507720716720209293653907636745875086386417762518456502963461341188754346380150738270832563294081459949781974888903000261093591505560144553615089307154677945509792062228903137693078975438128226246019068102097082571073698524331698989054973370343517709520134396864264788009768852812935486309469781908168144897631722784773749823719262467220689408970633260211392085347939475685790013296153020634723793736410176559524262243723060759036492061597894570928127926001866296538835509432507607478321500764641910163433729963122583676072980375746985926118132302545221896232397810210276590390739086003054910936592004472529129375220193338801692118541594602638440105115256482386655691214265002398320457246457377409748805266260681458599555723461078544285238621739933702253676235927445315973857097895430067956384293985410270146672452023254947418632663995647711409038002490177453816569860322496658651819008568523641359910573830311403879873842561453988189943067973425941117167773204199599264908362235562172562095945143881960276259861321871830021497279955618736538401757313673321544568384574181571994709594612273391782370652256694982005717985211612626790876505589516455796035176711415287020990684396336184227025014222786530414842084411444114260343680501796860667718251429091045859280916714273303987566167003358658213302580405615323885116987357527911389698176200151983483595607704110839879307929332877428120681173256164612744326352678995328525250186915574257455006294872248906677925292254874563326954457657989078954405603337938210951681437147763112580483511513725395369306699555768070196466380063808537059890297515737709025117628396074541354068246594915734268988565666761168552896277116046656101925261852543862528590043920272715167189242181812785069601480722198347597967705102337746367620291308946014081373378447468468870115587687648620517283657986067215652379122861881910465061108306318978021175957958312132376010687480176094705481800869252435977398517391146789812613370406416702354326422544674035732276577674172281467583312350041646697743873748559268528016286060808842987502497812297021336493513293677838589701076908856407601159354222585724010535493451689051308009249938097919462476254835372043113900851292085075775759785612745104554697648288928198043598058071224641333084476709698405866643316346270364641209332003965308292824633433268689356470922400224289431253561201167726953452140874360878683417947472724172517382755126849096595440565713524218904983167652545181530876234783604713691093236379338220801922227159616778682114698461132494355469322141833343186965513892969536236089415530558222064819767614029789272664225838769272414557728386302204255105971308812999939714180133799656308584136539358615200465322889389242084741883853467542984190229693741436962209394952895093392342452132598975886433041718072928466580963616598319340433118499284030911832633666662250262894643569754154481693693266636274150512136874213287131340270177807203289158520412548065828726349865182175839609383514706535309535863879512173333614989524940404077845809176874971791057311627465755805990511724234692497553862285729443324575804747265901265006434997768552311388112831152153383762850550674625005105169779173449019198771045401305687566107691605558590756176516387836156574131301361491610157048150258402964898329274227728805752173747409779513230566609156905939546401527257697033674051294813108976802039614183526508073431472000699378733112413862958536823455964316781633634518918864396833818568965797562342809656387627335712313075655313207804697423654706057412243430140576993602094947779954359005982273831413267691097970621605589498232767630728253518532972131257653476148782357306055941117563016952323725038118084641868941473086298273063204020598662627941932050170046837080648753173992882883238521904729993903804496469580952591843102273092426282218784970362206328824847916106273929323775200938253629126997067417710274642376811520950619744641926853058249123454633835566433173891744962075437597014099648581422648618816638476931924362436404570569320910201270276052843966173146647335935335886568037535937950587794410719936045834211109704120004715555511933238109729353792724014417047658163998380489909701908667542586286249826650078187355583564022166062404654060130098525612752751033633032927752579817715141975735754594243491305363007670808799653703944881811689895225590012762050515663001952277271925215850334122120039663074022004865800612607343243143438004314917867881410803534441000527374211169510285131636806891393010165502084738643194518024489034476366048260700553612261737771419776484251710743212363815290168215916987939481695521049345852373280219746910253994653064880696729738711697093180947889014205239085518115365978746683308027599690331463300704795900640888437475614264251387725218581482621273541625442527342770660699899819892795210549716432473679226425428152451531807643571263054343985492436451257857099427928928296976229490640100621503698768383108347070098208765261559880096979312629043684527077972821635554658548537493395837634113945365631098087504482205865888592035493890401356105491247291923428073605032734871264076837596851575371803883668334022257677936428476016496299180186872997935398771135501483673565462100985550658754990859355000134057091247478157140011402706215702403784721009264724120239528907114004258485007489866721310323557379105800215975328206850532099539738595535592995665779181739188793415891748093473734744384078000942662886797173047579816650991555786818024711865565814171690210646766724659002183365375098473505459627696961410533833094470126979884101230486701687638561421754789204306238224406595875973905170771513567592584285697503340647811431494020638695781089428630917698279275752170837539413848613693451019557086080449722579363310923079060599575862451216218225487270201934473940978558193046939866717934498810787026516814455010772183885579062791658507813278676030889732649060559368821000450561126446093592308041326133518602647337862754148744480418881459663410331204685351978101403239408105051628535606413308593148240136546703365080140992914765878422777714805033354310802738353294557835698393804754179001034601180553859422957776537060462398924707577334031879148800169316197167751820130535089302489676315584169232849774009393548397648920457724992414579613311245849994802420339444346509761340235693998927122888332361290923756784649499046970126214803054434217865027170361105148340790251157923709534032743925579620673146815138753445280884590086569787640010173292431481864652342218838400936584112741348967577932545591149481103652945750732563552925694538614799507026649011453511581455015540863603672929421787631307394788780760058067422331744681371114873233190544668065845982746037927312749133026465716787204535781534084292302419015756474858281895217939791657826123578306230298210015864863664502782752713066706398338068542766033283785093525307911242498768618324486032982721206620322009483649346225158403327189136648614823006947273100347807859685619854916337937300044027841782782159987067481030339469755970505332063126668335040018710758416541211252108286108245650952880894857820069522825333293810215798568207339562894001909255523423029486339623066780567616027805418456679458017547440093979254449770794792912312992048134330675977209281745979802574064601652036615761995082897559981357698033385919887751522581912192405067100897206746550795576168106183534699418329842065367288621667857613938413425345507159682648416135901613820546406267319190503535839366546175540751656748631890514863986880380769539571734198583133815337021181225252858842808740752399219150386654513836141860150737484920041859907699744065435118883147844691164428196472450190996478560806920313793661468998146661471046825966170223971651730340025145546321497283550660777953204405521883779040914793506462597396175274732455816131328073141252262905213167052287015721725880714874430263967016773498451617112005361515428025062777419467605340389305380600724859717204257984219431700425315625146432522529334920027529240190422554264817623260078643900293988321995553609140510086760673478289276580263620942582275409203310235591545483958430146395239169582652565669688061810066486669002947404350964022170397496391916188614823822206098092756899382649186665644485397185177752353002342129633077563387980475711752083879857761497555566212470470993942327322175486050154428954716823416646000933135516015981507370806329572192864926871212462009812547287428476780299745160974650559537119098853418532939678026699499538665726000327767612415187604829196934752206315406030865561854654338208176917090582470290961759137262036734760957585767620299463711324533788285393850811822613417438403962223951934458467857803707547629596970799965724591884102397992237274001154266488750964101350385005594507212937352839677030383539431932327438401744455044019014191699639278272054144408845960451244617853362017134158072468642972141195569852999919278720278301545841738330290540027457716774971995724254767762251351592132912400042797845705670483040240927164524388794015758496713612897889291804076423743553213022920383802677849137960343113201879069541943500912315267449775501958418653550731344579953620368953592071782671743938688069446159937448496323449277750083556846827641946929547868127971766093612803985579274375407500070687364048417547790295387411353277591446715243528182262299366757131870882491755021571873811078170838389166643665861312977978618037269960321512655151513793573960016769939984299963678802054055234251613760122475232439316761957847678173182811321353708524744085903344419124516997625273261443611023596988996559619086773822145519338867995056100024577935079121819770471940509467716439062448539786069414050952010269286249291755455855986216194011230137598801614251287791667465477833125306780883455935776747886415690089741744184919486208918876837831733093942966460267183866793668670679906366479984861592016861064066264134226496258557948038810511262756284816559914732621575370159291818813439157924754408492419219409068615172360296258855214718093859496966731646321368812137188861288348399499376461949126191126951606160960836812423944716573162656653090002717698401216487230836026315431812325056278466704347966766634275078221669239863886917515245010357432330939835862385359790015756196519073971591712294289500900216440089746391331167239416664049076926128576312520825179166154716871320017294023555110346845840503110632516643580838157012132353348130253119553697126320278892775601831219165737253344918459711590341352957840213229665640139677593620261040019903078652816228811197180078551216333882888661159542950031567824785583590595673501058498236035061105726648572026432873456075287275951760760026664439748966038749835417182202650983546899868203407053477314473196325923479672799341920477245866152981763393808671969886087819414127472007336615402945547369341413191036716188074612847014467212229691934848930768571541116091627564141195894768843852339055332987604756150648716166678177540356911183191292822314906304431157976392395950779309904977160441956339203584141295020081421606406661261715468919407398422132415966637393736025032762599655254775133542360649866735649443153529810651595361345065410794460173159873343359956004489170624058049214221690030924218004145945044697928045976048165593653547327675091518852204382611482404022768378189323538715580914510005943147072799423966546807757004064464545120008336394562492224614770177144074831414032303502204172278385527863609639712848874545632975190562681596366172873224052568672880634659022447990402016964667592711150124674107042419405931471693569703737422998526612662320975079069154273715922644906496706968297257256959613644047735346195491507453493734470965219646870338869028275348735464860344541450184229395225436767169650677265713783222188758150393368727189698201656353918282908101490081454009206498013879071529536898844555275091635999832221797402724327680063667349848518907424920805110330307358900939989889266547944480281995110186693659991674726585748023224392575691171122111114003456159722576404137710390287428325386728450515139672972064994819795691803521596796705050917565832914370615908085025415637386215794939058913133572731549590480477105120553777313433168945847055273593824062245984585172457598096892863850427643590639164524521813159274829568595541436641467318388872711979898066235862768742738235044039984891639012970280560928888115525912801249412431450718182134280669961685465013131208682143839066581534182734831622384352486513183488686915905388580039533518770961861796787358315039399532925909805934968009864145780694351404129002001965087913493337279088190151210061690070840480599886918111530722867318862295405805319680993900980135083514429961659706925699803283503694320068693666448200872192542889522183957404533970076827602358797313836969931477941401075624373795109004495023322213792994152782652300711858366773611717201921943124150302185894000258891636529987821035514748890465628343562867167425581529171547934929011241721472515286347419346120667722179504786580288874850190480620323379278451765871762171320434843106990274288729118146824366258395426350305280807344677544704234332008069884291921242106150898539807883106847337994155808499777782842742142920099988663107617848371419008577643237409561185864478442280820709387087877997935746017282103079950402087049894270341828575265399584553159743888015395637339449173227733047156702256010889973816525982798227401862415706624248458730479044249962727186800776784248804410414159182750154287673641822779597208267805631614824235605500386177809749266409567577155831645125890702325878850504827706292976149505455308270408970761596299248011678320305731780152216728628085309892875740666873600576657227753555883868037479393796736684666619761054329468152023210191833011678522577820953776711626046444297851371054830113011655964136485760576268180236103605442602662938911936312880579279811810769773595107759075037985493680699059856139736308823906847919022687312066280827287537743453550833307464451980067394486912178290705087004853747861416835684130114020482031910752111366294312340448112856473734965233479025113242720187921926157641095568874862195117903328276993976660512588633997043163636881605020569142007376925936329312175975396289738275061339660850585970040119740110381307661610940145578793790312798833076752871544537272066863771239792181769568723199208192163042727377954768604274627645899090030858868824660202389912760097942423057556589008652430847071707124860557596396425224239558703823746291039424074076719779150101598735164892160141533593438351148489107887802983646216488881580334325982557669804891124750237076965186859114922990286753551949681904208834443433362464917838336362028841668126811912510561939035178367814180102210037892952462611314748968499424214632157217940610907632647042163844005915693406367156381429219874623664342788815060411443889053030763624313103563705062396068498598014629211696575034515198757755251071013252381681275504997463380944682939185562587814038612999456125991431045964795494599535290068255527663916544331690412557913067328600308657460335037074861005710783354416418388722066035570884572565239620290650535476632752596692129937242879695875420601166621278960842636651284655954419699643271799705882848246749752722330869132626962718905911751491792166173045579487454303292343272740950266679491210189425745215786686067681928875750196646693465440263092437413012523182278307823319672877515877690319376221403273805501487584794080987992320967627035976354437704399760381697345227012345061831711085476265634515544541606817138457535136043306740563704821113376644574669005820064231595380359208702036677361974509363397221242323495565776589557411947663986318730999963918709695637255852137903215461545906916375372543672096822012537264814237830525048517957980852151693020410773614585811683829543113345052505872946290764831294700291552418601014590558909685137372540254012146628590751321348445717460302060531790562578283573254279051104798744388311253069350585083025534814500410962613921232449946898570317284278245426631526239774595709758370629634391366952814257379796455532279698281356276010294327630502228788266298452147851155280377212925486652885397528252825868479604234576279941614056145347886680560324851294751966173922477165852707557123729523053640577176194866186394411360283034026342452580654444336699046501704485746691871738354785503595928133244838321114561485566789976059803151773603491893146996071709197316992565713952979905725394199623807348190253045529055074924854697630228972837046249682855485049916697210342067546312198255294107500583410633020305205900648654868166529758509206967205672127572764718118907355498192057497608061186643578927910484156324382531851098271324042028185704762841300909461042819490161624208663837428014378792412813432516282192250896606457883014860444464884850451536143930635670399827831639650470083025244447447784882518657849317155079737611311534022840642617312924414492737175026564316822278291600231922607784626358430863621745800417063021927749801463080529777226017927871256136085111628740620543604109519726631032439874111524069299627640642300342308846148430529369025792364729565416412422434410201837194518394484771209286830396593872580344922529668454006230495219025544075778089304361429062032102812280051558120042928143596814512213791442100574756312903619622674798299214805448834787057116885280894235241959770471589200973897882645960840358959456086785756551813873379275141634131092480864471757884354900134743535376071037083901833512667170427374638349736934969067030686629784625290881696195864828123539804425962693372843122669759365502984805435955061303077018380258811457658187725239071205154371238730798092453986891958725954480126424703955352043663275901080949354890540833639739136921873890791490995566831944568316620730086247758527765813577639728481821898237184685878471799969586666801292514391698975302923109627613448003385575122334807963520506553669683987113615752651948796245443048221829358501215251423334115710936355119998052867379041180752965272505509352907632566244001771622190292099804356812176064647938561468734470376214934380317763525329523044508948770121483352722159073435814927930599164288581236189248519845186498093935014842559824061737295011370404920249010292851959417419705318957082665743973107841213766918862051321494697829277188497256997302864915868102456442396782728124774048047476818083330289980398458164831607073680021731235088823363816834655919905506801847289701235657875963150414932589447498272831910981907805466105535415250238832726635772497871317686561114720069682397751646266517475129782364681158779859366717269570114278080472866937084443012359914934014620691970460253441642077239474270623220497110947378676195337376860814914820755655743938635908947708330951774925675561694143306875713899740755482310195079306985869455092048347569906024500478024582741209962815850060760320583270045917033476584193758839766752110950835470148888270384164898231518704075320482337843217326548039413552874210559165822224408745904990798294068659625238530816974447537917713442415402360025279363060640239216533511358185715935155083287099946996753293754329550425588084220120453118249156250006800421141783767836690697315327561900701879088582268223633654680826926077905823598193940028710422832804729141029287177642505630044620077513867439239281191871433885780287701700601671575788918211344826075658235152195352585033805102137184982145189427846928598206811396175160550772211771445886732568148720750290755737091225232336912455250060499412939711348399871205224291841536746566682207675285400714533369033637658366999722754935683275284887688765653959412389175973547953537312590945144907372790927193473997433207714181555664392236194658325142245772478809919020423387349421713375019156792093146256119100331065550286412973258696613171662453235211021182098393338390292287250391689238769456546460529180644863804791523924719503905952012944526823745219845111910047913876934741899105142336785797217765383222994155363767083510216428567553907144666712495213935280335396471880919348053907903193898271899098850007205155088843007728222469755298200662140996709077887177200224421406115812859511766238868533542902167318491857407366300087594038529987077105300849107267696845615026543633904802135099125999684089580519134330913061177150462454673711180580837415091053484053813411392842925196263389469027611962926211467696577358922760183932147920635355524015084625903778038718387168092985433747741646536188057341451516785179389833315459136530440893574616913563449158549143241266669792529307291823412452322286581488341668748584830230724878856539462142814515144645200038170252384850929647477040763807790049164180490683211170030860445591857909840573347011627960339792255544725270968282636662491613773259045941884913542644248814947847768169887465484545248287138804811257960976365367015985155806150873147729803568019137352218583492248253310424227172117084797704846109024084251799093277678179412841452340620915459912671124624533821718405711509700227547364662174422856763247221568568670066548549846358740641172033931438127080502914114749544550968051382599261858703395484281111559467716388204860483752073104665902899047748026115451248768495307294141248515828876743125812620555541675310458400225552038812457486423151505966290851540138243002005130492174083071813871276520421817871352334583165839323891615053343321115459682195776162962656348182973332945431563084439643959031314525063133988358081647100941332828815473268345106604196769658138829352621928170918171855336730201418300417275284352007831540954241780788671246813424261250123507903427296668991152609252709773089259702264131751310017764331229038260365720267954479556420025606693192432804009173330211389125139450688445294420462624326928107186448597938351249014070392033835309493603591687713435502906528547647706243683127460265325766279501897825246747275727747584960354925801207789454147679574244562119066995724625632359179626178582221298739647807921080191125299310895843076656744018132937086588360262417342596317647536205323570574497024935865594240686413789445628764038414669641037685876166553012392515124976984259466247726805414844063609168267928507733013953854091009593569889149457197957015123995743354153978457654579077096452718205006948190560385370710098504326215429862847112786637761486964881632801575123423262780344013157979425945411027325811514703945382906289767801611891853333058989943684016166046628162689265411628641363324874621897839105565980174955671590475833585037269829169323170780774810177795350393861978008646318529711565171185735419457434259107408127958054033813587961794589317263588287543893847487242083999100706207302708266938306427494539019161540726392961224186488639155471618194785102800113381388844641135196594310546288672464016963564955617397701179423314684999467185103720726741850881254578084079324232830073649134724111218107175142013927026804261782084923625014661467418946673372942588285766199360311318743820706200718644438386221546324854813502873805176457381427753260864535681686118558961901080037395341330974727521609824671386392605124281581420947225163856808445073794091557736929335211365824809702089320306663251983525237946905639479813730304819377682593644487341512316421795874141439082076355123326884728217776416914860987309093453688508475513198643090425747658060045627169713203174096184857588431218087326993266755353257167190712692871867094727455354429501762765598419254749561867370420651764097854363652845709300619144927002765406345463739705613147997684914929864430950266017120225993407148525154059343488349676032669864091561487826896546097847160418365425146864811597943641804718830717950724020600336386564156895151775410800680375266008617298962776699519304490542884804684329432465451748154389921971395109343669248715007001787882464017821298525294337679688941483905941159952184239031945194963154229710575686096150621330428590254710750796301040886756205007630387880456697834893225684389342547833500400144416472213591859548274171321083535706996131879970758567343495864121440781035261517502002217913803753003439890106784287399175874182920618095002007462101193913387102329626814929004026666074391155257597635391698063655537610485412644567265348363679737634653269251000817003419109400149803013873775613045848509601892661333008330570542751755059628788417669995168435882573723205017741071912962285303416450309518654048234883716763816055690466532261265151328416592433706537422015779638317163851995774042728632778643037181302058170190540552145682809246128958863056478650975604604747378817757532966764355068441157495466322065296196191196922300086794790069893370298340766063228791246949035020370395046493109620693935626321650571170983322933604150249037711058614463902561804597656837105597954398583213611788685653674165558784051869926531387003758093106010305623304934636150037858083524876916371196912596784065179241765873466030426189331813040085909297655737191567213953458616591728411478337345262486358114078743762159142717718157830790194832310650769783444657159683991991187714159432908992324979166613271862752544680859220442066810121773587432849091559034634004304408598120177964464422658390559157227457068056274939742249613657056608243062857827800891499649620064861072861404668157048131557554001481266974572391982067267807099048702991102311929961734293113295841465564621199810240691246663224046043525751017352193929366702176867472609439881961830661628314274843040730496964651930159518985301242491222395836216233388646858300028936202462317863992086570471909996909995197640338005557881712305129099185645894033327507442401298479178614859372307382748185704199078201097032098406280254102001677561285460305350616520038891821521048502516004122217938219952042893532176688430420638387113123604341902814219268639869182423745807614410105329538422690484672795562254854308382723479356446054163792075348585691861081244236123691131881376290676790253192572277221966987758274853691474535636276410723923688901603912691971936401960161399118113582909422450644394540318430813925623872325253217936221420478586228091106205473365616011488264280322246731806080216334200539588129898236467002711207404410959531177956481580831255524218718074038940826850700606065850322782137717384464532882884490105049501443232064382946453754903222165308629234183828975173100814143911849837850094247877945198121209134032395765859541544641478800425307529822458634330323620378773816847456592418255049863997012856882690061403565686644372365269056454890986169715500736453826168061847974109843412221798633792815475308816081228472766534765159014510856172696215433122624096256574061680852531077945382000857077512434812978937878487364230134129929243069827649876422372410404817140196924906558326227715782373574860170806137000104820136567902475861276186718871143193492709031525671395032143141974357778116585386584971297707575000400009394061212522326433279168422279907557777893961077822184057175122976046425547956152226708714400939104159694609625037270069602563377694207313214318194155875485484553412860231041970335403229047385652309645084959645424762172117858862542814933021724563965159994147023658050601187062309476604388222065360028390833381518493656930867012313013404772049415752693298162092276057265082362304557817880309717791987922812049425173908975088860166759036854759514628837023697659415826147313550745840630151548245293299147009776052733397485014459866731880956120884586351568996416843414227922757454320930350391492959278877938807571705754359217324895074999807018502966737857486534794321786571467890511228545308990980030135551075891477477189981300363131089413896657642240815459226250585309359799515581009059863747465677740666011770430731292210953713514410847652604990620522755474429005756186730253221399943994234171668415427511897982053015860323406879176535476329473743081855015010044910055467120396353956606035193734026849005672237922333517756681472483780909753744374229680070583883767709073389805706084767915873808019927998159498322039343799990837027492815914722233326987122588234877458803584841456524138713300565373278446698832768600909087441104697725974840489881982560458082245020159620699556844357252454517743578788917576546357121409094622770571759981372732290989801280692963636856736202834969981343645817976354453993700727143866031677933517119828005395649009878566613761171480484151947223131034898417483753672663697291513407500531718237561706793544371604681808109443910402340935444586992011873157145263643001826640045428514362258829303594803147100648347285007311475357242163724431537686758871057154337812843820426742181400379935197589734455502868915608343610618763928292369350859254648010918032398999335310326435069391867764612773885744823425834678171438374537021506601689379437035096675522618967438885735435893902140764978561078099380670166718770062709443666705985674473501433097323139405692883751363888673151204925860035067109634929303658152226179078716443385592183805446986864720621945439469383525841926012733997394393318882921887171956485218135232359004251311040620139343345019831175620049934455603085036725457310819172713561855543190141405721060103778013427400181980073381918446664634712882903702640968415063794494616414953760656727508254977043875617347762027250100188093642745681521372262682259191082281538368251613575345587657597141047776778521508322583218761153103032106977053169804223443991025682294132099384282312775819668458073339273830674471771384368375775903729301033920316340259852514203489869350187617410527862141439547973916011754347062195686454492916650823765750721494310296342189625960749088139954287339868514863654524289547132734984656700923588436123876614511874104806850910876520175278767081102591996527840515428994674868703816012779373312157156354529989575800248033483147661894368909404754898544452705913262012349879387325452403380147081662186237112193837887744222237271999365648030473529621281049874796628724853303858164854014509821656612108782928777210632518494786360850600272736690207606811359920948724753502509378939234500986314668882906124561205153290702327087471092784450752081417709331475473709340852588744377044232554764743844791845836018979671684126625645606449635314873640845400554249031218675861590866013224370227481881684488522002094654802215310784749031897373362199991644644677617239867172284183721512878256675646786037854943017083687424606682472942472811134932623211838762689470452362007568111117691257416393168126251394568227423448159045594473954028735238075160996394640850469366575818336993930069636753309669808885981696743414571021076964357916871725041098608981763485597330289576192474570632132839940582342203564257311305266296567876876914545308749434834730189537549628790823761135308256256268375936393703380384240949737962705852658787703285731487173730140320431683466320710269346049498295651063232928806737837888524143726830094911462619263431013612568932753796497966441950490386384033521800509940565275507042867017358775045304775503302183602440751164343939498421110434180792780006082330861881936308057824210958016657977963543379378034772980788307122413241131259475146099646731366833974505306127226825522025586396881171485231287281592222799712241621508634925921265544214411077990280824082332047157337105668766262956822947555793051083962374090372193361295153881547230728685527086106397611027293126581913500431678116909338852727537681482448714987010687551960985655951432477431524150153078792609836209331771974661265675438875171015449351216640907513759562581585303855176769973837350111463525860637346878046583371505306483826064425129042519123623286771548900464617354471019482362277990198585995487012399027542368574086361859170948090038527575677595688572665954886601487310225605684650654056666506918480623789279557832733806255357152561502951857642043469118357808499727105484940080412900721430481016318121353949181477791565031511795790937785071211236531018231802491994561139426564602942050932020857632133473291959004348408544684727386987564310385895376288899745995771838748223439686798279489913854761843969780592734918985163708311377513383788976807190665304635612931700281500091267136637930690767775912713444774732012746526555216073418338910491839163583489771304289880411816413301063007180393965131012417121252467448027127313471816747850158789573381681230106584963493162442590333703542553911356840652110067990716010806475148805817794679409327832464969639391496568954909641813909160352252107497947841330673508936306356430610277301880875260018327112421402329270209835580764080769922528359787989825932592137277380856553134527654672377487904790385407336480298502934511605261760361768961045455093579594745555375042382612089593513278455482186853966018340485803982645998364566787503010339204920390866555575787546086162833625076911965057788411572544569568821260778183610154453169247298212944766975729325732979945525220647690822109303850184773339552741822203874082860420024224689124198415812306517750296425608094081687370451119610039742067552457571594358651919334998565864232214671465222252841904667107177874265299532117002956565850524824246189737506335440264248574118915655393266414582975727625506827802021366851579517180694046061170275727245971954880397853239807119403061784890206153941985892860577859846657839073461229974625472885976159941239927854579005312384764756160599638200812136834997957281611230982845656570947492253126606367037105378971029412095805455626125016759957640941031621516143647211728911787963208962323089989923685923108101464241569114382950162016169899495120107139753195948137588200705248352207406032353984293651398811414478808260028183229689676080986544824278576846523318572400416846869210429209470327342195781492173773009922988758293385167254162186624183639893289489707474696379130802599760083151231139678066790367629080259835919927129423033593318558210000486893128542906770165425709831452074054188620935084707217013604278507174551834454743866198232731333447482465570054098783808198472070502671939314747449718953656335039371750812180530115624570689750875311445004201902856965407451077889001378120218675180579834018229803497547063076637051481801703696961036996109640371419714687218063668733760470372086454977266678654584247399489593498513006947914199910322941374258623234756782718992088110217171732823840686054036513106071718268390897628481969381138055194016010831391697603779907854167002970730221389606873830762494479019740229439484696556042978764941006449277195755575042672207363598638234070038121194153100399814979395574931743496712884070102289438968209206686861808333328414072502284523775558888962492209002214612714600665013721367420851881833211760242845926335547390838982188997935550548717990186892530951519350353360656276378404419549374366469403989201137937784458168511193383810517272921280339228379884549733105216521861738617437267534819404543982767672648160981610878530301203820665676373190426511164524933008872736793257352205364499778575637085452422835270694493177617700629814782382099686259578488699802297759251252968401746949643905837699644610389455580060206322160277447838170823588485536608686253959062270525665903675887175817516020940008511931606109809022391877037319347695078040502032384217318858848505907753656925072684124079238542595185615134405698617276406159483003864676972072530347039981850414653952987887735843143059061734836701961370063712332540790901719806364431074207647646131324477851653443172096654098849623790840725104121620137241882169251540619772454312832759082936630956637128655075227437959300419823744562263464946038705407074704274147478889235448604785023000598279738832287755811077925442610863916054484683964562096215295785187990920477646023029761150417416410751372141632167651408082040468654666687714355019448718409388447721112397241074839667300698990303181041799993284619974522861446275723628299891002860856062165968276626816502913574443290400412328750446564988744155599286721673163641972056199413607055886608450400697227937797777105408292661702323879124772718723750925250966527254210343855934760515120679787415530465590680854497942891305754167482701058168735423366510140442236844855836406289580491745220442853223561713120649896688679803520625585543974895104020050036391820603306399986168754550953813945258776184997871099417326428342692144840632706379996724324970695190641124800680439851140553330558984239569663026158299134847317221142201981607396718489539673812467155054517033627062889700022271980147768169873951125892679273491796541887927966392941529148077180857923616355315791809427890546467565204529505827104669895918221568289128994448503095043741803041080079769578473250269134693621346769590246922910178188768576977443328253877592540637779653595938001153765980367084643632156493347918089006553072234052659819132579996726165880410157275839251396697724901559144227254447445310028310935530498690208035963454828428120254445091490183132663443908854738588225064693885767257538693830692304194780600381910947633155014274957980815136145106286657606917154179693345844097545944583919440736732032480146006306412475504341257876006538060256006616703184842793133587580352055876803558194452901390308005805233364481780651003300188111218002367174944327205148270258464870349760977513010283136109388531394640390454852970966428193487639122111208309435904864769028664466153318941345023045371794027239442436370146396807147360759197467466493868556266540695241206195236758034750612036862523889247191614251462706196500811394441053697492628732545521335654297449598928558512145778699572229857583309697894326390157924210375580260345650857777690766269001348561767039930426495410815351258045113445658245759106692339536214794162659777032792438241972376036343844028918672781651007256844677145001698286964970881327846235662292610024170721538260918263903173013651840345790656101174919152316965839113529838208184888929511163822734529805349299434823198902952353136483792859261721560357752891200210344926772941346426821288914977517044948557072116620854871452717736594969395753885360746679037408687585728505680693583079344504896617341748297223551109181856765311657115600862606686886236618180883112819226556054723856077584078121812767109162366609646438039283534605606670684808134087059952436667853434925186732783989542403065526987312271033859788684535440142958485046310677732183196133604890900214088572642484116120399921485812301758753029047648643165910466370181567576290909078118909128217687591157019403182453255161335294361571321786050303478638558979215983025958739142792034219342828766120936903407023348468084771284441841717917350183013692923318738339074748305071716659008331397309681841520858987792419405952314977298415786520571899521177976626861052936819154241466724982190045409875637529753429783118450755800599512681931977712928832570691101328292778641451136728236247043359834189054327022786013287076253139633959056935586941543565714016312274553676829241374667728629667675963686849824565608665096084218093554239717022137770934138877381276711957056175212792296215299147645919623277277671704340431447109672072069500566640338766136795863384902554248404614493506303767307937992877770239588251224630333860647005100409179192738405417320337380319936261105845919665742631933764892482162518715212335168536168321250238256633170850856674725384855117784468086704958758117266397335107753981987624430550488287139259811584195744002767846649002991107752536867160028679162384014977872910985706426629524838334064497838805332184054845063071386868196712067727046880663378087754577198385102194755589015671879256190969681056261872906206223158638255788380520724684255064551711924666426174739908377362198721687503328110324272247274625291422655301890969202795674257373964841874387271639806077904740332641588200501257914326288273077949718601408412767031728238168662784271079467918891639640423552342747411218808249669789445965972924043599501706944440567288928046588466170349855875397334816633143077209701039183731084331329853135024626887057868991060017462341629763484731904481392332825919295287370907740097554696824096937965415624080065478529632505116897793321461742888651317960537654132860769038018085082614661909088474946576041439915196256312089379798963706579467500351346469187154740902045178958430045785279314429477060149967497355965794993733033151702247211721822792885275220454537208619045529486991108748515217119475826234967570586757257841390024712046600264532151328898676412288152917718162605690390871586760588313007458747280421823242894753166509183593876453131209718837388534805162594153312650312090109493791128104187667233677724368133782363109907190475125710020756405797265472167688832900053288933273653072947430251717290332065214979652836182334120272030597573819665901199137258398760897461498890573214162804403958212880594165857148241426704272588302391750989359580348146249178922659203220128428229861494710123401468654133241843828673572575297452268462218482544197716657325444083062655009414160793722119423939103833989098218194883100497618968310345950712159232426502387421642308625337186330394619137191526536743744569364149321603473811213333479534388900298763950687112539822917455353718048473166426545844789785902539024374209301716754975755805317140200006806463272193162184436542127566613875071095411029992003645476632323207469814034922908707536697773109130814887237247618055615216969236761399051140225411520737648487063287633529901983330382426507735244201777215391774600886857696460517056455143242456684324743821192959909818328180841020154416747264106464137062979047739491108369256644213040267118569327836792958170817480306031048837950516145531425254898920625210665269708437799200598235988429746483672364173474149748327862639021702712118172775488290661269107791004835112050617135816918770593648395303795323292747898570889276648080982893846732315666233912402961834552982578863293441669515352093592139431265906313657423714285877928634833444129630865006826926986044517400273310542519275693658719303759050431237355370475345427357953519814061067181091539441039820426767802978015463093804048127702416014197666609424037872710964558464842232004227093388578103587628417072240688270025311020492320349314089471046978678595684893102427887337544298967176846666383981359554238000342076328396041413588928854154976808835474195941126496904616533093193265312359934346616637074867583710658894262892422453683156714142022934641620887609494646017170139367440374514353520629560211378797365317744201345024636741067269732480571555530764759352929380366173529483398117322958628415931808367279666491805497946620748746237083195373386049444509926891581691325844447581812318131060057374124330626521819280482756415347844475748143133689357468772535854317333345745105708853902832395839869169707577348104041469478663339941056570391138951467099919592848120434357707581807828293885471576231604515232717616748297254025872759823814518206714633130365184751028660996989685805083949070470671385026469028137223256347838738526712156312188691799527539945336948133042483672763383287716212043013239907821936602381463772203159329483772958116420521381754737555468500911274445229194766571972803327712094985346626809537468981566989981728831494366190613444538833036471543766769951534156323814727240440132388626380614353614174068002761522805947556996856887797805041071276609068344617692230740355665187498802757112607361352574035455354842091256464781735364082132344388437346941183917981266250956289676181609778714406752642438698680569751935350853447103492578849187245053959763785393595631922973153681043231492227371279161766338952174982152325815784280630953488846964890251188076736138209236785312477966321506360002201882627438625360918069644919588867120310898747318126468938629671903699040613050128569638744569933404023914919022953455494271213389580231487450204013021061165701307373883747801585115195152920881911725323003206758342587570230584196972287176029355259850987310736997102458047874963844492765251168185720666079549381774050671250713211873631341123229828433407751885523698781233793914438854545069779327442737327256067150101275224709154184704537450104590688099319394665365394726832717580916433937263370881717761869604764591299079727406304468835146619620731659024342367500241957884628345523307804247526729634769702165089276839439451331965936556969870544381539960188042106901178189442650563878378040788333598783764592042042174752747712539502608952357985782042999104791988622759560206818644862131459794348651287122398864775218151542061193484507553840969836748810267970172455341263398657902949570241790957108328164826448147017515780685779759703200254331336865945591238039306210177545197459778002895920324608600283804289829283115694685771821959022561080141611836035118160750623577939497993234667321271118594672455139166390922740925112120201829514645862913959479878699673430296078040449651014924758002228953451485069543925115361076356098602080661802877836556000883581371746885564674466843089456790367897069578718310599480828161392736424380965156206746246131674560890907591811525762719006489846927211210019989009532085013857220242644637956740297186610472210644008996462783391226592061458174967145396835367504085611427469661980157749308222478191994971978013378374716855072123531247943947396574738952293995041287015387535656906064418958235827982471219640065309456031072166970988886522049702833653170591599944686826644557766454577649266256344373461334745993409551129181440298570246831209265181830700941725234102319252250734477970428944478507349907052435869791821440732994756136456661170595101805118207974506497693205443997166618395853256144527567790617753513451289893875099706693372546921780394160005176346455535359158104997318722032811254753204374993192958447843203840682488058011182875034958752897807719094986279044834808500666533826983278626231318251056656271477296993629883816801749075386992742894906669730842312465007190371373003142396180986152777695216204272161588996047071202227040755532103393984264540490430137155979408041822063448001375289689857046768338777147066778596311607571628139752733547737862627119853196499043275225239648733130193944100234472189178430129287137929134231434925337479468792707405736286384502507435731896493565720864269189422878762091837290950246186658395247620618289376761513924055893363915663040569645581029419453471546697082570426883497447079795329514825703898148567459321510492232531040105221096444313584082989765234618869306250916860107765848267869275218053557138132901356278650679743028220524644282151644699980112913958981851660871547307837156457796233918189062545731348633967660885986341073914096086071357045294453997596167177518573097885545510341793172729313379421953368504096068558202291645781515552961587976551628753072278065048986154926843399396318463054507277413474294284071814864727203161691955517733272795726251681739769986794865071914601754048505637605392470602563625126104772856978681362279346578218386603206357840190972686471651835358011427493603023687675222819030973842010536382469583128857372151436292554699474927633617488150520406537869007121839998465262221441457558868182515551324651487771386110736289809392514847581591159341222803691080394171981060203842741656935789315894083852461579098977279965857525168022625994428765167794914993850214794584789900930900789527292751485608937667696367074296486718637829118926412052738458701025931925609250332883233295389931000795561900221779694749200732367534423426551667201395041623634388256966115669459919913139231183639579875920191953838128566086098704171983156095203556179868929579513229829836004023308047385104744193820333556225134742639581861113922187167551781470493462189732250192919801758438987596988073552753143915330678288240734024207464199852089443134771110091130964885787662409375687908114768092639836897660139885860527720015130580277000868980978602550844924251325946377500338847363984383777730475779404001369327150758167926203116817373309963575956185769902458755861096198126234282198874798527488380596000093653862073471567597121306082551544375740501659826485943150312864395710034001792508999157907558758826122817807317581961814977591517060284964662850820528478752852784660639453872906632600966665170835266617166919268565902862374949544077502714973980358309063273433440458356486619930850864056050833154395842952555637710672738986203853488996320791705352873878267021646162422117839446149084890945899886235619393849274626472547014781214871901730015060345230895070845322359080988223763043056309427319907838969563858413803531793818812175896843913021918199306306243421938792584321252562760616220259099954694575200925439062801272948765650925151250051600844979278926404975799818444799803840888455486722424398648853963974419836748480959397544427504093640080430488833938410701409873720919537473916533086860648304258026975082433110978043447483726055282410583964191338743320660664860665632534655240933989466214373441541353814561013333173153718858217604487848002402017580648188154906910332624253992684826488362452295782766820982965172810983242666668492745104592232207361720934359966023516174903350209100148785558889525208448362860445387855708847762782065115347855386907769874096829585290647260581855530976709508495056205100901614422464017052415777430205640553838816395971039300517462038675708344756997850043279546458686136864741788768994458902403054931981005073947087905597745654046316386448147517762980511426991002098848225367774160416401351338835368836950150858199061375198252228048556908995310907865699817708659245417413121155813975602039539214596150344314788773413326974030658182843214533671966020184027623391772362942763491750218103266667284037952917071178734202175062170257892431118144902732464654701328404075499789665705798458875298958472422002003880770487180715288888739299249624600594533845552684063767043084202897835894761617320141050095359112993334256096113298204844702728193940142695955590520430662554516212874329280569789329929117976774432334235617643222707639199769325556298360000606368724555253875399950386819727611449180332240174176678443000267978068670667552957181149625928609607410143474026531935439485732340302756886912847214849687304483520427786615077824563187653343969334967219524112944325248423233312891223571163271786474662246769480515177992789739637292112556988315941529881744584844224304658321924761267071228729046468257134718653183925233381064937844810464664679140537163196026468072413639587684587658522113763527616829548705632608529301443631948941789888568906604314786818580613871630006392349635216335625778674351596923045448704007539245772816837379369778556025883247464191089852850203806777272133917749378278522132917165553342216379896363522889852151091049328778408715609054592930021833717810463091335589314871444487975142070719613079823419554759049485648212170270897301201204922101472503299930385065510518202761645837395730019170035759798211695524960652555648049715718637297792621388295645247057717298373199483000013167571089170628105564179750115951729583549022877982601371086777838581612155744218228185872529567137806732091228022054308805924014850940658897462272898570106591455121400130809063105024523872551565516954683776231804527030470737815405693524789988669024481537005722857421889208974329236162747981504660862315083705856990090674445256711874750543464989770177517451177383450206493326568582292820721393295592748307473615978970170862615048707009987607271073259186099066210462384568192982622689924581217243782096101836413266711071229523332967503781798608477259585428607856900444478177182565666959754037691256840145346123630801204888824191598715353515463038559983581987574506816295905978285550942986134935699053926119443564117239886243276293418748925460456283590015287181023193790889358995386365938179996191254252652951757115457214468268680111326462114709719757436440045397237819987810969153741893036541651185669528127755434678350155134891673837615516737629141488071614422685093504712750649830078561575224383608560866630790264943210629266613227089250461146645361012684302143505110907328180288797695439779321375824762276647337408990446055701688987206112030396233493394061100899166318361759261861536923623541436732143295727350519603687541357108049279819199415422418654638370449328708468460373253682719293553949011184734421407210940535740590590913695754414520006287980323645986461048525031562866167406320518411199203659824955897773344855641973857796650772021333325427921343961790027935132154648853204155572402260660509916397314906153380595622267450461610878054700470922496340914745200918796783678040622792733978102578491036855553297227062346618728517360448759642785290543877139043353382681988439729350606061360528921713185470861388890275582813194143715079315939307688284289386113469225240104480046123842512754778612666886010191498200795028838547674539029643533389391210764769927025694432316287904651661452277531177520867737160112977607903637842349168817485140095007600899324674151191014900582509140609337572669264424939948507030513808769069699701815045482298154762400570731290980116861271302800894764977916060859199397320294200687101133706187770966835211392981618158514788551337297987919005444575892281204329417523587652086222019182702426576418794815043330261348214301367123587610663667831558907141697842511154798170202237445088858793033728728036377629621689008016726196935216854918462773940972260122259715596248962701528868618358917996532722778373841303752007985539209245766662778980370966772638901787574357586006631338467176742105677631560000091303161839611209779848580183704898180584274570926641431414645514519319080528640216751716536447457865832063396206300455517310135524508505871905903736125026089404668146169333126568103263112787583635744110650205710258337529899117649558802815535784357784603679469468673571556227664880552872358733175259593684977782729056094568181122944721341621859248752690721276349390018344997362883233684376885271376286592519114301124540120528634875780313400246249208892972569202859443649900941725943191646747488406058605029514304193595413334514992629336887918178746921488425762590228269595623591100175627606747707419888509603397348360624315786284974996582581773572526502136088462614508048966758372383806610721028785118849415339311063473436311478226532306076462199092386209414298963808960570300895570640550814854542647465012992068653849230347914284379642023484881156783966240733179804489988644159983385792892628953197830276142365275011011983909399680242619933345825452750028280325616166095121839146606128406684261915998828859480142209701947966474850900394340938770672882596687778876907285010607107799935790905198799011122127234045694215461586365196336697344962398830436089907726819797736226974313185934899606221544173233799289609214295007210621237322164102611360682107931684145775989458092199012062500489447150870353562256626199868718822240583170156179831544534467938147983115567315143574017963040292177342598977932059800957878473104202551221903770592684855765922892932513402447117295230037416499376675178664631972526814830941981168006088285429337872390687994124335928442300281952305351913703596366253910073900948001660737719034767555486015423842829357925438248029952524028110200329798117937291554074121336809242299549101524382587376816665589056625661459460097596757176182035011317275288486588847399252101156839229438944289592072462739870632248113310020852576703786099805381670567408314267293027858004716363830340230192847876144017108885346092820632870829980607064694218723149208736464662869170217498566502868204599124499198282718185912845539674285269163814763281105469449772411632852918993831267019196815763441946137782240180726312644478311430146429777460504275610241042968099043854222243048573862646266822903445540542502529187159504382255688455369895506333873384796028398284769245470070537864415991890519833206107201279529149142728748444059682920659320075269799230400876957283260934081691281112096912769254346921633480667362104778581027634832502660913285651201132025519853140922824084848547239833521697458252156911439114493324289891031845047485706064017262893027654525217260641926590841374604891749398606206189953134390808168272095361220422744949594082860111778529297914068885988069630835280251884492106899356824885467748803870856660849754214791865201789720726934444562721936615917415856746102232467218414545793318151008980279400645667132804844475444226853560178192565374245110880481360975540081039002803704200330565269306890092920482306579130263546589636675661267692906275983853271294364647109640400998295040889001591960229600312457575131606290446126591760865544935888857312494756628149747534253597895518944144871042026003662574106695751109666136880495619666118420615786657243453138221143454696284482468344584044849595796142923105277335100841576268105368052683555452938440159282977750461053866072027103894926568276880467531147344883093076741060592253106768589313687332069958270470790565160951911668700679016350019461923256485757843140429767476748996148512523452387823207464091517887723182081704552642072741569094944874016593184000220349854563991095453100643372305919112134240889872660690558115221654305462985876695446362777558305257003647165093045256685781432596925132268404907135242283026504362492116439625424860235096738102333715367003784770825098656891923667686643387661661653671469086724372131665033541237546542777814844807100917126023595489532156310412760682431976869127803620590501249783569838388722639353822823893478865668622402763811376185118785717349252814587569004841032739503019381963370317822728645788347892695300553139257428998595961056529485298793330506607252246278629178639107257759494539121568951717233580579939767243956364572054464939658011531826120425446577380946995664003265370183114138071234707565466247212558766221412699564088398651367743633790614866681893725746421174932305544312238544282043430285302284109306833107912694095453291596342061008399624133448787672353684782087988905344676346860879060278526436898091645542470705247778236675135369772698882552046472481541342327370992874634976433949192797798409206218224876565637545171754123458999805703791903327522161351544553004823762446596283492587117902191058662336971679585044262409933903248239328090832770658925982785976781077329730451026677919579062813483417424745848031217492186326734909768660061977840137763491367892105140865679555277275040654066067195021511461323678271810908267923133071205116033069845996976947055193154966789961911873174002242281663184637482316568945325344442939614610513761364482620205415375688869298535748346846114559652705593527721719652018404272370781191278228118393894579942045756040976729135919781915583842889703390217176372750990912648142876736181812705909629568261563968279659044517988964615479003521373852741605864264687961701723503744648152264046524129103509201340697018794729494418389830018957171505436283262214345890067483888189212875127542486760264338057840590079394521547895314881611199559750978958151171193830649858023169384971994862087015243157312213727177789817339198766274684687283120308175137775052481609058778496810862969384491308799031777967445626225434182727566717938980364100916344749823115742635260095181658613186621149566672895612716031909094344807348004354385150793220801857628920355277142730684957024495551093949308475352130981747846223487526591814817753836130946244573051869552385287139898269645469300895787659257979830477054502179705723209122799331906664646617470732723066923731877115002436111716920417145539684851160813870838347608706654331453347565946923439141217235359290724632338471138566107280544417501140321541238982420135050714740753793874328252003522764948812348200544028085707252945737538040819171721656865925974871183422897033232590190191151760152905707054314897239526505794486528401306691368974808151002228398679566095208025613300877830238665138191936032188194488587435608265706692055923393056103362573424536013302938775551436036759610295429160616723422069960661160911813568734586652124674350335446095928205542618213676621634378261907288506446147190459451978075402459990523584537799362247649410554437905190510128776490385522693544838203930121009290909617490328353056144565892810550960439767722768394829153702180421850830496615174140927260097641714074108635828190719584553885682703832083254578142547646920255095397277995479292939989568074238116574647228383958296576531790110903049489661348736187341909025634384025859284922184923412693607183536513756688114811650705013181953670592520139069538776525514462251569017905154509664858608695910497992047203422316870856174918774192005464212675771051083397777758681309807155485439215376720617041521797332855324163007784873779798994692782240968137542520338184908046540816762544713691716558992578568603084323994931458403324168074612086671687497834730222213134656828189959972086291650434492860827833190506741382544845998438515349569341742574493857255388937586335188625944827720187924857187230473732705813904702777410528288223441945666320989201450631095196833023312596922333823068064092220823014525184317248527036073165880384322121945737166903323175654121238669920200144335816069922344091189913735300370637919181137405558246176751834153760841401626173680753555319509218860086561813099214172860796968249766809458762074072242603096141788840804269783905127737334866157607270667936870002134442799109238251901355658005634053807737534516654282861838677460515080133646925218383187645795663533990006042366832685933397916705710136549512384902560700865582582796586131088274007145945778015735597778665176915562488462554731538827245253356623700784972542251595287459451760082759332001025518599789577547830066153747268734014627282592594822346186916802128746674487710919810760239348639967690452089026924772522430012435260364022808017344319576434319989518802701270219641954191876568402255320611888262118144563227838296659281753837781131880305478633246329028511489195961890951084065928484546274858250340789152135272650328897708829267526887196185970092837709920744980353045617543482606645745298325782282875641535629998471235637288078191201363441098817194800248240669685195863467833023625283421596814611393385723667122307267003698024941259876275352396333116866814179790016719137950783337810198502871966982405305414272636769826016890021771244805232490137418202721775451406127426721124926311050814266352744629294779218848381146669989360552733592612003653683468105471618109860284334555735985952104048321467965808079035195625858571894593334870057755378003465525854004928527003799678014837509236942400881661399291409220889180466149458286003400412782263647423571181428217420449052278268688261152485882001962462114475193058026456462068485165764960093217575920632375789191798770055775418487394438147522909599605976192550752283930807286446102235018027329800104647974427630073336221093514138409049040369332946030002973071368684185446159256508786762762881018987157613850725450631630401949415895559914991704138856258438568221077342668150419652067490528606187747893428104052785902902761422433895832846135512672805355259889642211237082583817190216143177525625581495865933568982811941215886501814054530408131236298560793628461894552755036907003624428303384635679419519750106880226208910604924594438989891546186760146083558701373691261023407860933428764614022800174441618519706087022145343479655812757683437365519551571882831766994856867826046647373816995022300425305504385225980786942895900452423949988823458479059842496801282125789031915813758387277686885000908851868863315853092855090661661105845437261099751917472286781927468146603532181298311093432556418710014925052801432820087043426953183242675800248455736356410648005268863843426026383054160491783385830465924982342370808151652926022202090891090694668802925286395521010021335050868654024044527541504833744267551366231743369961757872524835092050858529402392744013303155336458495067150816811934992755136199729916125176563618728310420059537477224768312606426275462170875080817923594068209353044129285253512934031207608299881712460492461742256376340782241438001943589325623005379510256348632835816834533073408348961492959977802653425303006949611855788252915197246314166989786613736056603812203804028774329720929183195004614994857464465947186329412993403201916332316287337625670371779544688791067210577510855622413112084356841428339576891073723872263600440691297819416764988799739703385908885995320174327794829868601237528006836040240890511704444564414791328998250579366234290963098176140591596263498716309733687080583575222865652796310665695772239169071541708247557733130927177126213533426476666511342285932435624499767521533278210782942292690358033087528306211789689197433513101131676995985928714616628172796036118698011038365687567856451026657408939861353995100290471091031275139090139297264797146857090403283234386169606668231708620183951129819467286934621824143540850309607629404179316089877305079599311578774211297315021581716740974655401584586093072793140776126669782375809152868988553069759659112922119039959639493514524541523970285460857060111615317432291385870113071827927323612252433566118108067828897002269868969296535357652814119003717396464752644636590627688549795908027048562977313994128489370342320039669814192408370980772482669466705419569357586540632607085641428057811983797581817794603402267592041505545721025814010842837047861923417057141297513912419114607629066390424849941783200562738221918271525587525582766506806450149854600133919228182215883025132781291253977305578467329084093760640767243411899037359093320170556339970534396127088330300098755321908758225018304229791802959352750825291874484911804932566736011215219985178473301642723575064220629644502819065853390100669063798801135471868796286316851306539494194642224225199633021998226752864901297198055599683452134763596359712696954365494425724193119832981464361698354476567761157643784632330439109978922650772930630584505252640013533103786698221714715042055465919087160540565225075752079756710491311186915833425380748545400261885595431074623076235654573049798849387973791193899396534681328926716298650971858250434837564562580132898486331532746633062202684139724972803751222990153564009352873198111828776700723602928156379019042464454615492348984226431921855769138799356757224304854288575221670612958540428777449213546558895600177663177077343765389782430494429092032638382459650636454777268920808141334364977651725477261896073784016298657444758711950330573608510985843010759921573077478357354633564244718826680692886461413229426700004063130900216271303474765626186655205290572577642102706715632225318716020764357716494193050454260521325120044042794420261969947670255490352716253612735180984299492568184996679068569140512674130043435951738089826087872153477869314268952460028756525356904106444933130475246048894390731829670384435155152530579874251706841276506147436194225923341599089935901051821670519249192190065462475811152059601959123402615641231703177261101632554382986064727616461887346549767817831413890278359047121586140184924526350782476036818616873198421688675792108208631337777843673664513081587305507353922701552477700906629507162610054109517002698462656167705814499750422955519445836196765982915705731098802935579134044066531623624922305618141575027656859206304119452614477661705290061572385918236486100782314754063963490463313206973939103465801843935589612877270103321860264055123638945388309634697613602568930120837763434737808595891104487565875814223287348979161536752862927949879244464711138738536753495230352494999118884878625142559041458007295874167831060659333605342769331061831322363031998806163614077397452672358070126985612240099275752868237362862751756559169288666365631644462250295794781040561899891274060455338390498660220324056589660894777205982907447350142064632046157156830860236762664213086893257901515189412497169067532199812722431742866395284720923714563479847213716304924950132194518975204448430756835525815799025542822667929721761484360468901198984037339090872761558863932691497412154403128956064959085691901029515834213301589295740377657840564935972329974252838610187924771970267089941543271009192026261296334676896304106954109916389645031046349010010506661929292268870927071049799080736955217295355671890621196437925991138848693070294471325893658244522340587576091726960437853920439011299508986631349620645810686983265208594038163999182225792741168512108176101952960179888326166499911304899435140558550784870067356418525810183665968102065265796373874559953089821931908919245687438565897107795235064709974432019329869625886486896821212099466260913865747531727045022590615161144921029881391698553643706766323083688331650822431430463299942587891676722269797278265331347654379284927869113176449638138760727924766408957148446558608513170981643194256430160393958122149066698018658404129438170343170866879327551293567788209249245258109422659179077142097528701251113152653296151241010252488854845212075661239879613390646212680361800403776569715064599346281296821828933049695765671564909988521135909415600045185877951791836420429003943380647053416595253168727709132114376131844082801033240676014918725950395107121291951459650495617209729571257354061038849616771574404623721278574922866177339733342252196688833577540909087659571804887726815522065281780844762092686184444589530843466688116338332983508755647470145952248034774591495688916632204844610839868527211764517456104458838622769966282360535522357579488915443326000518361157216987012948237138211483329786440375790618166458904190920352061405320915428461552691466737479190739347556340384223901889891526759940744276433107623786724750630832493765930997603205299741715799808567876033111891601379536636857467640211456378866969034264597554945033682035162895483613477856516699620180543675177007849402042210409481239293808228129823689242433671007464100303609553951594600512814394458797381599461048941069392501656896673635210830310247781125630072365133960767347524943928995404594156073860265748297324623124795672344307991414457566822925944448755450649837920010861758796305817100632456775841797091964084241344708982735109390151383205075295623524687628652204121293691718153620226778033527101827929914162159356768690922980966601516163423908958912923457763416273439027562206317428753693685114136959230967958066465622178936211952271006194022992690356101469997125965784999716372045229806276803041100713727308045717105729778793058120265954923924564471748561393878506518409668425089586758987781844938786347664768009920364493960900169890380664101513950730807663520498682385126109919762255114549445364961357274305459833337077605743296032627681326858933352072680927184205479478047563015974101901187407613411846552922234855460389072439840326308551815167836028846681192729409318241076220046673299977547807553138247796839524160801616409424984790214397490633596861825763452367683154440064531172769474374959390862040838226448737384014627598394907465461770570776235269552255922648994603962408870190460232427538923353554556744358441604247669503858030349250398951947071473229030949309840281438192913067359579727523603380705089839220561906189230356663576020545599138029811784804048979829002073258351120567836855544849037481093975450229524510404565307266501359284856998568658398154937701675819568840719471595139866038339929151456291246647253425315350409878700869612127064491016167096330994001500884479629143247576045623383973586466259864707904631851262394387301937416042022977280109601364003042610637915263876738022014102803079815722411190958839838655474459744121185413301270990955892948116181847014064605901040826590346439637535021634496722227778520547489232653059830277378695121269149761095705508597210342640427796106943230874327380646626470021098644295956290614928011587674459079968929405691284301773766223734003770729803288798019525854794543182075624621167292073723082435907687471183657466741624476478049118085147055656691906045388829268197572693319997209024567499710973154134797069695416096989822603983609491633793713741276085236903291691292403662780853063027041785719906555747689322282154959030295052181875681734124306885780246849264366561204777625526776853190034997635679231746674515584207992707480558403589424220293848631882888947287485340117064852049109677431347838208431677374574847403132006464004732584082052984548689342172429313034154221391348123311513926067894614642879615251093700207980067205285769391202835309805163834996324882822418834709510262128627913804514062440350063017752860764941464330182607371424328534114750514326760825747797935236974218489067804533904647189889060270856364577603486017090238606565328516552316237321380214378663650029545495624630344306652408902029605042084882405420029771947277161850168037151398741173603602851325906197379767314947323703985148722007735557287448719389102130576916329407641080847216881548300952715301234793133918283277870139646348428109241089610545612296813758431778203061804666993248689399963672354929569030743975476478126437538624361342080068962535099424679067795334534619193817168233953441065577124634353005269516371715563897428720415059297211031131894776410051615373619004362115700855670100209546366755354473256810805778925839121701998922778448607904093738193897807119968138860895767599804866346940176381474914196294802337973925964766999063370074359625528206403857431564366164463304725361146603118899964227895185099699290002178843437839691377465859792687098656668542088289406466170569400467871703436425502435551227214193511641175854594748646627137515021363998462931691777046838346017671882456584459756132345300869915758105210721793990147028690355680935648010904750364907816286562902130729648037264864385253882623385277193518350100376678462489639709540577609749518472458828766185792507778620486638515645652634611164498067171117285591738029753307056975053583591926000396781438045506974290159993374382295475135507354366160492630053730213230519443058559962626113836705719646926055544439775455164451129721285180534979704901699842787656376065843520343677361561611136799588564312669280684282573559458577858097654752553983836099814899002717107624405258607630476971570860846393081054632655477498673322547344060075080844828450624755541020327440233455632821288347534077993633476567000591576188354096768972553991063434000906116445832042818639611624700352697316562936847467376427351235337971568236664371122013126783922627431255342018927509880334833769598103192642741890013596500342760728932523891494574676281475376283239015707939526515881137498920086104769667571458705155646576189339750293759004950843065620963495397259851324330990391921311129741445329759985310837416760232479734763762437799029142660012193722435094740715179782975074718958742098150790540253491065156508775145476625432168807969843250617924016308011681555259852633276810625925257097267359902360641008002441622155107904566798274646821166890995604464803625685009938038830078877963842694111596545635155319354830295759151449459929159001420796095853872808066019266754316602796013581155059820966052159886883425924021995624272584659515571107098346783622343410568406424203352018109242384886727972359929952730750090890233226848763570948339953993591496317154718687262117232127492718675669249477596833697123786148302040898703816432495260626925123829668800546489865107458532752993113920709024474637221647602777378699820396992916010036923891135164246129603992323145673276716304081792707343252717567219638301975181220288007124741300046098933994568175384619702346113158653444832696260154207749365266016639257978077901887357344143236879439240411571939764431167539770482463619090785095207339510816509405727949645649426402430865980324967898784248766093774481683361178317938600192166040815274172420157416156849077515508877972239657102121063869715912275065802496013430577180163827617582069991264280703681013678311911654710266763995396019281573571484907926662171336060028999750864692564238684199552181322253818625052401414055166584561361137906135195023361020549784333820376692727674328518397427665597969963400547634811909865864991251258156315124540887201315271222123450502782767255212698468468186622936257075109582975922159055730247685534134481196262097489284477922266323045460418217782848034619051299958641930434756354864318820505298000429075135114759341937433108714937080478909099628446072724788930534281010723686375765668616401192580634937581156939789179343193038783795820660524541694184253875611038293632192616075473259842780669876698652634955105175418575469410464417198388904767897212483541044590994899878376601543700542316631177165002380022418286512672876638565241572948450721567287415991319998558928667578824590694818432558329210195323355562553633215445019347656895519422840962104066614907044518647762296234222573503954070827842035522676835639554425369598560218581876346560859029470700078791853156049543875894529103887676291107123280663909969855043653769889450834679201420264619026907492182679398450729788706620268309802433804637318707922573331910123138527976132126227994702689168631344188715971355496347422390744369708905076355580532996542582466426005747392270880769981835393542788292316147175245892593330347557686975803456374911314815341410342051210115124726996689063552123861944177507542525729541672151306075364436108213708236711714143809687528972238550345505133951169908266866745801264048455421397966413375953167859835234160122981871989052978141364930010648396957229829645243411517740701531228773333610147487023257057534217185505659638739304576445728952411614773859940151824544079498195971528032612113340726402980482140454665038355095710427073713635420757353139897255291325835854219235604567141104039486785740804811393205079106239291693772426870314230664708718844991166926365732005156601412537598431506037450443047619980534074053921529695848188744333585963093155822823350598100124657802571170169616095387470511182470003778269501752666331069983427649253051793719789351306927918639177916806079446636261809698631529754036467081207176486171588236499126224153702336563398801693462287554057909461571819830555097959341205509929209353584558059239146572185837154577752054474313368710668390081219682786914561533640972254587831530891356456964965685386291400964969713379571816043255334340117184191560389439084700540324948020172445108206059631779476070074866694808946994515162149557549017088486946702933880208726659063595179661221265727933350244059090667515245761099566435914470492335624138441771377076714041633127734667911629769065188592772256747317802632233307807658546051418401291056841767437038793018393081633994123085031476814928320663759050187532608043747775404695279467418953505013250904730886461656534432498122935035340247600232212808756129381937146067716101555698507306656222343175783665599645777941671838966846864927113265226316078562481034654974384437633543692682489970669541162372946611193415248654720023167958285061521701171280192544531714965650873856164221559082518071499997823481462665375104781707607211004235191727189201115436157181446436805543110649139141624597813782693485115054735145516500425542828894774115755949965906191665923449198342814140451241748375015197943405166503733292355298791929069051417828721306900966927370903274971635223609509211578742644271630418179017941378542407511540883614160678819180752597281788156426494892563408029844327299255734552248337890634346828686434115521351301404427356293989815947037320516345496718910382307867670326089030193079231259016853855740666988609567653053801581656650465898489539193921856164494340739047067436910711056406554707851127351613221153917603243104296556686700660349676569321939862722712489782061776359945238102855385202087980685894047707863910445876405398590513079839011745285281369768715572138927648591094497382030455512161830413069778702594628499782613109515484289519251336120264712342177164227629248769531972461620541932299785302651127151750417689438690256452837336696082661729739988856901468116421030340190203825180399199613861266649574399397440792076990772351899983803708869356763884201680683303997951374437861019277402101355418279948929991283007745761327083156507096331387509853526377179531787541123634168136369405078950056121822892027340946222613224218653522952271233007116703857372434414699591955100785694238020474374359795777310015205694318789614168321961477639531000168724329083553317752378265901237981878227033367640717899613366387772515029060253736460820134436720792092673964127908804466890735006876156972537582207693462344948274160838561785770522841644454011093268319907721873085477433638685790412053891758639702575389264613028332951207985236158889470146682484082485453381368876151493759385577070679526678759958694563739503110898540792473231818585902923682115776775107865737428438576156171464656258632477545423026798891541673039898586109963013341348393427950079133469805309695772219961799587178928715191584546862896786301538923106396765393568077156111260248562229076707438658068538064274418159370267890344092061401672146624113464926043565375479507598807125712092920716900512528822362100684003625936857891271782970166565186522350192232607562255595310310882892828621436816124803659537175663646407600960999949880269663971407370752341771845797987528542512825809192136780376785879465198929650265187149269106812327258258093480750484793520469160107366287312749675822642898258349448782561283119942895035492118226058336222950076625580049971152186119720169306310672113906761308926005708807957694832671812451068934107116162207639260111834543486796799545767980465725297805127266757155648166506723530561218168277127833252722933411211269275168056079892236962465242331080953279210216517548087302364654223550241348513194816146114664231792078315023380573929074717717979764019160283689929914419779860118668027063116583592740322028902906878824158797923477597912275963109474257868682344112113103695201864976173780425298038275200235889278047922374828602325904369719297311539751083529395373928358524242094002841534255506414110905070470183390359582295130781069767829668592420562877835282989280186331637165755612753708341143717384013625153193315690405773392352265582148306760163681953941702307438278492915804448568288076504270641182291974488199799209948457522331081363477161748866710908523383896710438548428636182492315911531964794417592317638923646308885667025886109344755881210847362775894589105319652715226037598138227002855560789840304060553363003833946895762635449904313099111329532413049129676448672949317030575910134803339104515739931590941824476525340654917371777241499341365464703004310931800064967145073138633500036363258217176854387767856264429670744352066450382704832921668460887120970794078276167033490396763318374084930688419480650510233745458965247622491664832876087179921102672455904174774017823987655873290860917897637042714918201301099001872532968908079144266338510486003072768268382351617370538460141674770368047720661432631902433101313891147696229871373553792837859755504067010086784456120409476382176781791678495494446529838478773048105022039833601535271415884503245365895959215530553477580403524057066036500192369365832456611946491002649880607356934567927334493844900100710947306475616559649388697944852122125743831625580656508025793222225875530920445665751388080048790493880747845976534656738638668300937160296116724837468451941141002942761534105226124531129939818940141546362139323232280927518680721318155418023990369586201904946633815134745752429475215346805632761710994625025754874664719100520019933224404850809365221545800646426650437531743908555991562034980550393243822743157447513050469843332685692004301998289201188480210183733045126890879414627111290253851616000486609906877374815647386926018312914078789748340842728730894235643295153220788397113793828791414559008393889666385885911947379260360927162911886869216321231810154458648123941884129154225829973345691472332799787185752966441947893670530312631502471800509612132452756807267153655898812410286205561302565715016277757362550660477643072156955102260030217273722334544341355918703158569997069999355195289197620718247150683856228771617517014499337236199233550998936437170684392251919630517853905793510356762755629960613119843809866684210025028537446477385072026498675602265335827605496351825559274381262582861494469157789455974766393990733991701404305611074717309778222538126289904104851499853276866660489493635838838105994474488440658252612254182021382434380261769825762294349049291983600728543103750627040748078935704584390888646626507863234317437811758556896931820783419952131827553231390410768058339804824354911744866858544788540350963289961230671221191550511035796973547740770306586127770338701409402600526013967941048489591447365126575265717840806136175041128949812176154354531313055180065361365032469059332649748002394521839907820133055814139891547513141896184004188181163818393394154006597485103569030350306285491914137229373785358455174116361663310019883098394348036838413411424564816588200197730325466005481960581818986981656282577877198042778667891586347702743106067020671397336345883210083067259274875681574530827438024041050715083727489958756959556030052946002735450182799317179804260985960825916484667049495661719954431930583612091096945414103593996179878819757386736520204934502087899054029968563087837597549423804562685364707865756270296534317348107805228939054073641419274329731793167341903401947945367604930691501151676197398826881862234406604828111549166990120145563547690065040081435663741046713747628269595143797630053443421213094008312729719949102122948320095899829969438134337193524633032692313711888561913106860435126907702408072932335341207675440327979285137706818055177318280140583283849241139298997204811461136975036185962753660559732193489556750053031754509121561945807126479444202474734767288813620740022719566306208622870861987921718113162841924172284700294507480905941865392845398075650495499520931569707341994821573728806567495401382290394218611078826513632495846041166531579006969729282936923346146366373580210328705310095386592779562187465629504990779266275373124240707674767748026252276182318228678585226646211646637056926055431948311218953380857250401911006608154748542552855394280471703560453285544972994855420732908113756721204376033198884966290143355189332506180465209923972134317585628531692187464052887387694493978049601981649670836893467927525539890787239058445379052906395776429903433952333432634558221322571515917905367095359201556457204117955999676223518557579523815554784474963909985320239297943341187127435359292847257148475693079876300212971737085990764816813923477200389881387495566586665891422656355700483849379179416019760945844533295401974561780628431970396544649738594950371910638223726292703280188913243388127614292084781832221839097875606523475771025958037723007280246946601615763228728666735438764404310507799527201588858623533327818537093305947044844322583489685827283255996612883088076537471326153344938370421796538903304656854030295399010719756683450499499657524734939227443628253007216392393590582531615891802369704937294584095663914064166161467688705492519910184285297300338406712935959747367413572488168009960037258691145974760271557736501334882434706147534322543878925308327162040155955611531070751129813767288515430885748608954937059021018615545229109781908917936652568869783035372380337453426967983316213836440145969830755847441264621290344495270598120455481191939271046815403646377980995165213543118818058832616697416550511479468438987758282422124251092212096566236093617996114388532941965342637262406553884422970150648205399501794231926758811651958530901253699079404165546216765668727299081369630014444387482624958577144786725399210183751047616289950504280243175754994843720670524549408908793882034349688215062680645840344311185206031506629811196972500589418147924030994527573842216848078170658595729636214306238307310826809354349022343374359091042329366482550370547679023700227406331095355133382789894003838596541814285371099669426019859209946047019780438267611844377875510040752497683353701649830187927843714950195692409785207453818608081189996025953741133437710874743753429127926552635874057744705262545162721191971959474719082247611549075385317307106885105169708530411876257993183066184321102735364382123448765209637583207099222713282686205080291576594384788324841874937422272400386145879017416555339061830701404032575120313070590264350760085790811500967863300064118059543805700069990762812723775606858518631510995882015885817906340932757149651542553831670008917212798359008121900827424733227472203957724256925140820917253932447190695428574037032599187596267548330288577376500984980865175801261999703720828230685553196040892881568711795195987957363505723115747126113683605582724550220839443979742713750396941293669763238598354082950962463039030474123910099020446338088200656156395673999054856911386307719160345651385995678187661042550852374451015054772773570813050192219598709955187823621438095222581787767886310391701651269394862797780016078445790069775948408143715305037745302693446960497504136105690636869245215987042824393703611878875336784931617171031375375735902237043315432905676116018780241059769030260796297744297509755431332169145728287460747252211553272742322100939699568134576749927532363667070629303338114134335248743758430011187822274114967943942810812501604004425019997327454335228459599540076170743992456960144218698246268785981880470949964636545815122604528016334084315933508406039708960438666224762240077365337838548910604753413102732951594903544432978572687570054387442049796938624003028881507654851721497037762440003757121595659595542557414602171784084751765304663245707909218317146993283356473362519245266683274785982963128090180534640291737705024259195420768085288771477400369509807440234097599088649433294647337020224630348260770333969476581310734345694342122960049698789087879610658914171390726108409475892281371849142465774795391013805648850514298944840638759479125733055394566698666868189932081734078261733474496329015938107822754151716033492644679310220205711994010502709907842144610511914604236800655122623449035297201790564717162192519470449905368778714143047718423559595070193885574537174936959878677964958267599971235915443093891664574366548548243346812519353432146072609818951420710924916001430890300099843600325672791165732015188060343211204491635565028073745165551850723529079980175788463817629460833909003486057223231597950141394086060869200937315750477237069263547523230163252944723011523959806642954047442075017751357502518807573515831373385741167222554225046377773180147592158160850972840374975079577043514785358010429694640396062592684769807811499774701471326352678271765012423712739167880492057716627008987737275848394567190749481424322351711752280819164290285817008040668168568511649701661903121645157347578928841410423536878994041965747714468622969991233596278005308706986520032371959971082416516235211041612185960535650591183651441127526743621495180055037902924888258073663770763164379292721186753051562667819289368149278274249776872697801811503113658454419289115967063642137345733734301718013271723163450444774707219212202528847543635157609009039292021495283531256900370156861953504323490858299006629030124207722700773677056680930399451085986206651379292558109324329028179487456701288183595846220054729717771224174748003132915862632109322292695184269568312042516873219644605556503320597657828823435944869323767663484464926119967011652841123646806122173027529346161872205115253895570542773316283481306121118189198040304162810533738534074222598964583001678830435057026863687907827833710334806297878449857731107500520945083224865164248590517150618194120000837632108192317747576210351045205766093239735215289465978718497002445667393385430273871341993061468808147270826192646665646601404907997516121660726834659182171992479399115918246873356998237853010734724661065247105839271805327410827121455358908318970413837872454178613243424772328960206901253787359911172998532926735081777460991851974753341052160061930638269222976149392763292995645670783377020726284276721767400581130525391394571132590911690442541928082504814783875688617182918034928031532265987685901845628729784410622912094110645636405475140050484296825837018645074702561405775624917795845014387382016534524713588420858171621594948519373288723175847982531234925610652459238661752584262244789960228940257452775140371085497150072769280924780672033845606202688282159942526845059577107228561400699935396119278659639079106331770225214839153559573211541104608299572786278858761032953009747712689487230855889177627958900936675762879958638238486127107767084821557380366032551664370969800759473244346852538633867749787241175767664593880226421136729541899215530532378412281882330619630544888241569213304701780368264405570821488735040489126893160651100447089763504609965846811873095251064886586459662138706253369748515603890436466473655940720446668496216664817211572298392064847584039378438257166490947806146022499256769075224542908767037448409012204361899661098523686786812022534708710104656567472254626390292649146214341183842493460912904008048812387657767078102061454629732344805497265696877932857484031675187346154941786185382245355468011456586736307824428884279809098406541286475880300579975844131915301034109504410594079864336791921749378034271093413482975986333898910599367294287583807852800047446658221482638540061646726697904969713953253231416857176563356182353862354396838971967174673891485090240216869177531661970231086372235609117923336454039142206263586000558548271406440082589384328714144108822741374061141521592470120631528827640906618794336886080371789962838809217590896479046053977286580662229809894044165402044581333663270597575922443872555721101838258642593417352927500389248520535597426186697667471167264474234845864386260907618738891447385264127233172914552265213696492284596786425525741289397740551471039196776030666588792294020645266223499494210286005652360005200278514106212384640063508097611903573498296057876903032547975099797964570325350010207286644705140095205269276607642365527647931894595773972076887581073917578318771017770743561627345535429246879079388175482410358090970580587917811433882858589063874212296140098980024898297479774749672693590903315938632187667770416584383115583932360280800382823319322738655772165188268872261259015045933218369261999687765677199656391605452817549646313492974796549088615622684692631096916422487401880747665617361731727420637622384483272777817969382528858269723813238336133268963902724394024937265488937812324518915422184015620048568710548189870646866803806691744255799603776274758556295607766463879503801269217019324844724187733129117982214593547013316609667579743635997119747640938082771665502300331165232444924916139941769037666969058017908675473952924896804539656877789613448421466148900860217059648895476583561420581464457013564740748787062814548343538805833029223541096977337116538421216992821458908772269256952468268393776735003724796990269521216045188685878996032097752845147556979003136920266756973225457718386161435259863304817454832092645896050523098430444139396828352703298302158432533566946044157194561217122107288836824686173797698188719849050645205266572425258885196637461104385827283742151130373701457524662704244568500137650629458862334208827556445114103239977637769471126064237423021864066948937662773540985302482324890957386195427534104245410479154807691432257389817766147010027546770647579925717991219348529025795621052589011365954480781696211568495502239736870613816091553437552179024694458143131406192906048033748064237946148457223824714631210074994712224448981159329091635342547547727379947236293577864518725343054392703145255373166457597767071436338134685990855335195377558288882276505314197969705725801900098839423336334431624644630621794492643604572454551858461025350705437330629564103533288328010550082849921750203026936290380276997503135054724035159325717623177865870795948691929162126596546689834016043993444938858282981929409197430088537185450401993832438119256579094218921900805074664946758151546458504145052030556586019609874285784219994406692728052783011846452514042546497641079366312393684428685994854143557674249633270212256513425668263683209821929916318510834647533265516887165316118387714397781104904265340155565330586825798769525926017809734014448622227224770188837478595653546452240645624152476652239640982675354535379265880386324102321930807515250009203757713341932770949718642098894159730383207979188882997307495793911900854294817037426920536513120808576898910343187611906318770100799234150859624821534217873913380088102344637450173388473652282501382216517730759693530226354829774373643122851739761740656928018059008544983977175515355735143173995369385654442857886577291177187848081209545351790996880653814520820324628572185120624420566420556781663960500823366176234064460268900391252799883761043707113110392078013693340767863882531942938818881759852796621437982560848529678417456703673916100696651540678999361705982690945233018047243242138629372749498609206836867899262135823764296346468902816266359910775487875658965400220310788329187723081431760420494940382434821291297764756209018452925399593698122074736095146120705608451322674022478150125681757364637866228803917666029026665537249585084719234103428810918495900787516817530898031450610457038894846470892083514939574725051168146802349572273203148843121738254142624660030193292645380330860036037571978828436283847862280972527192803810770674108865516687112903364772169287789985997417236967771671968793675378846390229987405451149204025210686712341567388386466273854057030015399931948860677479758860029532428411488291914030907349357739036114497456911874773955702375782977850422435180567434782601657198535518153689406687478899074989077223098054146418139053250098690281412706740638887548688975504773993172890413508574076090689877871818444644961939377854708091592388301446232037668557467471214779610095299741449872599314850968398220041143628815823784840769268556761898932839163317218026055895504399758247217735482816154092200101581473049991604509206701621489690102082031480524764902077215108839268078635241360589181597788663383120292494751593511677552588485041045923544635880334046066652521566829619064797125984242192182798959499567733963382070001706266065668871995167466242699225588222207685082599140052058317365248103946211520123289614727024993618411877198723074022246140064262711608367189759576108857294645104063698881635889717258798150794192490327230293720817665000997203986597589895847113903075319633268846741475411817796015714694123066914637563401062065724365030834563270532737759236236563117217262605497805814330449836152933054136335973895229248146139939935467266841700377161234504401382126842179412228778400224239608062293512349376351423039177670664201829132461067367084617250717091453209176716036019512069996452278887859368985699408572612675016683987522825171331377415350747838205268696091701772065571262178516533887121359397971488420422861564619622340498253835197047613650254984191523597394216665124814240200461888188964383031412864593587755400473454148308206201633911208125880988435124333129161981178642282060694438763323957294346527949877902348754075096897407129456115740963688932227406427760543723171908088634029337561587521302183252926788436099223255421403664041844857597728863031465009281344321382641598384762055743093067938007963564577676271596586555678085996082905930511695018610699989427766466042397490849117774536856197331748081162300175547273788854517442104991037861665790617467381199888773573060142250072781640483788140068255541813710350288945898541637958599898488675501415471061587431415132766874018888756080531698959773072008294610130192051502337240722025105032167816760667391773828111661213802360820742628014996343994901460394560638900136614733908823004918404019433099145462873533036849205952421953253168679987272945349503005728825397127620399213444319666167586132071994168210640175695414873654764516490996147011051575778634686232892382672256641169562534208085741262026723559066383312413331853804163973424863572458614184830273914527196842276143175785383506923577941914695615361525520207845916757418939915119559995927073626550201641009747477764174584327085329850564270160771350594425832414123241439761213967354984440072948083732827866741487660098401010188413034987823007942899702915540959411882014577804762593159293561820859198702068896668686464217169097043121080147409091819001595104099652061595528871612027953079326564680475923484868507000406486933100400734589948803009113702155490210494426112372624613449482335791357323778098965853346031287008605360091395652388667048562630989137619633588823180408796350583406779497903959348747422998883601160353718309414864773603264176387290618056761000154188165954931130777356896136104059055649578493323048099382696113560997142485127934153599084593556571449538837479503450738705500443766596471623834126565195140168999159588320262681486186262920490536818506831273782192132826923485240449544849062068110450015480099398245246255286589007772902378376064996492122697434480653788354240443426883425265957629061634183995749388364945995530723759416187853800779654574287875758379598788849491352897439301860358587720295789831647776662362895146461618659988869684769708963216576928274856986585880790018483859198319979002456290476159038778990873746576195876698984056380398380943686004467095148744995408550478168310869967854676474307684326005474308477109157738141372400438088198337983769362577649980032552942014783515102076933953492461413321839791015112249231742493266674617961056328569532400236321535837322421641752745002829532857968078789734402303027944108951952466962379937010468797326462162061271670155780520058731506113080510273410545751056056151515090502737978193497173328657203529415114750678821428155817285536233251756051059644295746204970855406071597236669545913724854941594906242837255694034662732692697521973637333991054760495242186866213029275543263411627085628718884249872507283690312245217635929903896240876968561841946998192621869956985695278324544111507063683168929624081836379471670115530223005413828705422983978036910946565536469126874958894684087850797651106891354681749162519842959803853739104611568482510967183365669490746813089189176861429763295339571124853060950957243547581775589422807422267346387388950290266504467098154225621784900162392837114818857283641824414231281055340809387627043798842137761770979636933793927285075342061895911614170662774871039475355325868600245126978095048213190936655169528355481473561011441908369859185381880021927455211526966437651255633340638880222629006174967988245354881888448359149913614017626511968632816550954089593687413193405097403298898759290767531804448350754573604642059136473043673661375469767535075551385262391864354526596349635858643831213338491125785963691487480745704412970409811409895781860254987642876507503139333822304989899376877572431620473099945648712376381130109742924561455551870731721387031570339820176099805981804338929835539303775194218392920487696279641307325060238124967441564183781867889397713403802090978429981302488938999322543395815896827606433857328993789305870180544190922757169965248586225906288903630761308782879640762723039205952383235246045223559164473686884117186436842646766394741420968655529358036151918572367064537690850184040196425106838629051171001515138830936068767201016894327457307124261096248514275318088031795554874690152478243618511506077566391744896576322586666163704066390385628098882331547856047349301983449840377748275671366958708405569528995348146266641428766868035565409768291290492505708684789926493794744721436819887142267991431891606749549175666310218460694307966750258795307120131728488677627567818911308131163258335971064703234785462299778537347401020209523123912413456903473598023573472209462167782106386908972305865121218415336179644749645744592992656519291739996986466874853636771015011304419626633991172265701147606537314309553911811076829019118638383663746117343160140108329222298926779441442337509402090670140436069462203879782005387013128206997989383772271439909596788652639734717131086528464713094126173487076509708148080995561130391665825496570132368540497642903050188842622792756296577057758069939642450000112254505230669750443821693922552825150373692110185500490304092405567564244490686062930117637090255596666998563158026022960688353341229486427002164085786951038734254481777527023146107964497250835766583596885503068011749847919673163987161956143690105221444993962378146152098585435477810803372573118541408694974441472029061073125892971716910188246443261031687941451230987508319379842514466297589899035113717571499049978633523680215726036117991329689583152893091335763683285597256406176541130474173942550303258438452066179466220046209172728257832724226207592567193690809306461029247588725843450944910933058545724099348647230074591819577350945150884608824098469859815397755340133659137579394375463578268029723940465784832128095099249396586448404583127622245499774023149966025112930389315726869567292900260688391372617435428910277057589560582833031018919986435660679603245920209540318092450070920275189564687203285660528818415873046962908899712394096998890107756619511694121466771817439013254257801660246396022210031979471618623995538109323460412282252382887585895289151037878019421013731246228185018320882722401407817619307657071127177662555874060325670765055809970506429565515308148588371359033100928370951222125027052220050029519650173672398621663391651747420921080999177287398771381021753352448076808167941541702517846726425599627086347038288518109621609159679367064630451020750784796338196448445377298316111331918756704150902030267225665450855247332665731767637999895733285689126391669989490836268436295951184961064513333542656162876559178476342400876221153215055092681772793062377754263547158507106631339001701351939419933137143827300783964404923888935627833621269055668609174440273479179829052837507821308675488163875505689595770529504996506675515708571004818977035247167282476684546252698742128470239050274971172511545471906794081378660114935032756246049923650658804641686741385233903367473038547895483456850926930195720284256518898755023434170918257749475519377060206732682484330640483857031184489667373514067822209136887931645496448079549218783112887651881720729186508655137069734807812862429209251012298458863635843899343890339143808390607352791606895663909459481395474415399663550971693752256585369610427273933408979034995677886739838326939093717378623754985274125681935218813399014789880916992696351428293343868326287938524100634309158264515823468041505462377911680103526048655479162961710169709503921873785680189246507790825851923975285551859379155328125776410247796238937908945864153171949187969350372705813369163845987808451307805638681836139038226667976560062247163608221060995837286493249645066646734029122659792506797077454452024990585740718954318983529692502673125675769791574352446726079831195025496311421010103127979103483513278813625637980835593224309631089387785934057694252384260986305855424969979946222793457898428835983300666499575643252359633159793416142253603537755394436470993785604819741930765316558509548166478442492458831973686633440745283150830260953652609592143238600720986644047270237331750543255602309461491791724741314181260527272526497036288648636522661018542356108026666554927427991545198505945064189005433976579813330912467322904713014381380137648060436129433117484602170546377991028750537949140611386004501021864181761851002912139378526336959575152042213850031422718647309493399342792377431228371580659602514893826921783050981306342555542036519080385084435407458825713095640321718671847872430038405795361351170962036089986327364045579419130957963237423339053883632010289793199342792684072716166403323400307475848322234203969528736006690382757759888077741996221848439339282321365217502476138085463857925069155280100991157686695210478101857677575874425757714592922570462612098874292843500806148406675333197761409539929739622886062055668140596912210439465269871701123704282314680254929983163877625901653832696990825693387565932701551070546178038207764213313810450966608326174219800713740192901281881933810343068472209176185923311590644544721908852045864441410171106021108180358219392626788916038173532147217593413036287991699505480246322294945161275150724449091569619851574598671909216530995098929279353269497448766707670665586526643351433507181964269170630676417176399004281806178198619857314430711795501727060373789802446532400343639398379401928128815175026563233134775666592903218635725064091615266812511106423202400264528867153118497366255830532339535964165756356909999472522769525773640786425004608949782651073035722757447588149057029961283851797554549580920545759346423735667389105048051949041127990828975987186884331293621116625386330132774155602138542477729565812509036470799787549164115342518339859302715032399181521468755900302399725730809765812982954875897735486513657189833299956154505931318599093710272640491794214130630652402031876292642353373676974050462434444485124128220735265910385266918430759614862696319053744882696126615262145591773936045479210299993518178014764267017449865899816645989590179270542974734946087816587799284363937433525184660001934477925074402330278931640157364849663175000283093156655349808082265593304449266139275802551702327708310573366394813353162438152943583263245450551525170691787550932862987969405017032159199864452164136104923785120491089385560611977057657554757316331661648209405783672957116579287148260374334178418242877223192273361872389244881462593558492673484580870453591385742123600691360111148892044344998502103387553697991538308346974859375215286940334439588074426197705493506042233165304245939518343129336149695134608806019419524707724422691734048063874632140476642935233288453047210129414751538955342638909879593491967329628792025086428612526254954770164631952169881640748902473075219102115029000401380611895909257170120608534082231460088390459439797822829648227197438385775055320891805861673504905763025600257785231200908328027299818630321165357114520928511440046181492177820133856061528054525599102936713598956553400991835339545087263133799321345815600528388330006413694727232491576128706470112598703465121445584797071030026050054395428542818171993655374182207095359114816809903552576942871587396779386423028987629347188429995505766266115459698504366840729830222963403885374993735585502332877529142553195480616449200304298695454369957500783965757664923847587089092149983588933198087388312292592131514520538901407182282900196434472788804758706325448984000739325313215280667995448014332053557841556260223748734923370407504564274845441150747649005070306799832892303766209276719032499479618608783148121969874994509493978285538028644418713206559958715758028777498004944615453756084453902755378120330786952296422492885374654009642541762117067755878139694607477551033437250512992099761781269212435409896865799010750022954263353991564787420828990268106978734700227743584309010889597296620665761636042737995657660039303163366268432060594065939965244371144626485111997757639304526732548593571828778293820492832559724113540914948477478019987185188657402445019723899721062090930606162547565983575997589100865429596307067859741652713233645288255180715122728668256340646454300800988662065076926963015798706140541410405845327366164774945201508021671420410605106030269562722397893292836198395354901767536250838272364690116755002806717639527873537464570570283776871651260934428301617697192274691942093102094506854453627209218745129822770729432853299774783748014050271939550040902191698728955106939623182941166933563507625284724941697377277457264035976725201903952620573250504281218594164099790754558770539991767800699082458909363439521927407925186433290674085796334456176460545144296243679053862085705023383967459950063593581855187360336036850808931100046162168083355433121246864869164618088461589309998851278334045502041831824337863397760794000755452522623967614279868436070414227569502590396953313637334436029474236973820482177293219054555709078593686022410660838657790235758747556571534838130679084364135512173345051226261766360412288478096327823799633179037922749771930151784059167209945730022766128678655829607293312599092652878580464774003767577172844587119882739460677651115019128505700376687968195938300066862162365286764867562756387517724229884901352415986495734388201016208705424859613298968441561563695670983136783052718899354050745660216792175960975391336727181856828310330286632847111755481761027097357163583164525710716664524320941235951409832467357768596774055829809126704754373973315383632151876402243691636966512070019558885569748068242558281825691486484723135765102307308769925276202181414084505171970335271207598662746338874167773931356927030394592892707132481239443219292824601352972998680356840726657224815195001380599414273565931214941327933150578499777184519924236657840751562736911373834255675881394323155436006989043135380891232105848462406411120117493577930768279851899586980977118849710354333330459618263265804346251564288617140943860947074597157596709453757979560305589275945355338128289168217331828222611509281800393375942488724766440972102962972042195716767591462017468230819417908018446826851858779349328787802028429738482103241739759955710137763626949230301443611467316408246959992839904755798224016262947270732817414787285560763539386873743319389470269039266955706679101752703221409484535601517226445404444263277677613930283664021087176727817623624553022866356966507002754576080305431914116400301130374431891886422699893419078325944728328774335166587149892879587663909385448698884330482277999547390018764082023726207634512373924774810448169465354871606482523449045767944361002078448510565732960734057924220001912679784266201563499908103236527434130319417791023894799169086703002287555106657514277496641800038733714603800541410515421022757252681828846137244952411792395561010141598403688429214466408616054327536255580266165607126229805568257888606952689243052898505963657584878967397161867377446014106885992703151990278098517588109256444744982133632280009754257995884439114156660560786399390394292651699913772399751426885386109039954343924057700443977738146031416372419989581280660896150372765150594498016969542490503665934555419054116716466142719650597029663556073903643847458415285187056783725351003509160759187166560584704085651286290370145040071470762328152353629573781866036891408183662414115898364584254877922216373004891867948735567635725752891811271948465499819098740501806684649410979271423683506349438855236916800082576334033536139426422807916784016993375781364411762126315458201292461132152341870179025946356881232859042535374354012607799609415627710973248658518308569891964746221636537774985418828291074574035954758030840364650821473083483632298530317561090838273778080664556514923113389090181792096925331282922632380546762935750069897926850191295646875539630870418315296193879894182613496555913991574001772009248550896164428761579337691162019251511521361176099409904926813408738000048127289885336027970160455028624970634076451951580085027219478699451864825080553743654252088326913876321670307537091267715103952672277097515946510240589974082334176780904087090856457805897282249381692659982621997021387186332074746939206282895753783811749555784732846445422732559057223991817587598114329760224603772163223314225792149467854713825430973055527188269658363108784264043657205237746619300202075404918848473786760690298533910118684646098916748010228092100587063061281542482650797597306195249853672422202487950675208471853748941180206344518993070944556578125728100251829195168477419864760590058140606881595057643086272381102927308400196595665055459379903678690217435967986133875606501076214083849571762651868613778115989470309212642611855225435929917830181199002820867441756441523738146818083669572456686356854334964480523223659110905860932735952403551204107514985170132924390272453938682198560029744694676057619346128178900783464383517784107172356335618936581095897179585395983035826323337775066412431693535560225991396809073338031234210949130064309816917519911416572335826688600608294384797992154363444008227322913755075460964693684472255209738134948778918414725430876389333663415879079114177146900064286863930241602516058694439740384620129972610112297529310712028985249524280238088517124357243660868423357438995713500928395038785014978215854583717508905501789327964341320728129056280992885587869904969684414164806977655114995785876482900804817304344282459982347910181763923978822017661638311226536714864439692015316079640392818989017823032312289580554520485853078818621511142400161778658055471981477830254839402118209131161644136642330027395083188463093473926807967544317774495503871832950910539368720072873604081511314605684652007713801811114554028525326674191634018491237937472539851845063849481157079806620781213138602923561386617699175381903161372206021735371248928351009620274573367758472786925537936979885861419001915054703608659987212297934580680414272083033294593816925857448870498637613384149971731502644603995501513806984549204804590443381841316452895243792451871105874769054026034865734391689466942120416551728933810425018860737907288549680913379039034234073114880762196262830739598949449544360444616383304037479401682279360426157773556473810797558368617312396806314315485585099643186475180799290075378107708634769844476035217962508112151508899420647150794431726149127257393257369359878866960498441453883715874049214548621805649146584757831093873872790363762300425807471945383041167937026439255562770286915052184930698510833767629362688994221801292725480814068916400339380116287950599371058003123375991387360176770485407974047042240269768800815514856330738997640206591481523250391957710252079318198111022478067857859181459649081246975627739577422664231288950386361124034257455970830024252459387508434615830061213700158888006575361085405257683184722364287751418148015165654305659514545306587691649944421414226047817143783873951525842955190534771495598163962855735982563747726385252317811303545391392062471468917731632012826265799818728630464884089951143983909146774385046726345901516502268197909292181728291462177356608691753659243752825395745826626849559660350534476413609041590233134185493885464543833675964715972688827874800229730873300339865501552597177088084656324845987720425777130632999093925897560394519826844616027520998831995296443031197234796576693300452251232098718199773589545049302454745114335667232061835615177587062286575176900414713399823367769944026273204919843701511736998234292948705352942686599387903646968212272711622522212065875108295485364983350490912604482345452801472060153957351343958890378993586701950427086059469869466832698805272520116822520482262924138960051083968485122346107418799456050005638236720134834695144481584228842589950770293752444120994841305907115555781218766436214140562411866666398123171353690712834400253056653617712461826989142621120671548368194012531454540342699491981022700156884991827271468981401276057879428316361802153599581032380763445959434933240741622643558112270765742860376454801752289790378534114281307861066744343924158421401959068632083532904070485762131231379006194882377815187712751958242794148182072207649279841939475586227716169824743155187723909316557063916461230846069387332406126688002546159189187961834705968326470961999335740528621366971591681220387996496199422241497862224586066265562414988785419656990580758925819286633054030829039350045975841090630280910189783587281317816645599035913996167530409620464488892497466286085889890504182818076982009316670033925409404537940774176715260886785523574600132507815162916797592859753480891826372904854972779946660506333449915066160378879116441497839379857433437782858819620090705034963988315867995068415968868050187991829894656688296131211341279857660075144800030138567866232223928295687039019633923526019767125009188234841348172514836713436887530950345086278895355650118882711903549043412377187980353450009419251971499230050638525596739903060251775583265790389387872969451041671781439556649602564224044570207047294825750114877582362025706690628499447161225875438782830154708922479503587185181637972588503493462655576638948818749211901402700882220059912687928366811157120695119014661810670353327313269005063510343441370096875313320706922941879227159965472260044757759196279306891686200814126119818366904176221130840971416869978426584999385005704068607479004253163649704767574767448730158580845947427467465409326329522600963666041002741403873215427912343196478997623676573857205405273913229196903924379196651897216775835219260968921501763943368723976490219288947015891899915476287197798278821685969256909732714732441374349430521371134115035447433385667841339804894383551067677368912290576746708397737454365506258187554140531716107202727157596543439232545151625539156670096829809250883131522532657386146184782994096905019127827220217216141920357993552505565449387806748610698657200688955079154525781799198545260013292181024471917799159850465069150141608989162827081714555284061333461495531492683728565931938884900384719819617547376860658028375830583170010936878446694173817238368913797538671060727330358287803228872270319378631143073011748415448806483834236447015082291940044744122122583622347251863489090445440435043827475229252614066144129419225461275150482204044497427128292645152819634439707246425583023721762267212878185092634728842436825652310265198028746185226050166894001638600447671504873723479225550307427768437129166177987920739101114364031001223490281120010936810584142086837620953801163480957867888211532247474703443781043981224798287782783173060929238014532240356883276881508431761638849788469943394352299332574480676492140376504261634277941393669457646471395515690475890424151006725027491385049881258863329180756589594271653908747216129961783740363723582929052956960246688425471361753218288987842805872946296103505313268390028640958071338114748988125721212108162051980106546151741487219997918048236263833951646444270280856384824091302792515942900134126829375449133010714376970993106665176880569168182526437803312520659256381030024866514675144010809299022910960931449603430731209575265829594795595921511061014065653651787000438385545075420162848683438834516181538779758152203744481538333607053174497507578838422407416187425938721081718549092025581004137518981359679010131141418163019645030304893535443054808234689672852154829967526298451302855773796998978242538783587628583767888507569993585752143362556656475191693184983648801906136209878842224048578825698940415775272029542579446994660588865242394250989299015537416888719419956130079432814203914265430420146284510802345872967803821264314463515453166418754833303346662165477954956066894788992450760896759310616628556619286593352905287098809147826558518116943075875991602318214134178696922919278073997831106796627082204502008936352626982666527689240409967554912227070995445423942510701564957596576297118120933714091161705794613374827777048538805416898240256608630757033990146925971957533341063658553136710448495175319495793334536176459352069801569483952348235229884174112333414831429790247166239892988723869993649655242768168674602776855774160921970277562029532538253028030278778481545689736566798815299820680466593687802238043601361578992122186710728494872452605953150529313845741848085399761893738069986763264764681268963631428315670474571247403615833349724869135276241302603975525850165743589026604188702954529116876331987581411045224500968789194733157563524251065715175980184909932888737122070314684321164058682962822084560507043966770022493841550443253308867811807418761206919200623683137101227997246872170880262699140633325913783378684313232730733313745901845454127773855611797036372874918400527970968052419982375082802817130631941300276546387154469871065755099566753011574006286231088834262451273200979556917208492941539256842924280713802249528516155781679244482051303073958658150901081273184901489692268448002562340232055973023409528361711271017868074118810838286234152040509372505919890367630879062381339174139095532016490209461548007753506191318933900243505760863238832405850735500450191463888247566032846108713324804603750463701434850803158908253093348470947108643840019391694110457000301262758531954179748676415762551699027732212169331517084873329867918106464820065610825554709217739482865590846234214397355781903997535339765827012979620225667218268182142422419132369413339378972718112148165231685872402511970245125704462289521039943435828841146553787222150369890768508958416873384132852175743108211932555545135313114922524135821783988470574262276423222348982521200700377044211134633388286960993077879375309154582468523707398836350698372154088817838860484388030280269932475676132983473538010148382396915346126139173158847398291579028236864201604418000433482276441728576286402150419871777785733141350207847810448179488488614841884039744792737602417434640464857139259795534014781934305120651320876572794690387682160775032868327221440905236125196569680047377990398606393734802629633911347874777982429990209438906259445026754219169136823046988313241559864390978466909008193992414420124194681301734439337272055925425298352445027217910437089473633115331245979155549451818390264764426776426412199321453023171475396544112968350752212924175772727476205715521753823207691770662288828394848325518221779990291187180779466035358627219408450282594274205983030146245465154557134554197829570300169960434893001922060000155006972824837251903065281461290356387753487720770186274784594371140843303863906294328524425561938534992097541452889095510492162183067319258726922938208155813245180728625104188016666855862346213289126264324888763839383082089470751987212824677885266826521522231310847614666970081211427060021714010603370156774024221840984942178322464961167397134623437278905134618955429785344404564707648885995853460050240800585846219149474790180717658627690491236668627735133540311896967452528538724474913551641998761267999593250495990822698080268112859487320368507697979153593073747067817913126757876525210001196235969113561283061088025717898125287473495641106899219924337150381704980038738244647410865897354578860770138675401185049688148732272824160543626463690065334182977878050125504253599400602425433640855470732212472808124398863943178275504411490242367351598657427638369982397775080252129610179340670791083486177567463171850112195635171790312904346932361863641421072931524273121756557168033142728796855800516756496169889676044719813650787816460976427271655106960311152991486034560276541730973588905209609620509138090249961770553372166477581923304071254263585886414471852723248960562842281971159495658586695605873972896749755459156365950485211271935154312652069167745762651137441994483074534348733385496985446132515824364267331757800757138521892845168670411642202225345597162693425635579844942796743863448692666373368888322035702166647717090135400136595213839834153816928217188051939672974973593702742943690430310619998211227788800940370518788616546792410635541217693645780997248671091487425895523458067539248507060836875291471733977283897373371489009747615422607334207348994656610167105736402907240567659351765186528844471278754697053440120456448590878580425957062213244415027869001904997678836476219841509715747138533489948095033684243588955347326978448361387612157584975174446276035175084705663743224043335846325603511392492522521630728331731808649389351155670603306425049250374935301723690960349180181617726341721244898399264217798302775441529751597032221343828725311300504157839704635021591818410560613844667403735843307966687326785434697959408658245102423036343916259836789561799137789040225452373571448362525858899066826426984906022430526021076809882606593452098074746920568723986889863313293031261912688967760615529618530392188816560537149384449203065278451955818920741959079521753924603623572025427038027274055744336494288583620209219041040575546017702799919835308901105317172513970984287439936909730515617384981492906882149885049259339585146571659814373384063813415389977416710971603583158704131958436750678745836435249118334923322489913220582428094920697804868337151436409418666833261447901738656417166516892213208843080803562462533921810912758535103911373506349616185481113374954217579950729844238422778158468831895634120115953693027802051840501556658518666231762681119290440384478189649922905878751550732365505710539192660000284817794240653047166874439237372778961037531845330756942204861003569317240134185454213961103489110241825820687021551361962140248335718908242290037885468583760467726690057028946361604231128584143625820580964719381108354102529411071056536236578657919204608346178051379759265901526024290047418359626107822482065390820304012416104242408622497186893228595569392706642942240521814737419816725884072564181234041253420684629136454260002518322463143962817541225185093903388635741642447393901623160471947434451921405641064374997890612331953906338698028265661378351835580589689229342204526837665594438418857386850876672959166664398646600372977022294346301594293716158107282700086469944074493621415388377374993968384587990611564798829162224506158074596119065386572486700380947913259651184973690594670146051289941726719651010301548253062868481556105165405974578943008320103596880378018361545416274696242648304219158198422825656585626985962255881407354502651980854698017641707463824280098211625113897477455052170603147042061134778096495018545571880376016708933280302978572635757121961252431241744398176924190744903357048746675688030737140125198637835703213391234001143545695504706347084291913042824109692236500387989005978784308310880142095775517874263854641952159659430713725104698262530438163624246835480222202484405995336300831420063213355875977443087144611066761379438600058504526369089798670308842926241161331870488811512325699565631371883101724288427628113030705099300318750264316504251934186220186144502217496707715493511167378050369339975463688890728615254782442250488115752326929560821125745868177730357764528609450740251373989003991893690900316761470924952092144571813485145652497806660258483947568549935860015771962257089530230829540925478987067082840871804881267516626344234072553463468069198754095016605159029168182789128513132788019756143757885237148460337302432722234870221733003367857679994096016443010590085401713002873942633364325558495016715159713972396608933194516137985001856121090688591412853534343249806862219544468314627074974604179295740872831841278068318834233531486022704880253112815053345085155939525664414309554528211345282718571321805871126760215866214737024649936771626169629964079041034672805112850412078262507324597072215980611442614213597726641919836959977637954559274318728935059290204454613663924473483292536195352926084720010141878541743902005789623604425887358366662190062247041449008631206824146183009858331229818553490278823995592984045846472309772973330570653490947596880326419776554363790424376898426839384807296180031469520939286112477157350849238966829836064520567536761896780315341271066928759182122508174123729692291542395170581418309963140570039493122888281087658196463018840200003960119107526707123658017185276560117367217588815818995772830422427461167137422086740247659508264127535604415343483276507063671331989661077642668912608479219592875396059662566162687530317135006031661897812089044007079857547353134171022932931027154230308001817857869506033114295823216335604863610112557358221933920334662370772785203761559601178981089129120061553512117423499574520374159159274803014495275495710564717785605747068829284724412872582283244748490870464918480460220018257736987571615686653278682688710392645242758001220303567093739282077446126394170871374490642752313130494760507296077410988847959954736583631545389136796288081985749433421320081091354652453463133564044463734627623443620282665759056511505606955615754648803588755738247313535768416206379251892030445506222127014855913353657610706092870563739985909815368493333456891044649950657126790973153940024710754357576111114952180114827453853804320524441938657693644247323679057640818607540270830631884138430347513913412926486527003005637804122580317371557235715239731147410831738041100770903005318484014925247183914250407623181641516520234037874438526240033905102789611059378266696650195914886052952445142334226329327057237912001412267600276280730752648924605675578288515901380245462967257118191715945242319955888691303445489302924006520648956682733851227999969110385188620779818123161702822155531186359243232928257396329384405072862870452636833938369182584145131088989527598434754320600377660367535736931287364378788782133701021682556001017008117422213115417267552979293777654405485179804294890621558624954566671770926808549281257372267911244395097040938642513157938726803368101717630479797374150332262245919294786939274778999195397753714149514514924761616796331651379728556150802662982156325164031395416227025211460748195161612106520384372990111650330408813051105896293350078061862602041738056227494471549773299237854286054132089051633153325096762492371100247598036595008872294345810084662559585815818366555151209541331913511094605917654623908178311221267091685977498083586160749031500552955636110550218939795984976676921092648536966133363057174154853140402853494187916819607745693753127773484732265155230767966568456875809701126228247458025797412898203495907021437364542346323383340582579978179011573865138643935525716220218621934334279167502463310698861955764295763946803063030959907319096670090008942771859872689253089330630796479395877220911764814564660439182715167614315530477993532335163698238707483169935526945468709834566516088900932203064840877132122880994063912121934932801964998118582168421943502420507239145879571360139027209533053017250329497622522717799982304898643979745264313546156956134041950218495531355498443393102953983115584393187310375144393444800115373978225317296790582841868565312335518129837463625560754888528693232115355228576261161878152558055096832139139447119368428393911501921022488186284118534938303505932627683524655142601008328338745085376894648810117140288205800744082448059076447001418778745094744775812228073116338210646628144090062815328623303932514953377090389708420402283440135057076862457666206848324879752299396994466604436285438512295071023070138898889732111801368930175881005707625534063462731611919968805858373036673877353094011344922456342931321100897088686446645751537690700742062314200575275540655873570630854925625908356277545468250463291741099012886983874609354879500121719725636471906053081442743038703647342871548508387218569946864058813367411510625480500665194970557594669364362905979105786728540245923516265907133672386790616841107760420770515789505245510255984500642696958210144819213875078799574041624154090283149715922848021388174566211191791079885938672436475530133071018182268493000919067151363436426823697244812927065172059247704154450758656609780917711023069529817824376911628565350796365477500456823539843261127126050366685885195985611930240723794417740602272821659145628633961508720160525578372075869472630201706397337152541404560703997637842392575385953087342153360968247463728805278212041364605710043895733968635515288929701856438072181657292503935431523887909403749648358397466447919180304752240118536131719443604136430093560798797536411537420426702588434768355373017284817739913992918631396166878573074974094542263497072860137032276238811566494626932009061045991749988547027178275402243779789285255695147589248605454812465012406106321043665401728691081626226366937037754044184090010055132314526182801911579127484913480316869889694774388114133318538448005138493907975884215470572872301769187361248371662346035891346516636028689930702050002883361062191660126073316972479788638504511202777849483394399256633942711376948085397199456304465239254554290541400460542743191801243810864336435103537566808255769733541811965097329934541542616647595471632881068333840037618552814341349879774778784258343330109101261970935204423717568603244461128403153953862952096661813935343306044581293526439320784111655323103886837470996106645726134945365671869332985653914762082317287818800168116772340476692729189168321070527054580417578281707005008970075417844716337624717183052972646505429358628072131405197397866191922591238719556192334115545080816263353685316733743501398092309654514129137699801814383096031850724514158005855669423771875826688408338456342658828452437304076774572192412506790403654289469095526365407351508637288733589417897206184040060591643996488571948082667549867045206840954337664657253028497066520844503909233588259158228808990856294281836074345329118597820102784988464889460549590868389405471885536099127548847586318324204365407118813528833415291057354463399301074630915983489403478271898939336986440597036720737886155510799755250236854511550343851975498003700069906647076062905319279136663111295644583779421748679608149609042222030110895067405852361660118408776721253343392870530149252114755142298459522983673277842332310013682501065851987788115847232160079675394825387785114117495575592109444842741802506308640045699411300983554923629152489806996678286622547191939416088979593398562152562810416414539653241130175695011942809019994602085515192959696441303241991463419023852394394759007128378745334706194965942336497088146201213859654431359486937957375335891754773684674223074353794268068816077857167099846985842462533108127091093001246843182824951175770712446707913640481760928560337086130418549522165339820638856828254727674914380625115483637625796266811717295944454544317504857321730735833250228841085232129333985419828590008886792829073579844704100305610597718780984895780172521165503794213458601604914536613150536118079142327503233155264999951729182054219857851812885456222672388793648771670579983205621665602644151450907881782974081914122817161620533438662708236414576562715038036404087907000877042411097389974416288357701409602759591429387703804512014767067102597844653771564760998619448293314708639019768731173700255195239132742809763613053880933341688081737678925429549519306295350839289266580547107325767624843410650092033674133870979464992559846185530519947516094812880218152149166250279773018083345480605738024191334866938377154039217344259873962978027153243244697720034103702042576742774840345024190975457191291054878814733955048755900610549789489265632094352047786701060089273488168771596539855248415499413948829372498051017640732237105174661008120238929124495086794123423309989642912681732111149111079402588622250396450737232453484019129692133926870172143765739511300674014173820720769542122332509147471805004667189510150705234817677439098745027749364927509481105479281014702943397763556833826337927879671998858820832926309660348335402814220169709556076399243495404871492755783132411781342541613359668589156433421689047324195936526107980549815400287939784448725826677355666978266530508020368047001446235629436432665496076651462812689391802584316439421345268914367464338587696984860731233606807945079549841545568387177561794411174771658522221055331239643669366656661403609416994078759068283481626631004882097003495141032823145258219023633421138100284359940909709915879142661672066401424621072800441418119366301461868884273490551824685522620884165445322165644199693577917050428325083963663973460735151456055243663290570983574401078711956335483035444051865580031368105007477031432419826604382632060574518752356757639230777402150559723364096006434703061694025813463521695700640547879377582077433634739811482274899113679625864754474200683522329227303704045266884403730488560800765354210144952439831827023682796628617066387369347881353496374178539322921506340882841575312937937343743313679826226951722360817335077808211475806497568726954329668672353159568849759160667040193687070829155866183359188986741260617433276202916853886070925603809676865688212275255230411894638124895698325497121319274482087018836882190791508094568751756333633432645048363204240631841274823534773741859664506120070457989822641365015837700610395054055698688459494338767906141999405068313582708712199732282897386238829943348942950077405917266536522620757541503735558631198113981538059539723378391807918346895978192438412899978612413018255689610274751713181998047491669417033872607542479892420770669663799135990448120826926326820422686626932606547920938999195967626887001643908069499971195645984988981093042812406065274676716543282624838954908304886477581546715629301639030727909686380974227086224886656062566197154665690084677072180138656189009039896309400493699008627849004921077132433756234333757555907125382456143171130366136356908384103954496559728223011461900315512296628433535224936148924789334625983826169774318146821964204268182106562365800702952777030931167808965781629989652208209804204204284642737981625853476450183020030629930395892711994609542563010071329565177765032356685544021229363797700283640871784971750981155543865425225877728345619387175191310839132290435796873507122028863108625328148149252500628634580624385617064347097214138072651651620370124315461402870006280230030228186552557948211575569200069489498291947031106445529768509818434326584340583181620716119150126219927189021258363395438523299364755258470276389662595699650635603755879398548696698214646405954204982815304045471483342236030489393082720015790265025663237224006455496687887898303649256449173394549606261870635049283246862031641760601831664866210028916033394935056907232784143393198133693020375310488165167121871167855996378361334395163815786278185100508529404718134870287816812054224267088368895943675475327943737432896967361765917573755308334707326729939684745998838353929158256462988308469159541935544391453615075680444980246175493415200171832970945244613286100888744196947669557920720994545297744933193735587210806721507152836952034263338171821965817309045274324525255487942067877360031427385360964041757437112971402376286792447159737611551125494307665024613862149766464865365989171050363163467477582519761571814336095303351103550083062004289280859966880846241182230780370733561770092105341024904715837910666342174882741889582063135380418961358283039597667836382051908486918754040409731542932646384089086644593361054258896794413516940231692171508407073489741716093864783998913449338179963936176802737543436898046919953422425308844022897990602082529581327190373754399968753555037348256203525329032340818301192213833622793430178574693149114029207411042124291671279308835133543497451384607900230459984209782527900292277985505768203202948662477056196621912959239023978111530472776757262900922283766651219826328762969771848877465637564054354743893902641415030451000682211871528547442890364178188856633896312865006999839991100305535677370215656547795910092503653325986473162311372001171822796765111854639545364118752217148301411240469753843133662705752794599749534218522292413265779306837543155489052392017354184283367703283029893653594660470491623228499740854235559964785854680196321255916309938935021039726082058466053806012166808700883836757886131723138180229368510442557960991793441988812389939159859921834065062985161271749683045756735130732043070788167335616424126883061682442930342476422488674740468369558818494849533030216315069460560055562927939597719640134658948090032057718707264676772937451817529556392557867673542524037914679001295548780716025374451667097302950000760296707399250446007010551637862390013388354157011323811049385455223737708574314919959648506942839830525716226275747438739485747446175861356087240448194283849123450871941139445130613481157400932461459811474559183707620477828338449375004062186889963914192043720382351800539435166265325578192069625743109378598291151512312239200447759565493055448109393259851744792115567160217170427412854365625430801405450980824713014023300980824173311798477863477052026444499579792077972353732947329905240532008737394258050504665780053350361821676429853066314242524347265545582283682027154352082588604963156387784269917363325009212830451993089182188660105449189792116100343895856856137286915775347567723774560761260333008183148384000140434549660199033645265292059392990502666757250698224765088267774797061871695851097266423345496672073248251859885144656133167806436905303678031739921714099014904341288273932207679094079895721537745964837201485182871520945348574593038291702611335777258153500545251582576173358408000825652145440226665550707661729077890679660762905182527881637418345219450728299983108423753095089571830292913567751443388561696748788030453772601089294752370330888971168511103298481846002384906178477269584789740442712944514530067204737528226126888062323180641437853377487233569129016108820746016089030752566427141361882354912717139265186555385644947493110497170032523775689266063076155450297357032423900543195043484359042568957308526830204525189879744172067308438745903523875763181232463676000002056335907936154069826453666947077766284941073401383421604497439362314312286577815860696126073731800377220637224796538608634900218974849060411275644863522193620527553515653820192670019140648471132472425730080995991406528727340126153520067094865251024980693361638191082042633393825640888721067866887985230444024172674077701219263931884199555309262632030718324196931626012511611381225217279675055231448291462464773400964539952270036843980989675979802171193561509407873958008360254345419663467430323676961354179610831923949396228279363437358323904478606485120147135676312306701327046439932449847913563064784283296564661474725175451888551822579159863278854501636484498247290921867077174890223692683288674790632515184303888246966341321940836988760079755911099505127669775039089239450219280296001647579279902604326850817228740857754154607742363645631220587439169446492799828130118962223415714852639475640946602029084390794503225882847331233677331517652593056010638538666637449480793251677286294626073426059553947218751820835159132933366801419935493952275705443044748226225798037894807987551002867373574885397821639470736296199886807289289755244629751710736910922868390996924108868350316506533831435730963922766699087356170789482438023371155188270586498607848180218043840458291518548572188290883490238152649489388590140460600972262874498220962442780425110720917958159353039585444162403106756255115464373352192702168542083998806274192035330000087766516666317821689540576775842622130592099551894699531855813005887910716567532223246683376552013743300439279636637391447673572800820904501470418849416486697150159143828330155149254090933386958019087700689808897409072668483864273562892423888189174071603922306145231458202330831772807194998342791999287854314528422708852846205160582248177254549547159480054562754785492548966714154575447227336694733183859269665343077101304007680064547220661858433809808814901351588830158922901727049454028655638375254640628158011676527380818449587279477836693738739212223697851018654407696983115744233467273437859706369356640381906773692505735978237492159478962630115064150395782352129639544286193667530347398993252035871538013103030364896987840382444571085609020812646303522871973919513591122201701629790440317547655811109262634436777491986791650104674357178647274016299856352440664911641075629574026664675624753241852586940114188450214252665117939697929236792178247332423882254088043652658990973342861987398904553592628529776997016542899179402948420875074972262536785533512153797008393073793906432092489725586679032145274702876405113159192448244626203273182871717011749141267646343379812840286837022134682807554773121661722076096921130753167506690807591512128252731122344806491030685917416419512329443872254550932193801401166109842845747457383790749301159683102577309095920253775222008538414770706934987178737301162399865061069082759617339892105336021938962234571909594217105604145612558362127909203494303948808512611834948021968072171303347872671106220173429681701310179803323830235793104885653680876832203367141816703830232277650421865221988255428366777417629944212725809793365029931268994418232630067325429675477602785290970589205922090972937161447924043979325387753511462999569808137886900723336147861492711870083506987755300105355155313993646009634975047744874391270220234814965701553843894365084717875954669088785508512305731228731757670443960811055954410799188790984323924573314515781114987888536564743235986160965565395686906070395108801465891162788326359811576315242694065672457770110640296088109995529005464099757163496915621323028819284405524461910711333160797270446925708818876249392867497988319399862743539680254241724330219601399048325539816402859914084319227938151035984834333959149144381102555174579477744925162067515096051529768595467160332291602901092465691373972042589760966275654429969782213617050960406014045754052317854086639790588064368270780223633852047565287259173173234985850056927506882730442949780520540653308951069057929796735030298101479106945631309616348443668108187215685623240275975980037750533467211403510198798105595842464161828555238871302698272385324177948243338377235852890800989112408247884776303534118995498723411818844181525152331235151907312987688409574431732312324979636713153492062316854056001009822942797484753294786374478516637182715342869491242933840858736930795015730889665807642631103380306735486730853810114746561210092199926048664655813238842824099473582355431962916467895634356925289032422485317195010470836119232809344819380081164008955323214805144987555726977760637144646566763370787086146479782661696073278913164365795130916016290641776742011061391531261764317339839533116329733543685211300922882638864777553425068383785523448458954010815086879737917441222022907985347746081163183444016714546504409459360976854074269441289076866354616627478792933227815866144913608734291903745244398158077148342704106533176244735029210562455600206560773428233997771995670317988407733853331209822278294221646437659166775745545818860983900334443819438923964931342944371528371614222116692206458110107762631849169073891550019975801622487378592651566531507955000807076091326438191531099469843908007947937708567051317098406293137351723625022561792566533711879095080525974978345817578627202229444510531154797973957707625077817611989612871170703569884094642078841832302356902696390580218757033909116157245698363544246057618298053865884312542855348376468861197128163093089623698805527030808215523208794985021761879099633304054977225199999433414902162165116118906424917409581979845722100417773015711056837766422081489892096974690592246315045752250366853295970342588712992411566957803196456321867686427057282800343578687434250152419634397760067198739270814729619917338519658722962483492987325709799410924928273374283716629270015694132460311698368232103974109756668011677299656011865653450316659631294139801343622788077947083692797620353856676666975523760241127163532220552890131899705973590369641533895636946385820929096662452985408268892233925580107336333980523135168307312586600511332755804719441403692606785949695217275982578017849000624846987461517850370757392705388170657915274767177528246022965327756839325690425881847462002310439061923933499094840321817203769674055966252062778429103770898798144425990926097995513272579805884533696730209686925917755632785523325999768990670195619485994391874577822527853639475643144140231565703931065863293737063743488472678855414066658601059681448548765882268695599762454447754885373038343913114536875518806984118437506444465386865812280767990212394338427921263044518474552363954640147273178914078157700778463494741726800309514998043086959710833437221521055534927335833949126412415001981764537902215673415317396797223188057597014133101138035624941896620214423327934807015557568714786868766895986248691669172648988418837227113270383725420471038341397710462320807413001611438024356114070785843023044786498037630662462270591907052486417659349364811667797176917960022816086351457587931953185180796822409357176452916666992328836813525630105354044375655197258427084529447027887598881994094221842098400190680134872021119690249054431155070159043409595561701439747573834114549156701771145703931711848908831875213437894626631969285056721875387361353449455244285485897112207409913679686608249788774061608025068122969049615809818122608709793890301051130368271064097584294455009565150997485079505748032420195096669574412656339911757683207485460816400491195637713290256457215321080144704404795831969230009410111719871165253152611272997615197998896781223864711561724441525608197616351853623698390435745092680483721474188732500710235077793376723593405186582358945519156046076080872466408795775823605967492926724579547988197300823167724942515718558086792659718356206716935653440888179587378008270551593709495804208067248770059947259641488276915686654791352745845438026992457394183273418506461387010565351606797552793637186115376811234852851757281073918508529043543741877040651509432029331651730408928665884198580013949948285219946081707683643748771249069060024923601016740341379306692217122693475859678162991641081609243138138764140019200617535015825844677174842901261321000027111197401970101514811069137091373457181733392893583710857478285340446075625003736430503038537070164787945977849649120248545428636016889831065808119787817665441090985323893513787152064203983454042575542264020797521585604436594116044374074855015217078369809148995455105250990023004163569876668001488982906412412751745763925894824423043983075512398974021349229999461181701863990848472474016161986375474683841299869359570913918601620809415229186228274753685090249762615959926024100014656906839866180817822950391870725370688221444400581376186218210399535382083132809097871342689832832322650320429748925516155207180779422947678010526709829317004570377114041603060588443501271902838901756885199381054135110160102923891178460643042790188199743038503853919483031470029762736098161509417519453794781351532087366207138346785648115645400345213493842245497583761991117413681412636724053368211465161093184734841915924591764795628085739507262100126865826384618777316046865963962471447059760364969100328256547047582823149967915881543147970400403570285099869484384561230061914538794618668553340387570019517262103393970415465629097148629038883538056307092503089010439900644311731141927200121740157324706942666904154509441525022974192166066786879548395653190360210574423951014212816687505876441461352877993617284824224888505369820218125230861689784008788628916792759775367973640437556851952051485072833490156303111248591690131211061932599260602306412033680381364519190034887380982768155963346995173030671884800637030371489756899759535309180893690593499510987206299998791589406935762436926330936018922036416862431863640018717051367914857733595853582687956066388182898868979785162225099900984316051302642862347587300775269896647068207755971455409515760788806062481183749928144923279310848094821713272774071679189045533372634526548975373802721777908720090105219236426034802780527079058827539401269014082713888027387412685274968220396152000438886470965084094100203615210238350950529560998177905308073067176275179208178928171340458843870232853252181146233964354873984435931657421982550474387929436002815492434079826623152132286565636496502992764388230894603444073738635888643713831420684080624115774708465818696732016528055423795838999729676898345432791627132315221876403512159065829973986609695030125152222514647359910694077952097392896701055078563835087371718778063273189224561892248731799184696449475794288690739199979331958246279833730580838768744710017344536463185967106739148214280414205704337237694065623926987918934722360606610334988986732967710824460407601437941083203948556730077600217238984941072850339369903915845889633244867445338833589085658841833509949224208194148389514458675014976380566068181522380154743276460418085155334621858142109525390053574047407791874117932439253100654757168576081075378238949634704340215888768147391621562464671714574781883540527530291103221682930126674809743635333767467606670880828182490525459317451259472893847736879064529869663253169773188951087790219312281393407010276940016557009254664423374930839979124348449722361256027724962698389660678450396757874045479895972545636084643400922438235068121966813574486229126488513903601917576511687659715679751391287596184041923819830526545978098615211254963893416159282547496255673288254535478978740824605069373711013369404251418207085520426495287194196166739987312555128883521562000615093581765558987590178338785358012423236670653963563856350951964320880941709502469889802467681771258825837385656360224065319452373170468305050182781229120370563492005123530075628146831592241476628548223326034502757561784842557311247292961932249363785351577109097482338653243194313489091454588877616728531678474416348506018732847183225286967730351498194831825886598025149867758974107262650650324334453603839752641135505539052062020572574062883599972987653106164358265729847867438309041437182598640417090285235125489207575020459457720009947939670620093953281544203111449174241355513303360497289610029704256009023820875643939645355342050797204464257075413995578947988679791538146792557329650555377602569282913888856393070643628610912085740479302913929064883674505398740524125488198807206814798915802316585408449600580483928236542331848537534982718213308880430466282349790677507499870599325739784596145411822396038259650568225203172055713513389359135534396655132634874517143277098800947570327489971868095681580977204004885987173215467593651038487448467278019113121475954202993196787311454304083350387796395177821790409852760863501699444316047598970824869512944200521160787197031177790498326557235379778933848705142178133295985406464644484591991344153281407522875189609587269379801288430046736900667808616527192029830003295153855089054783766308260477948363761654826679536047576265476420601740603273873947819567772298297285232828126051520697241267122010567774949651081150903165615921580166791941718646202998130948411236737373714646611021103328885361171050145431961856351559504118993133262816999940802677574479243041781026846801244096044254049546199563542811853702258434330194867009089127881831365434788766898421363401216516218540574544267455666233291713266334522630384956860695338335389395299656015023527043405858254960701622599861885298932055946961510573219434762958442023334188760131784760288867512039093399991580847638817956558296236327856651697481110842042500444979398839813042331445628328459162554522352911032895205439446684188595163380885896771126537342047289871343975038398726853653779446678012871474239479194916820377551203426903927791433268166907866375563134925178400325878884550894757823066705371464492472985161657483656945294825803113377407548342151775368292092928843348240734111236545082427805484201472276698395749388361014628576319625677408361317746150834736446094063565885868305556440691628402384495459863138493872069450036688846217191553896192692720545199613454082627446536536983654926683985835509803307877595419497824398881092303626569406772580994732405176616003290329760591233542695021152900350610696660809766889706837142648336532527625896558957770751594557470930268060221734765002669595826821834607572060696215528004291016066623333245796099986413226631963216239800373905029157124276003161002131447791804388691049295444918052402228516689123573124220432712908645397942245716812674099852348982997458580472842394471191320115855538173596871733045062546650585487416383868607129828956824723246502013498595680796169073404584762609554575046570699645209894001612834925743836364437234909441528325738961791102503318191385153695866424541521512736670554677193172788004314736558958752010306477892701807283663117568514023817052614147305250779772930574524038799270713171753453326057148735407009000341110012346481569079881050273934066262977216562729051594132993214626560056184535207521909691065370204026238712572940346370894318397602457600866577388310170089211147610773324307582817187812731285245547445475118513097850784793408755985750093656676574841415800320743046020357053302003470862230944388330932755219686815620148665256709582745542273408093989632534127019445291870678357614875824551944711498039492421756374000722118753259465705901561214299322382590835071972496053982779744558825053509989299323885425486416691651583474548475231546451066190752865174818567102739497749510090447933205942435902477939560176621405870525523455715277105501300762260098323515395685648657583778507099564312310482016844221056772128177842989604040170513922629816872003655216329157337658371894395420353094409034374022593766393649443638313909463740148067292973363765367305946851284430871757490759923803181019868565743574434627530953495767126143856215419183935733290335294709586929564497027226100347352822801111373732034820045423299876978898678733732684183413785297583245521521382587531580408894960137144602570821771653503409655214336960180545068525511671566345052395584007451940250692705998995085365192033713233098011835857988411985351215286006670513533181825008482608796376145171922993971466408695852562175506933851879352390626683960140192042246744213890443034727140756639494620133943008254050890743661220013265564675838840362896364172858048673814954057746184832024243312071975756420549268984590372269949132104531913629981083989116572481454027771704823056801852845138454107891979158198088986546454193246692546659916460353741195220247917842012890017411061458104405342930841641288713743823628079818893932260712586560023052300637448755431363836221199175788703050195599179743051835957020357674754739512977220792958234763043925819759646588759203391734905088557370881783380842549172205582308890878770983332551826580373638265147025166546016648399465345079723244966629783613853095531327673506042139236935497122384585654598840098271845327107704099265803507837179759028421764909443634479958001954806203711882181838833764021169029486179503954281057306048784640535233330072836305543003063196122847479340721029007984456546161405449111881114177239441470879668927990588437124398062957612702408636833439634406956500779854772673656663102968295169474134020767148518622253669038988850222060374739844109809060837802538719130065524494302852440783578257106977664397625111785677381624246944628005400567124886774643583210713153881724846715982266962757813058268419319927516336504619198008121923573132463271687553552567787960314790479126904883031311213501744140552972286265514350258264445865252020205550584551235611197850805821866099524285753888185445090883690086013175746815490745861151283829926689093121602328802884266020927205687012361907659655081580609814003539039604248080417843093202576149872149166543110931293641657969949155446278749342853400061836115171384183375978846942982087092921364255760742654067000520623163198888429911437426958763208018983773334829290008813194497486399369321092818266807887215244472192062138786372163705621124428803675357002110074685450832009005608579623117982745532839166515128279059838176699676991260332726736738779779476369624288099797100386222378473579534699216894094984257796003444531343135454181834187675648076374514373687695956701339419797652903864652496600345013279118434173842262918120823530130968370043584112593569342538978601372919733148069094752222933130008744071265180275339252943688039333539950883782333737460569033988124520678210669575496062975356565592138022871760862325076703670859129067267063847738103150731140957075695020779810092517061326609832428969037325396753041690205409612341609764537349894620559115589111418681840620620140568526198791892658826313586009821803059936514975095160560464471697232738046707403708115538888059885570458294116309989784658062902707470434656520570226164899125482954187546882716843584864433523520189512592800165693170785905044537914979637413884327088206953984656404341036638724466444706081364151540693413122969650767628862784057449614873925969207336822160326795804906725921155730330830104533475822442104405746683502034017308885049455745749885744704275352312884887065560886838655376065008252801988226832013741092431238199737060592917372653436602603066495802595536091318045484791876460742058726938413367949403038631849823239047487627514607254196785406470820149090372294188438908895885413186797032374724509807678058193424690379807709789522282047722763106578034337872712335155910278123813549186132934134751890432698796305686994502405774746298675756865702730042369598125656234268790277261481769368809862200715769529411563237950485830356745525770538360439525831578648415492453551834426239756161489355341909279155151288793583229847036230872010549731081770942644899706077234216012334917457578972262937220341142957241581186020059151650579811613216168767735213730230236279828803545304045848671909487052189442882808953193522393645258501237261152716412573182642878047977925983143116180446155722713891448136798614102668965469158390461138439666782213496913652892180307546461051320944692147952914324851845872114412496965704607084368383280024079196241076590762462664733904694595024289714957932520145574162669110894240095323520435299313012255945227156135599013903859913190238184367025524183769766286195514556966243552520031311999325373870709720723701443765581414542940191556145854859127103165018301578592367227940093148453574110347412262380872823022746288685786641691279710581656631178123350808077327307600083108398319448115814762047680280346244063171657140637917387114459748614672887487317505578571340448422316807245549148288855925612519783562091946800428299065233819924306802943680013757513942068070739637631452170368152287842201218941704021133121978506604691482232349070427850233228742891591314589769485284986528513673643969743242532936836088443946275779681035204802100359836303152726022766370434719813608099966186618555419588798667407060024724033910773863528911282042744692057217712027118180042966431312553654542892525025855734143331664794572202833194735622892290586413624373913718542087876452005948348180388803660307910902281902923426467519884476099015783556373190173868952700000339271854330828402624310677995462806917687093211440518395463870621067591292359081062606765808224223726102363818722016766578289358197772252338369080598951807411563645238146491310815597467868807457026879007839327289944793294162845538008947684446920550997595971526417771662099899793802056464193765933207474280920720119032551784154289427295882791320989073956469128103030613420918076571464773490531117061020063279512980671472181799368045943910037729906537358969136361838764787424314077650777583143700684109374527062133914195855847409420702538611606131129419960179985635210509832611873445668336544561044772815616520918270228041114127291317366683885833033842921699950967978237318996485098090612825473018458956676153530567923412418157169084502784268383075093096602490702077725837996782435423248600990452382143635187981997346748923507703825934138842168787508213924218771334866425349856364860005601876682250660034753490983287667117971992274884927329044223002182177080317488719848007606930632756712472122093971012022266906823234412308263652805304315293686513400096557929138302600397023400355299777886200014676935004872336472409402924053799341980874184401754950703873777219209742979050233614414158918031841363747389750823844745418840175242171328788524667825448009623161663359585382591349502701296211476466893490506530870743232835310537914769504520170540741866803322709784577407305471200608797565968597107929644363700520604794041868724860620465645410806993085435631154333547923515512242893512178991267436374336013820614456321944219137378196865948533453486773899503607808975704205324432555525141682943613538314761829756483425743375253380624856251959870673252351236168904003019163791667581003399828916942385736765233601339290893010760125962991571062574156111528674179105867418005117545181358333941682643614694675735408416823496403811760474841311313827878870104089685212156831011033786805771459094271684484963799897162684756521913271578204545040158838770404781361001604985774387643995068304046956767823025968361166528471640057752191780387855558518752761696717387578431898229333444051335268972682516706079862464501701499229341378802014731212352144820755611030366983168820956620366320958109595930068056587037111750456538718119579874334757946128032033843878337515962639766803995480140324961893444529708071339386255341107236124337961716802567879046186067962943628075881981634924472288521615276229575103990790785174823472637565055011091532231048794838963384049882676851773733794301524025228551887323401682587357716922349230150679242341704907607438024506228792522060252335304013868501495352576313806566404734905044717470368049272217893472742326398904652154540680280850280486330542987486702009074682620359158984444764112096773830864285806884092591583154396403284465573343451139837379971020318875634655656045758491128569062217424710156862157476870357959799169786218425292678097762072207541524428226759710319167833135526664883405860934169430187882664784477453212472469959851613167558723233922874463468144632133005745787695911935580082422527943984434685700764276442557478083162758898942935854618195138773602684360976226054686987662386597274447360495302810289249592601262026221717128520922462553775215924354753486141779900399923563779630659419968689556138011671385902542249676328463155678006434663426939897577762113215401258805738684735025246873973947433449087814252959191423126306969802131514197299901438926238412616438814504314446572101371272443367838304167536794726390172664426625340892451524920528240505843500298852270358328445045095626152995049105600185730950651225965681866457899306210189781854108006722910622817983001295569085634475541699239427054313225199237371997457345440915564536548302187095765268653263473353492358358680022344508289518754879699961488640176891415328679359608278717007271219691974494824190368329117973808978736018907669320981287906907435158062443054878227290136408101491355792729518575209131060852800897471528081044648092954204831595457633403509066302981525257096413642233754801883105995269870691997355211899160589491490684262086174496623702270896249164683904859905452013148214411054807655561122571170648092010001085166619491152456031191014297101146639533364345483020001891796637136777155350362812677780835222931843929352852559514663382729962201521886031412854619608016656169508179615008917598832852658856310885876327790779831248502912187380083940776794137414252275992559959140389258783950242239412193420278919451757316100250870637183594382021603501016851238433796347414303132706809532925838741708008003548837171226557179476651330528147543023324801276055505722900762949114429583345764567908919987767083526989436817503149950641893101100631796307170170279768815059316432683492253736353106187740988393455162502665271090109315928457267066402633758937476997415490644122713583485031723232886511526362515890523935506301688136997013231016494244875380820888800411619079500262538645160174001255246150171008742891749728429243427605760421319046590529886124552468516057553894732993858878681604914032188138426713020321880146994018245347929254820905299744363844384290933067592712958585717370797581110821600235670929085777668526276882910385332115785649181210151070611785193165441743341678736054164634227207074154130317720986599782791096990428147969010613709702100298874161425923938374000764562080453619971370351389078069214002077910026734702280362169543292218860521432400075124258369281346290711012172784392192330062803062656632746950158947753690250435804491268242545991386571038208292716888096443729264116330417277092160389145261628266073416506256357116444410989412019462245877622405064917417937047485775072535908957531191179512095657720347542535560294519366504817344060577468013890304904909992890536495820988432399592864873295996437866154538796649940553612030896736772942570830519918979237937626942320594606120483887668260024847665241370618174973737898634858359386763268411279808722570862748151001573482157345588164193840539169517774248111458324175542997367997213352955344916591959026942139024594331526197489635333171116353233000807484106447928756374237600880547260250021165051155414262423946689854899101800811896160267213791037754409683135755227080715472759666745248088901113996201160550449543905857456151919385328152757826830058684948916093365470564847827773739828781909051423837667853994014004645744695855989455859315222756441751545325329329834754531173814366667907700543061475185415024490249409323042374091196653738727625769886887307861309253107845993106887387829175735228500334962539244074264157549290425879535093570394080119024779517062053203810327473680852734280175022372078019298452438773194683017647838523735299166085109536283769230673264118657052586083613650868849101472539661194588281856809771451198853413743529818861069202315864702096138120283465212117050988424228911762453392001674135295843481933169631724301239416002982328813049185405655365410599436131624012061112750434377222507053528535539642544336531821639019902733680814005841712406695920693571763460362057821017113117057639682260323976340629139447213739452771419823719307494309200186691441948584076569339953654332455550193619263977944216452863869262216191088287697894385684603823670064210471434303771683900478235283708141603189527941348951138975878828035163663965942279035185875185789568190400918581358167137432393673173851863775295234229149778614230923391548304072155226193636430015964527504242330925136331764584164293319066586183452052030269694787952865773873030222168449126604469159092334550124997635006103212330141903101382851083223606362928780376193525381599287342965708690135113514962195371061058660900632441665376188069985415475797764506876815885472054940538076339478236929381190014351502663530173676415319013255066113409471372547906020709825461843976650347455755344654650491089780797883334667579322835003191855312051614650100036388775165002997358814941458264561026138049861111045543474903256799640238459682591782630970386941228551841288544244915927310490330487321262728351594553355443789702394306421743312018133126067755044907340859082840052020945780986080322103685477087914337921621956409657547650417260216868143691545592672159526517443609671005936412630780854905217634570602517575732764968118107213748930509192342119266361216700091169279253819304523639028489435655714707777691062437379798222507291777925076846257265385745804620668764883462706168945648321977492094276845771435934486460329219419370262041226076820959412295584042989093338633115790318477407158509065711748212003043999087223405409328104541230477378958853545367580232973889562477611782714523937395430850921050671118909790162621751794367211825835549390789486376702911961057360777458761255791406188388245054205185672612102746132974449482727921342602112435804176570037815603411432152136867276060563143236566766859655592677517270549306003594400670882769290387135182910384310285553646782373409546492918718569547974635456880469292168193994966651592060554229761135029034515104053885225774436988816897417896211109790226916874837365918339199686353792971558375424793522069852953294546721333456756750036270014203916427422660381753890517268458659713246403477320665954707065929359087600267422295020756147244946863697389870819597410567258269280643011010304171406073111623619629194811024002039060655583558743052193614123151629262076885924221012585945535384881546716758191250731856891595324588153729669460544028200959303246667654781857127499343962776226021879392393570433489618989076459206148803936681971655754365487453990759870249784147617944013870401832979583745101967551371620962469799545850034431622743398437177151305289026615105266877216263226732415430741281180232497749654333576878216637892333340723235973677980954230108687149666045502317190588543585240948952415681000620022146354378502646255206523936532847773169429025207547710988934627429737969390431367069041471189200575751680640875209905485517831030356192700047739580575785618514123756732850917542094631616930827599008877309793373972762715755712598405955114599107313368506280077310849079675303775641635926108319446529735690515119189336121785673607070090001146761409885602137356102862814159907530669413704496575000204169025040932879713112328669806520241363950031143264092837010104673714063057127879571032118628769834581553020100059549787266600388351152030982634753239108598693088846137024988158340402679539541521779282400062305397855980738330043933379613355813703820206119332257972274951941337349610256173091389496688756650635386439739151587655363604207818421086762518162081578985951414401147224262988966373864580441640198593295653844965607977045492136651896857120267572837776622059958641649269981211545147304945920753413134582732019105303393441961359711306243018094391693806114131745157394635587261176957587471419477597899903594783875889880830191847947594047733140264226384880293762186453114436256252104678725303227913228246742122133333124087338237813802583766774358403828886955106804784679954048078048463797061725559616381937359550246591245099830206266264018815888330906127017072026857683404987620548103901317456371447442335569245273802157485620370447536366728377010792953266150979533321246172162420912165721021128022370619775816514698649276923084941918551516417476362408045626906527299620521451580764157681165161167779995395996933469159039050295820556761635833286044926057284891602165219363045323194938514400767736952619163954449363098347034902568648422631804964980715039824111711919329841479017722895674281557061052863011209505291073366098440892173536903070120083721600792246789435720453710635748853344435491437263175951381790037001186116887949273174663025094907119199193678438329394541057413993945506679817653531162806740654843541963209979659544905178282040759428912149025155512519094456379712253255958551626956246090972158784767598496202166555828504223127821487910133931367079255990814954381053332863035283422510604612796777398663565992847646654094540034489890086383409944995716010729339356343793902724657197897169485682826269553982039938241411837492044179519781082768279282183144867764939266938228408092003182147865757285838069183121418751950579657201719181974316163278901111473582052689845646395058529229626615361547074298317452249337750030896680570885492077232295444606815806573717619440309435859394418677397257847960886161096177886235783514786018529786952989516065300470151433389433113622066850903690198975550453504305792789487708046304086712840798737292693428122625660508987714734478917998196770854847450637322903040766690221513816827436135342331986561377289022265963491391389347641655975448896385987601563554087441663059876196753115517640665008004802391472992406734439807423488475668988630330471526766358987072367905315259812195648237479827105989890440962526338762423161178255490806093854712951905172458285118986473151501950207178096389738657818941969789896222733676091846016097292269354021110384388381904697855465059417432780922764298445917539297206814161769011747106167859347697144336314616594445030133003891984789729693169175689061256052875723089968507426163199126633910606196574564811936524399959834932164738889717783679459767457318185749466693301527811588986066121556835824400343093627152088570935420001368228102408026649685665520149559168264989402109422632258994269558395401899457309818977624908687578132175712874383684434540450469279927739800015287709424982601709611299178057482875852257406007888182828795322034826639679898252213535428731049670226469393541698574531581101507408713486740377544543568468129094182016046088757872312788882477420414417830470178605061269934369942762467879609606389764494316310605927851010218372079949707987722246262094087305533601962564266315225774482529410351650006975469138198193970009193711926972488821895667357777731795097241348597573496295897582779310525320278785334317953065507865406298552401343215473698769278978712555195420899781136167019731977411367809269129631512973991460274868706397894218299257257050552235838251290240753627079996501312719596359935144401311060970943452252089566046440043949078600543601078545119457335588951630964696348724939279953931368255507675895353064308988794159928111654333552515786850370651781809004525753495412542521447815819072036042459300740309362562774475285115198873218741325790726107121628314870122025414442287060164562663623689993054599853052362132735739953676407969970128224341525138343428598535254387205136172700285284788053848952049999333008325290543279661277955119305598750012723169492789115746343952569879134080896647488383122855712583878827938771243907674231660942490158588255120974637274094165922643213348280233533929523300383122334253396746234939179835119152559609285818404154574233478064692624494074260934606442851729906554504697290017115803027317486056701765295605903750495530386034859934649052512148757224233712725309490546672760568498847890084922764644011593550481541349603258379474885500821403432413769901727950261909435653216090151853028856749330539275213373597428712669581418533365328689030813991533614352962250555034620985891050411576503737314542898815438316305740616895320283325520147339099709304905679165039745975664247321164462255266120902301687203822918457473179211231784993068313843967197020877179789872841892523121261218938865021593636800736044215984032603157580873194549389068756266226230727944594940911716753197914439801834725890472548601781389874543030140775785915301745577718943843483148284524160348987899639991707174256411988639728158151034697166882773583642439249149429225256220932241099576035254181678117959436056835452909481039549187513379067403196836947652155859016512657755265368831151751418351889046267683817793107170826067872256884613363621649213015018691136072320427034897883981392000265821882251798872454537653921190575193319009482490363294086219609438998476964895282877654595318566275432972191557129889722755842733733300821634497702943997753488047627000827414190940866789258372828703433792013799688183850075353463583592681200712192117293908970098152970557224829068915849997756459958503522602406739578336053916323652590615592398347032128627410337333049542612508532647305086063846886235334243073137383663650173368544995421116409624186704383186092256662143956143135989447158059093942360038382348842941560735495754643171215743819844065928559955073350647301250740806484162996010815334431935555608351038052858271976746061359843997029801872184236674494077446330244208023578007834829248944764569451309484546858618575387291404333030224092185262173646500444684124140516447296986539633979047226648454992180634396935090434164047061757373889275652705622460948497211124719353962934957905637992248419955564422806305204486121940078829165305742950442660866065733636922149472206319370950671357698220268885758950908893281142292711903719686642605439720493668560864287353038297909961022490037647488270568940607984927942883649990110222260386645150817027067047866161574748297079517114111399409537939908121132805745418663724833293001657519084826148429488015944233587998171664204701892147474998957771373530232936570506039576333896929728225260315964328983442864326876740361377927798211499462996634691235005889644758431366304144626183571579702746559040444138790490498381315162527573926939132542119870046368131013365690679842230303586937079824738992953264462297066699011076143818406340713457652296123546334038968911487070583672075739731917566831329657014989122455801569197304130494277759753777983065697929802319950447560078726871292530054225522635268222271414897610488410241460865975736159604085776033680321507367117381485505725727419136693750897642332091543477420732004579181944036536771392558833251518129437282216071699175607614413441804345333478109279703937289183587685668317464271926708995535822899358303625685535529746059244049469435092715020573120446719931575100387769194677962350088123102966991339520461909151699997016466551894281463199084009714355680185205498049196173840892124872993846954866343024227488665360338255299527093682817301570961495445513673563521432179942919026412628566548562898654540827995387971360613488619354229952012925335831148791955835138566362907944557511146407941591301885433264682514068428103308189002950216441822923521735630299535847162711954375660094251542717691959064310619594114386588601905783076940684095970092890903184414686091364029935330031015999651469435049045751863507185350605296473181591078446695122781397082510442677025217797070621992497974992415993583422578183975713650989632463874640357066656571821610487204579381101941539522325464991306132206302047835273634782616573805097111728799820569844110333513475844720134656130385334037725934101568265278152642402345847129638507270941863365737637766153630145495061049185611119540503404519747209622507992290077332180231817306867657376768783904770204744822320450567531990124280836821211841663735419097459024557653728705917127524963528667667042490959103742001106860287086012113091165135509659789447833459051337921758873979416390835849030053125648190786877923886380994663042795290482384891830262136361108918324635242582999971750553174114154444387569700936212008436911393295282750824272017634171503963196056785107761167771067185138743344292996972747913883399999613186016952238984808826304107140244152014291838425497069376023331324536908281591024272866070903990583280147301897473593096343496502743434123401701852900518390874108947457851842301919419464875035905227202811537492342795420747949562078295855690569181111706087341549541828435983091089642833460637588515240423779527534227624074921225799443804467228978816023901644651803861181946841343009041111947419367591742720113252781794057879314024916163118811917914543832000954075283519258566927413428585693525536334216603397181812793212252006378411187078305478777699517863854920040719455817297850239809684978735703886283698944177504690036134772646626524594974241061144159055657088472024682491153422757574530752022619855769535527441955006516627982015879733647559864934178441561015995516168413270069591483718538264245035095612463236629759496541632960406172924993446311015385557692955503020612315925745973099699154838957350239408617802045807471937599708270263754233475768479271769770129353918534226543980429958062426920561316722355832411196386046350007053145252370044844585031803038557592995966371203144616766948707809986103491858647213685443265028980726728702854225072883857976999140241679859247576897873771801976129110624802631628631674487186225092605271598903312225694803913845885093756571905726419481508756459496512976571661463317564089815786962555522264386946302222679108331126523512514000513856116963779891408677838114476996643981233208130885593112171815402403456647765789972407631590304507533811949295748954493677778606795308866608258252100110174121973121181278565195666245765126955616227539782376592860323910253314056169602417736514452979620423658628296972651100880056276179230610110952939716295748129679338099885928677176832110496918894777915755671042783773593187067023486680958662131207297310538590695797143203724644210868685711875188485394316767321343293020638707923488430492309731011477497332184318057010438226351789413747414366915743652139544379690360248155127444479114482001654533428908575254642406952589387547910619069285450610641139793456102287232477297088239210729844881455080218401382754938119470057580676305564108021099472824985519118764935984531219731081260685117510594887000642361213514892413597056809028898653549383043354404557800952362699913962974110624436715151418579046159856909227645229823047241985609889681995011407294647288524606164720755720858389163914101186152184894727559635924655972480222961512253863768127100098785836498259993484423425902413478736364797290894800021387423212007396374904484186872679380973857146382837969434209409366943600265070415031216371900068754380043090965250618188286939178428958590632512963510705080551458284510286204036480252939894648378366549751319076571349945921806103519517193234483764118463461853159812079119025656154672193563105227654037249988039854398360165789199524511117968474793905467239710698929230173868897078244850952393932658103797322470584872254912715128885601743654327482986450485860250382383609374038863221929836871268062848208184503213867955034360558154149209063221756568260863518452925486571437931111374661242392577518298964142834889973664977269032814082431905894458174223517812773449065371739512081270699706186732909375391325306465879338968568795452040638651213386512257721742654415924903525073898236702900954261805373537552321342796186484117398350010077016239713306312032171333294152862106831436672632347048179353322770362910482230944551272476043978133103529861551766032388542758225397569534772537768026913978641141724726745475786974322762926737738828371043826088034213034158770775280534358371389053557934220879293392940454787337709688492470495552855786286427970076965028763779318307554493253286058612540837761120406331877538893939604887042158004872607640094788025725322522763997390337987107086631376856837924529975604662099031278077006003609904969672110638896310939180892775842126355427915444688020925830421813344590996786099355798848269376728359268560112832141557398748261928135009808364007860614097573605202474230463094963939265070777745671166398532891002110990773896771971459903341344812818809661479390202598681547215759448805291747142298816077455690146955599424361149274312008481316467817650576517967880382314807092247089646541701307661732218073725678508351297992054155385833518573361918754102642240304818378638624772616222962174599378450880057644778200998776709868700587744499697541856302358145483681637682932942876682259590588145610858846204805616509887380711541671825841220276123091124132382609674585659805706613881637030830650181318628343103147413172492642699511209918793078915921689511803927622911647800095132073896707910427449803934562900116117889955215820265986418614074699681558800184677097523755669210391241442214378515064510553349762411939797694520473768325023205090176515041610404001780735700505354145122935428018318099206918443681533939975861330095472843678897972243071597561350401500344809539372422425433327508059039140486620983910563242943191274504558186350490901966589186370171797900507228694334042422659032399247418812434226992509400659253932439779017694188476989937684236751483205520612960318985136805396668877940142107679222513089120202240268965194918009160998548627892399809353563637761308610458813696737390987483810093307565682922635425428907835346487826421291525322984377879628480818952146376766262779525656426015185703826685357522768803374989781157507663057919981752541059306524795959053573497151425334894056565534254619847064980438615186315008785099574825095509075241594097215948450620082450392373057666728320423280769647409072043016178558509665886936667181947753040874546703377748105532240784442553287017416070432789772277683147420777984750002860402694770900417901316914614116052950615872127465588625104960824571231870367131410743544842206492392884543645398549396521696478317478905285872929096313260195322234622069966427475488738615117204924135360059632629832164530690634644222088478200871142161837027159228374918011559082936317778399493311774235044336088232673963075485863652007000663010596473545602690384436699618397714741421517213728001088357769929601072492944401596707318928804978088170051979968119695410454179120247669832895548034247445122213466133440425811040880370506366268687627344705901371078965187777150870855306014821700337757581180637718733782065325261379490785532249836352442919239592229461938035766859261277000842322936583464842638160792449426028231475594471234141549525060742609530642305619575898325309002317239086490726735240315596982327262569552149459959163802169696801461094693961617359103144733260761601242043935898614567647516440398488294221874620882147721527448781187193060120555166243019057010736905965225814341720317221694561024701716522008549133133245124791839037974933496001399053828355798324459226661565438930558477544261270846901827379504701403491509864814930699779132371405959378957665178788465641809939839433438825018047547137210932520405507624473990284002844625889461771570146893222602352618047637585653651783317278273641330646963423105819357172435026467193587445880361601057871004225652888708010698422214761758666776386769633726206749049158931677206822227035986182733905842244478336659858790454049370625400572862958775695413339963054876297788767018509286274210443115504877730545644637843975770332960501633936152068186148191631641019292254314218966714446427485798951545458727963674173707566751116508675436332771774312559969820901851864562642254100431575489926862617781534382967454240223609310991308674123395777397481054365594924047825662598528398870001138543096351642837258414431260709093072983262467367539641179460549941058585749357077307269583562064498499663641764742588059334349038072355556244738844801586287761447544539903374923959031253640834527833725201803063005051753396798025329780808772857893511465151458213239013598551109171004473869672580166412193497774686022630047450220519128140837576206687330924473792502195314597051091888630045572464636704176174272759590209777497261956986379422618329302691537503133731812686408351457196421901818734674913886253267216724578471539902611278850131938029725293291253665050362625315905800632887166338562571694136796854045744004937377747511624344546412895781943293596277471512714984326682654021825455585673249903024759337145504585621608509104744410109038211481838109563851963540125831770056729386505451850989333054177019139244493451835839546504418079181153199682949294924185283868024778266753905594359259654882575509164565954849642854118100430672548480696058586839017360104266739960421327145204369931896201827065569149850957919973620341779130544603638662541764853821546466315496846679998649111469109497845155609946141349393259866485186225985998882804882102495530378791158510098266758042426404033279461399311302460994937629378712376927841124777212471046673904794735404390412400877266830753898544889032138747883834140694283922191966105162257631699082037205887358427857534484107786342224409820159273496273616693908784033080205495533664343292803282340298196953245918653242457460439891913178701689582231992086720011928120020563023277148087861715114522184187347079032881139276722380733696614712533592651806686262379344174546330120501898121622631045188075457622649718081226927403896279325948979256190539115816766802967886835243634008358415056351379403637049682870981161334264348189201466625430489096632840958321446990648936984175807807242526980020874247176508064579761734156367038797531322073911650381069978291020932979292356688440582682659423266339834383976099194912018455230929940144438597012562378374283611647314381732220192441994028257592340097985991670144767915594270483101294039156675086246122188498626437177324360592899362785512408646403902168363018793073452850831783799875743920556074970140421533526392749710232220312538171565989929174851332901008276792761975664471862567381300586884467167629571599001749570024320920827653507455385423639710897034614276954607391636834106267706797919219674105399193683943120979712580688611711482019997459634690855327153324792952650489618247603378926176863348667681524443137235426849419146596380958706816225733008909680754273108336981238405443302986496229750442431385254292081784917902172830402660388144743883978523468821514537296517174094415377820536256919878978259226609197610985933806502789682684968205831908741613197934192839911364426343580826353716009549376875732431154453731940445552096224972241885141061589139482422244089818865668750490993737862775274079129500653150443066551529768201859667962523228869611032933257564749368487842246179137544106459660602066972353736177941950315524906275024064585297603470140294520021739271326494183137085118001545446260850688279203696118974385688882961988360860133296450788309874712018850014485936027464005236129421242790262056233734503325108505532042794075939270339932856056381118704489414569453546330486994221136443036273296667842188576837117742143926620395450119269491736041316702388170480156918099488702450238264583069732848331973691948321066752062591095144886994367999626220538297634210976109499773199961781459064301007228863196522382621457011390008267361806698099987567574908557352071054176514419054379183583291884105420290817596626846906459693470605643660976616502153963713113153188983938281801507432474615520314525774426529347126694894988638842955519283565921489466743177978920121499173918536891298438441053195318789026944687378683419626860481891200642623094973335890131899864939401867505300743953076751671917052049389003452357045710214131865928271389666704754917379710238908918470017123508211791921493866723931507835296033084181815213157220790721887385626166241647933969645399854615830268519118190736163781387024683194430622256121509332511675307742793476283353339974242367210052027483490379576787605947279643624559269449345309692712949905809891030943217525629066557729542129941224415257815044816357656823643429899104238915635517754824617948213218757014459021612613229707234517812544331534608312251287538179326570418640422093464644201850232445343139077701851644898815944863379287716689116541395055848615702485961882273687928592314876372361352209769750257832647824194128722194081591462987566823602052987922477696596673695760313981799888213989788035066648500658788755641400287966863237224142162246351543574296046341556262990343311378962431264144682383403096860425280792266995905182479185967957997936185787704414356988643597036316969582084169476083515492150056368588981060724008000168991049968008291614487850725084988420555131005752769158040148928580683221739901585840940821488287910703190976893028613848144038232376812236334244701785441676511599836748300638656399580432037030636449501657187311030107570485031556626625970725787400647639092871050497300119060414372633304998032536102820127294049378164507006727919327805423243878796150341697281685458443368103096800083103257494546331093025337586165282359138007670669778116973035601118474500147599037495785870321364712607314466006437666965061704560936125985648261617288602484041083217708683442504962583851595582144617402852867323835600078234461260612573048726788884829052967737001332204216164684636309513045799233022029502571631300950443375159098534758239931651258040957264183688360244174912767862647387063811724270141402515054698277328054674344564765829734639107374504599446445174486292101881149645183468467914526699258910245363507680197385210371333574460909039572003273038367926256022579063884829338058315807800985356515699426890607717621509925025105227436922345910498607382994107868174753488947421957394476551555189317747864398933810990997148970507972135740310590356712429360182723137287092994754960200877340925585440575038958450380218179985846016049976984209368306056948693935471922773800639131855366743403593209877972659428139469301234958880524550465900317493998438448413488617642427612756473147179306489021402632479498190000224173723487321649119609045671257467318787605916437076790364021949968730103714466071350304711550374745564928852051971863606795887318563071795592108164953433760649792093059239518870063959017170599126607590429483605906702388433495857746434169371197968953644394064934383753083502186526403149658425414472909133505320762397602606344021884735033043768334790574115320923920178834117922897677273740681482294258639110736128064405855265621199093773260541966341919459456377033086103866779936026833208793992930215282109278464856173447439808091866920092697767317238709452762091328818036466308819284999975635614746771030929124738801507815804381756045556884533178391383351715278318408709221791740981318869664136602877243245847080945043368649559739181126025012975100354883469629297625606854744152044918458030406301814937415327550298529734280078454222831635028047758183657713221816576490966459496296839661486123465786886018632768656704654942783289474889634425785675034496344435838702886291647767840872740144218662351615140624109901440281638859388978234886126425004912068263217486417418482050913700905950325762211838491387857412486467772641329071575823117384384545220305208970714626023780537131142416269287540040979599907556432945380859392831397595957931714150790727118685802230435122079552233902891555615268019048816520959022811516372128011362961202358847037174743776635785752317567127430498937147451191458304165059676469268832939171549655123742343118912434195355552902275416812073436297223771815695357096836016438934817100393820118414501820616023206771264796361773048489263037148089666365270690005998188276232030763751829761549320564546029356030690927839582448213714550729358882102458103268652157119390772402141280232568688974029253543056090943956816846675896466124748212746431489737427299166522203937183686739707957281722358003254986949985264566806857675587295251800906454568143318395534420281637776650194165003349576822496033244717321588082095859466285627727598411847064998360218243334253580055158782363282657830230179951063485477679414362867671797763548595614211288063934123483193560297440928377210146793569298072708401396176194454709370710294729813688939780680508735468869983334276099384033154718510543988671527196752854167271805450703852880560960712968019638182051659836665999842150042682465875768436744046131389560040022646130871416451868767595563283276911907400617444697546848588236456140373557673095745362756920691897821233242877020858049170154329564793487285274418397759855650984753975292626554718492461347623371337180322979706084310010163264406005341179775307098416137977194931824908059181379630432910575555229330033857015515009472776712890033501839103295974500294109788972448071754868108259317168996774438839342252898430393957777805633965155074500296130996013139013534808692805950224759464387636356516930620987392023221656237641792574288783070863411277643601371129887981206940953079455535596959043810230847996279293397095859050875720767822452948093094839916425912852192623351221254617374808079398159145026585977040531790342871644785284403844061093039439437086521172828919320973764136696089475989195968601823755133516605351492618391857707195364240304894481491747492401825265884951932186895710470135340363632734672473829004001876843218788465317092881341504633466314595080901019278970309425196857080688232530082206309875112087660009772123110017184303399367474797783207452823443363649192666946099350024110846892328495593525790687944279340286526618052836228040796073271690605117301279894599001192237070012835011069191542210159715838105562373055722150908868050737615548092958637820547558037574123778977738415195703706271676352236899301253636034530133318349951330066623227270437506350348577217082629675155169462434230875134525694321004881611385029172050512911809440917865513062844259376182981937994330800636265511733171467042381663211959386917116794593836037763671112333496487211195937401802202354880681644921096104610139891358415668460148561924116200774095873635721201993656574693158589165114617603998987529891816295827947288565074122792805044743450872248055282741072867668870021473069983549645694365427255935521364642488818575702770286729800207458056237123493957454786827208476950145081803545221018771395029111461954871486839201038569359712476337171567715680268097088598183208151493802132949093219741230187181934241111899457034397376948901171209699567123152563151673528240511434995064695295323998494694224993330780100362929294791935639650049144153920857346401232736348578687306592846331035363122484054239981998673178825547345628897759202839402046743259737284779571678135979751163113582079406368234098396493511201720485685288882014557701630723522248269754531936615972117708129373307783185293280196195494742945891816034861574023070819349456104114395230710563091052947302132607398569090942899863051893597187339118999104487621994333492198564722528872040537621700051650882063476679594953206696782588469368661698928489185733038982948394744201350167873041935561621203708605246193510693300590748646047018043241568432782819310975885221226363452750240475435535404946785229455661306582279614562241395258643701455229520514231776297328961990287064562427251446237713519540349819414788820229657151352670993723715693760933830460209078003898010132962756611004913409696923092496050132139641306162990209104628185791362085042991270635859817721303043985530300027295266144050769524068135901710112804604289911668768685425132017901174502536955197320071256512922180176256936884792319003561859098223636170005958099006281226942823505018418252413102958085081120454614495293161340852967993222434733776253781877741326973255410161845088093285020321479103719108341373450757147198733834585304423176633507174881996325737817119608251672964388663039070461802123832957247669236499449404001721201251464435926223327809175088816502192544561943847019040971209407229595905354852121490468145975364782111164286445394319635352258352802307129083411808859444035946043561958385617846031356534503264732343231803016812112215945650369004770461132733251331544729358916355798406807393780591157779674983586197334185599743142940735961524138263536520869152522984098613954624587650249344060976922612465961406560384587319445842796827352086759403698633447057901486237201155269923369095196694553867401687973412928993455394201592150267561642724750787245699402941351611376017787581015840478619915437394610166788834160322068744499478834140298012936251873967656322901695489798742071413690985060228104006333178158377079260709710987501638179870448459363693299350568916298767177843728405618056765799970309701508620284312120175732928952499987938178308860126728043150828150114772688976351882100252470659001521797728335240539994410987700310208757056488178995980917718235045547232893427801248328915479368249009867457743713541957965346622394888059908974428752309421758252170186527296210502028527316471437946432833161049431849791482177352735804047902521163643120788325118180315604306391851551757940643664598959106559068421774955685385377326534754193106956813652602230451179738599502476588191778537374564226251655727210148780254118141196066646040630752034854527077621075057651523413827699857299709305793684937462261693642350904069934577915492390123987581227900694961171972216535848623027065048769753194956327243379188522333695161838734265358165465526226865486312802100880265843302251524824422425097905795763208079779250407017601734987339353684715727550965912582216472174705420928332631431992858352723433333519852778580930033128483486074794776550325663317291252692299017831161634422406695648877882209434457713609718231281399469285412944599850688661721062821191962425395914708903921303556891751582184681417028349263260091605419724681761767758158210826577847633558169508679261334372073716901546323713047331248789075138633144755063605663802615897312866048359115531722727959081794488537885010588606930736442771852923458186011196186582801948398822915121786013521804969402125335844167885833889689361278825946153164856215389046989926706759534090338410843022312148303895067548830406643424044392951791325145517828912417382034653558560773268695690946462686122588957370195028319817952235955263568723818838884190879556211341695539686181188515979358460261705729219534039765943730277597948742201221206016197362129943876524892085411461261547223773066538793253040976091555324573583862137414585321363838896725565403003378206483521459299400529597288046951444522766101601003304175965911626528562567331422337876188060202024818234931445659039079781943732797452452013985493473058684455576643608366487349234319013043844203374969423907021616101349063420837867172462727122265777262896840183533496713305055463585907951270334970106847808311055596178109598125837882492334355076680671063572892073454576337929213785491608687628292923403937418785999729100881603692738156585438072164562423516487177279860281928114865943212851417972363891457718986404741250900490011892572111609949325946295108902934543471364976896114532817014867595571946812254340621973533155531514418498265013529262711991971761046166475905220723107015276558178899545670154001666944306320634509624533336416564464791768806982558224870473342174535953301026324571431497980371275564863152368685872573116906939972842089268021886101847109796583768089211217801928456590258786197630846246983072861821170882973326595656575578785121652954439454980368225483940086310603767378585837249913260783329227240374882576904434046292797083618603213553538539622462142477731790468046125100934312437897277186469251828815700472912084222465278899971155502351500953671608405046398561159585722605948633524903354294409763828347676953091032750168796681436583154003351421205096448789436899423335552374473365572027793820560362013357182233938815557012165191098994288254843889817785503249259632757037052256249834684691617573870724450864833181856298263355750914015534256631960892781939579899827068031767101655736720675499762432631843712172841415545106587425361884670932589490772680284583628328402161436366216194511189418320960642762999399696556154215925135633736403125520873659725591084121761909844274361015642836981622610732646537726409820359205551266869687758883492742499881854114495448251355932437427164017336049275401806821764293303943222081739821794918916024883014326506659118867703150830661943752004933129182824915185782715769915625326235633215083933360194249644532571430343087849660958511196642635056824181211377713162245519357546954538638156774397315755122291250766635205098021351273977584889722453502580186937370787627345894813813943660437202785529232460926633526560311554319799222814916621364812982920104853883080896646674673473045413009467492005233417148500169951384158890894980296936193013946242252721240927588559287228285065164733474317612163618301317085688521198483163747855563767496077473018133892874657531697102931626916491489104701196878969662040940103250491580531322172835797755854173816599759156611327080762833916273411472234923587940279002680706682768439963696768808363682789339483507006064359505300723985409965381981247244599358941572883787825372841917481923980027411538669853031217017896515651439645962854488387983984099702641379700094021842275852889652157670919811691903088089679366485788991668871086283422148970431923236575548378775593524752960672503621720032185659436639866156427145623584806679236270279660830671052698923990169773829419735375179573497969161916778263675719633734151228040312400597417659381762403354930654468461814065987067625569747656925867831615277581935857638773591587975050575774619015176280935111548145858069567246875976682729561261376099738764274018016273506215368500906612177526685008046924589966726916901136438524901360309995440445440849924472571083862992958975490577515230289980429598251725375489223282249992819190947918178257660614592992739135033934582169034950463643557813238779884141832253684243654861888857609776989743422651636654485722078839792878313296576785243103617286617068458890298375600473498238721419668544736682998210837676743994139735841846684242433537719195000678116860021730422268959593313949971137670832264736736906336222725717074981653780598883684448065157586943226986925742165552853187466719433300259142589622511215801633695791134074103499497352350392594658472035646707593158040282010154811178771292873725665620040474323537675391804550775681550479274676320726806653412334682099298032806805615787875078736118561174065199357109073824630378314412930909504886660666974842678029322396590399149649491937956745359583111983377955004379601509937351915625818866826519650063345642598483685914157610908062281090707039804141137637349521306476738457779319234565329865095986268415169922971925014278172667089785659719454487761722225826818451197633906272863908104359926860471921672396119690583696826752641523643055815063736275342102203764786520453201792259518936295201508606050771675300422553152657364116956931938153730061770474258665821358571688862673452818864697952134794408835144001756308347019638349453703145066680068392703905590688690585084265963289007262454975596950803389431016271549022452590419609581140166271081208530973463275614187764718907862668104752584102980965633075975925887897221626014782462654210939983621654846471060373464726603796714839815981026814027243757400575478019535788168784210792092191633369703400756541294287054052723707511164300555866529947303141288111424018720272967920180002963650982153376931711445395180523889219197832758914066268427795362981559161875192015050208572402429389362653642801090263072247462820652926986865647705230309520186143363643908882558508289897203251564817023553946396048292810486189817566961555815462482043415701319811162045206050333048783116511087339179857296855726123768008198635778706896300640840370863310745565527586091446640842966741893054774368981657689111819033632576053568660443274919936516028704925244429268431370019906712384001531097934362772931174143726894939116725197872469684216114094174913450886414374593409990353947316549425228156512318034417873913156938094823463286541968966202683877557145518456449576564748368597187085999760392376245712493830592782031529578216510167196219911469899299073575481164824102988100089463061277953335348797084175769332905588500687796486140437458422385917945525892532925309799188677664830009393648902054210047532623801851557669300935665057651644798469097574175806053708362061977565608786418566566158391598804889812387486433968762458173801732863346973604066480544482798534360402997371458803125342389755567777243401814819391016172200897658749360208057951244580432145179612701683188370402175243730671924630937262852012929417125590286385184547888562157917147286701459446815462443483378797429043326720687900294410642073156782641408343503338155068448337130901164082481631018914353194225994965632051980012544147547534101892277405306270150095515895746394111225451805488387542876082995898499939213695827211477857395334962852338758686445653139242938961178671503536008758434235218697492158192091636526306977917396951873978433358038212325049015269634070899017818365636393399657506229970041188401713910036687204715999966047032488932690802901845835804346646209466978182954245988292457038731313598729838728424824482749060380796563142603519535657247383016275569662088346493904774655013030163047817076514998233467072366903294036484867045581863607199257572348857249468575530432448400268129482576171629795526004989086653682524160110079840801443062759883599180688869650577196300672038884238020335128478935564746796785056789880905890305346043121757928564484749424224341155532010590192111259569528706769639798291950369191680877836491313456158948124423598931039063502778561735634729217204493133838419343775676312504340186712510666447315862291608424830060142961482121526725175149389991483628487194491437977711351077798444154579224894244152930287685915294743933917795042707682952979465361894603633647866370336652041955226206065270352089570351860164545564886983120466779538661620601375073105542412413685165310729125748567550114308024479685794123743305283182367485033410531076744379980502743501964551316222317643940558658620044410834392196145674395349795603064227081065526501345829308718565459824629809616314689499003132523548576923536606039510056075187502564750897022139368583121731619361671449750431828471811317869612379804325919774428387335086839008586905066788789061719437696904140914961605515501558839529388936512146331700616755152429674770865128277398242741183624720280451433902582842269834683553469669604614735928742878440423936364374856462266284394938009204968885769133736575583826110020607228406595654216290276178304355807327379803984654088525538282951795893482004781648669029433093908796723254644422362898739299739638056186952428618725643235688020102289937182045562679352722560576938016533835529434706001232865190439612311051271203323994296649771501039424516817515601917184758949378519908467493030544028552444844679305674977564298071639493336209275223928633945308557079361481027583108410855095835089934692071710617028907195115984015104099045816811879040874554256523549866331741455015570101481482098690224074992042833845448298581086770793658413773021810193807534084982841898257769201287890786470983825620386572837386279175239157630239259221534211821730380677934085779196988753262810419335545022499898840579760285982355568748533060003683735826269470211767118423925558366671766500672494703951591426712216576669848081003703026464155040100968115584829771371971667668947140941077388477626548011908936849409719078092024991983156874701460283659220438046712094748696909239322307528888058943508318842574868305779582670841150477923680287612725788106315380315560049403876323978723885761527906470029051187416587664839704427451755647333198434498010247671698377128982143314838286829025440273024944848304776907010541425019445385136383157749350616115638261471099290923094977016948764313894812645999332872239124766283067537080272601941545943128765612267986399797339071782220394872790198427722016401158626814471793310189525765156352521270668403589937393461912226540504866469210487235085718879700723392530024924639441922739134772019149096792721530896784708081227885370709525425390924201447753085024002968603238278973400156355684842225709346507136993028292465422923755913116750742747694830431445199343671750501870389022581617350819177868072348928021041096466074136872241416144970950278431495881532514681219692492534321141597136570909907465485710499787921190760183948400947199922981510940292195542708636106076427147027583503294247466579220366033509813639081441078048086878577982472654471132643831733938705272862473010413809507155670794724477555663345401099001533255181824088670958437840028826231943352471398563960598312747868639862390191174703687255799113650082883189499107834987948873161348436846058749904766084307191973183894282286466613960052101066449965114649028281590246919052394966080099160550319482053985035568438719363114244921313441483868048276259306245764985802196343202914834836248119467997922752571948197867787043891140623101444851798428845281761030078480857135715172040444239326337334571627155941140765721067256311058239147435408720363997422717631329566850472953347486599627751366990268779501963430921645335491485678242918986707937916129302057726181349543787895978242495188715784655053938569955728696640182332775529125377868895159205091185600491919470642928994443791926790259246986720828463958072224208134817718599318598266430554506466401258777466096974795580427088638068405002021555052336832478847516303777350157248887243642582978791153590181769355201433296409285886577199969621762554569894443014134535963808621392120916513153267263946571570963064724363766371562081331707998410423107720601708046060846977702015419536311198762246490080949663411267185696014203852517188413464882479155403506334533826025835724053184333066255759386273660811009670077794063993181741987729222131253033686422912435875746496923015647622943396925164326802241421886398452142700728836304843151551778050248821969055748140620009717352197391140039162139534219008591464749888010722241793455660106073315561547548293350806590937757532033550630130655179302926870569229692358304962442276577937723554179919052329194234854054540115613683261741556737099256680695052803676318945450147666162954287999348231781914692167467566307618445887757718307237130105263120115308644653964765430667990822312566419995497397901248025612324491597665712039330028177636443524864133781479832121803776985122791328794638765261019414482711184193080226082630258017280016077774050621541824900130448765708529979195746465051157463936378863096757925085807821444368439551000502350188855588089314171186169395316601645177739673607693620791877075781877028711403621460752773279374730668596955675385129158370923394253738581507512160817083941460343944947240245382484722002360610840138794996295498270607390084681750977743405013573181518814085844346309558874137500469487292624179591221229671584477815727972218499393776115031635411796052668254603372121652619778882960163624232993116661948303226989266408081463987887918984979025055564173639144472782848080497798877112274871986383202588689811873923550564584694733674841939745777707630094222468601745889056958581593860964279729719117168295517031251781383880016772062502810742418908473026602294447350874633359547921802957090645277061048604483907131066680618529756632068207620003346267937508403470034587268674306897181581985926551070621567103694776241987834498029348426395526588712528224549615455241739097057766936915606058007316151434253823816436962853967977396207193384078230645381577726512045019909287753395430316247733836947968617784255802717121936595019408564762049296241078668818915934749247750872907644322221774181026999582323895846651169904215561016159928445613971998775661884589520912701016466779304834314412694814961761784950541303473257190967456601229869993905317464699834713341152831688154443273064155898181882554625131795811106679049240976150291276955919489458970802437173224476799999145238177679405900751607228898354273144790139459700192703068318321424869985888231482705882972025974261788055034672518763929870784951831563098400481120850011923232601714030744854756128103982774351575295195192132847883613982716947581621453384420398788960552763166180791511680527384933421282081630813920411388700116728173864207690703845840119320426640863183635393072376035738506133341197892096052704181326880276950205303377308218191364867571884449428796166210919199591060989411496114780464621632840661772033791708888322137084010873835269089219513822719653640094513940545466149247728284995546259430450671409663808240417679534669013876689743294208064215778945454269757221028345456241085542345233757321663074023515049996630104031305049117264525696070063244742499860366364048093115966475475657341623895872408445739378657583431878872554004295399903152735355832361530602823742273382074349691392298010343421940159862333967607931210562445760585188046761639813741873110879218227288120719525323687864459468154945293672173401717176637960086072565582514670885393107015551105445333822793499235628699080916454287535622942774020993846038379186129342244023968900856767035486090187323137729607033429158328395684046618367507807404745171699527420729449136383537058147070174466300302380150475398099281675003135703882328557946512648909944277190622069539711221877881517898610693773212137581499832415448615883830139545447791115804509415013449359969017529643792416667436729554094488443859535544852738837838613493590893023414413275861443744696567084117107900563643210989754548559953420056759160466458602760781979289691660634136045147743981105326198636003721234247582297635085841894532940345751274768796443251677259847802463222456508757871943738981450357817414568891769689804937048518540969727543705525468345588684441125879336813369512351601420642992760591340355640174441375624193941441373098903254677909384399557523183162054644512896534608963848120045505372149471961404497753359854540572448143444524118551720849495079650014482173758965718220313098047275482604395501468365208056900079481386133344817720716697073488145393300702082096166801631997519677041694818907153545495813256437692880274080587517565814664531377751675894970404112412882440922734941656447002219442445588133645254250891382635503089075327359327535333379218084952587043344910199049252788808018941433303650492488897592081479864548250299827250894415670599513687690663852872415785765259205921266108663078823611121558835062666553978563492370717120251816665781292328543331208990563699396432336001854850207197173371715230225835456576412898311986692013168472991534128454452946581270202862714460780637075787171201244962971840181735193972332726791886786890765565324024117633337848503449853085011129522666931392722497072538212949641130821250926365311601278348290289940913620653307538876858136155880604971737476170899081538614562147178850900648379273796305067861268305662243593948178260810113697946773749870884401780319345601698702078898117409585751768930135799355521894808142894664599635175654382338240168199649892911944511581307540815318586014197033026705999888499889412691314899357191651773067904019302557425827161294236181367751330289959129403664286092038612320065493733762993420929282521205300217101862380506076156204835321968438064047315984589773645421367829547898842892495729405699073809816953000333061395101387702426438837077740252634519033758135493536195800812851337849997349070570699046638616127321507135043412594804383576606293126280986335059202698925529648515513234119778991114007113466505833628978679765040679129847240228682809559077231452951004002219066247074702111458286990315908036809858350006939149878339534296683715683264995886041196082035458888959418830093193659721369849700266704555518527650720837472923089695366914316223810067501425933873830091645714696007039391768007577056696740402890232016311710417859926969652998158649236347490586930977023475441077258918493559494692955732028701712753732966823183123696576508088458605214164521102942906249369560875823042092112894293205084487053016988340524895025805791310358119117159098365619709133969806952839715582949556443857795906373282400317095930196724220665758689724622410368979777519575774301960451284045121535098680218351720031369378165569249202344372073226751604230416169522705242673729987565649022617927433897627442690188757869886457232327482579584948979067318020951797229753330325371401936031076751663408487872719157749692467740999525009351475897255905425487491217957106970991832576479504997151270323951969853867732075864685579221678565540826443734622549565325279649880373803462699438567406916484334668650118903255343599796876932221701100598709472044883268124025217690224900207917581813994394701884542790907298799336918568476745950442695689636181180792084808997129544735622319986628532018617542496822184473604284252550714203763825991753616758055288401632515489770245416781385282767452864417976574657642058692069426044585349559927685745998789125223589390868418674737227246394034807602988060369666540071689140469909612245221123209169499695590392041387997528892807431953455764251772392834707484149452733072367217888100189209464050916550492754353724893310943471693096170223972882926549134234724505207180800036014653342248425035500627550304096151004927225511287906672119912113662760378415921952069906506605669457455741551650430124757260311805428051264140780434421423743600420500758830292812535291576559193390501756110959782074477083539775792550076891230291921301412712902750793957622007685739712737061593547222734586188477092922091490519751674643175423219243814346524496871880371892424345090576899654971993891190289767299120983719161703085355699022569510321751136843054820717107058690461126148461702250404401579262292723079487331706910373715472562722758580716269092939079415612150348457567903732937823708684942855737720260287977480011703136170387442639002061879350023667643608578355640807634855897092461673605639292363710172888937444910451929277127748385929677548321361454572584221432741457478195032231449513824442439136637700488990476605174747014971916375053407391075094858317605758359853301918875386839359811764063894106254799297891419100435547264494511190387174194454974792073486282226440396890289819088412184326145298615739961167724511730064835720147319702161883718135013686020290958285607652295739819173185702308166985725060835227836422480699466397751874408695264653255141420255319456454974738336787622166650803702558392591382465749974747926950133272444018875612549881409422632548522758911792298024203833087146676603108437592595807441247362477375455815153690718843516204817522612909101797306074716526137525435250232383941673663451932200216040301616589975355001768321258722812871054400146432030515958847277351485231783283841972099177430806361627901986536444125054382534977645301389971456766699282699098923202750485551012379766348478741014135267374409414804262821760552256517749761853963129889233955797786489090604091746239715060128648214556811897522381601505209449301489875036678608177175569684102101730725004016517149211348779697642463054029617181895293961701635442877653240758559917304794169208608840140762242310202185420972878138467269853231495572139566173698167531222133639334341931015380760253973267366661794345615260363238630069952507407400584333155285238476701493054639433842935565760767802604742418094780772595099589699678644699830323521512329679016081970511841795089648093349724779136393464815918828266759946643756016354842524408884731333899913162414295759829380301639032257196652426460437902447075912733134282175515469401702150621876801980626410546839448712657033107289517243132282776974857056211319210285399187278357222183735322917784880222925162129737721323436896242008723112549670528495200261927490557205991459113299755899519271066584177153388896887321929652852893118189911473831403060113756928345810751481997629719777268815581584508127058717818049821532806566827949280145165773674968651985108457274132538239881437938747523828086999769308188614047922797896847595817601615039092412022218260855901303002723904795268629161068503795101501697015426220499736043617264178147771594726291057067413953100241780927392904935528420997560480484889252856212044491174494547963328768513161910885270827162632786436401474991888673700062908302122922064685543846738545004247018277988096055316567515871399304060030710978543359632948600619844496998847440743560156802188522991958181628432073759711852543469957796718091445073655440206012015785484921151502206542561446511692227995928112699506468192463108728395858172465875928098697160206440337514909845117287794307402120721917648094520998172263072482683874882285773060163263735334808239670676465843177699338454424813172008333969829403528071839280592932942149021525888808487698134356542983758556294085490614886497344973548172827384663338316683530232910665894904054486657776436955742412192933310315162759685106403551548140388830147333648285955737315509576603881670420956037422095833891502515332335158965428998217749619792509441883861179618350343481152183007917284751152653260344659478613536667054318680196745016895630051059471270228970340259189705869480641755220717610634816022510274958325884834380961388923477075390994958197861076262153756829530356870107881312402304292774611191266518140833222314119558425628534162951404245023106786552997364564997439576685004005679946413081748545718719206846652114489057827499095158021394876631794283608751769596775011237886062114223203862456925728863362912172163383511966125519875388226344308324819985716709117741406841737742461234149756483687126482882470243775922805711797705418461118046252911219637454967895248904023733649380868250716988924314713903386634063450626227561801624234152694359966296455442001896284577172923781675290690644509997027986914652194483309323773848011357186882542423037123571123307633282464786276492498295932015451191387422064576187294703482548414788265265042028204489684210865336272251473727331626877265892056858220751821091274027043055665882814900646374452743844559865699790655701735984919969411983538002295385075929643291034960565169660424165381951354277462989797516651731363410453135525614655985550729667834232744833626203895732871997358718036522714414073757268861492846202257912588567987234157801170999207349585158241464049447308540505606144555665675832898563534347256181500822749925967667230094232735489406918299043101115387413080252348354875012341042100122698930815394578383822212684268104652475842328170178555326784367848405607013985653669075751789342816339149690817156683455194854471082002462114429274294842139343944656633253176880635445106237871078922572899752146746685197453177802504226140988643030243440003946295263448533201182376968892024947814896823450918824133682379717776522010087735678908102815297153679097708878103666779242871459184720643289584790440477570410163887973028264879600914154662809554332960831275327630867547680468287345424128873844942896562923541836550533966192364328584690301690753636766314971345246407048828859488322342330625207295527988932686069375198229137578144791721745836612588264653264129094061220338485604482896951651254446782833274797867347415437959210611252690298620554396112082056086647843450538474303079330634144235979298879771923625209808509232047113084201006349220799244498743873660669257270280039806530386491988511722504585604456205316801506307710051611648014249515188330606028083374376081142410766225403273955843997160500469966320267962216402064408155231255513284844038444576036843409580104204168325612708305708338585360075004702236072277101439990762399033185444242715540918629324667329835139629001927299608167974414334426150215571548191417851117232495583057288904963354970178531154997114995359562547799744288118609354226807847848149763246955250907964961394541407220204584262393150598331228786167344394320188522211410050478822050956583911100341270130647351659088263899527374845488544276091017743894013988605455516227050438238740178670990296850091782333486597597923038635331485209140950746921246893490543334307554175750657593803699689886534230469653715711675984478587476702535767891500331332669589903936035499490861883642833205547781914746245782832432764266075427234421246362125641792342187360817603995230895659515263577117125796511742051037613913206692837145941444096560975066578611865495575193711356303779666984516476727151470058178260303629767469162375017935061487533615844151772780921951613450878315609771036651516577899206723069588950794677104111625950850048069110863562558275018996055631172409312755504064359422472777079721312830389172057519268512725027796848614294572120831673283620999332727093375945389845304099346003217666065010525156199565346558566738853855309920567490295427827095767421619196890112293306465774283322937333164307336086636879648577192830317227408155427327193522382835688710119158986245185189388285514374048438175483906231750348768821624599759533683213867070462798227092535567897326072055804355630318408953038625558349563002763150688690239749015024277404695511002618139475985119243583597053894155822642750790379716127704847021254627464547980694069573852726243534751791660134154770980829686495885960093130058785719923907491764863555908308740742976432013737203586823631234576781895696669632452843316063349858630013243103644918119603211676862842805587989120089092143781253919246239367900066719737285692802688153796166675942408109763861652898833243783147010741917308305787560717056626806209575202781707354108936239634568268500377514254911028271204001913396327148971174664220322162152498848212438003157894988800473700633405498365194382001658872944845904565927328440277597210372300852090627226677768601775400073342055929334243743553124897678735960591859153222979928115748982460384282212392949789427377701676587807473312447146767552305045579890109005909675260064108006341534651554570413963291756854342120232817688132496211701746782553930365184382612351567523145950711402734938524677189768923288615435466372903920190994026582195388290806170129024686924160074187832230654984581092693333251349071045380977127045566477816763322256301834331261130087276602240201780709444153185453734649213240437760525584993185280794608592716587025289619983158756916659234461891587575618687877382295842775730176098374954444488399968287264931218314837324309120936900710822133924193033511399964917174423924117547964843734094435233943434607735926592515891044383525995934739791846553264709668194249796007115460893088229896761837772744718951534204837890086413663710763767661152136298465209700727938801804602812030470226365930072053176482326356769226975018803916809985722288060533975887633437222861029111904707197395539311432172669959726455703920296518600140852890946276222463007556748677750455085419257632086929451917078072782017458860235816900241044967227803769588394865684021830818394147494790432290200676415273982536620605135904245935867362402293427192528437996005363914423313732959174067691809435948293099282040109344963047673418790245877043122150212011275521741664524043395373707227010026577289724942513060767002410583700796786348185155747402053206191803798862805050496720109003459489823218674483642311534801925548307302253318834090980819053968662382861370044691404760073941168109345246971094340644007384321604744071638464334609860218276273363453186142293260663523910369341808335019077163046453133897506630499228457959207054436891946949100124634151801675793513020592892857075051015130861708887337375650606546394018660721343139453509903126340395427588119163533464865061856309566065983308136890450596566124802125137475221285717175340902362076400572586910909782270277525736306351414112287727154653362174534666970806913925635905192357865859022383457754453706837181174570021100849689443251955685916680835178923825373911618376771120171108884262849452065826343234241966278325428511446593194979848996330616832042807934605156451543108364468068107105604323929441744327460792002051187906461872851468228407628409805335113599626283440418931196077490680728204141775456215479546033803790690796325057371057666900205364202622122304984738710529923002552110035645240446779601536149009709088411843638569126397718849452234709972140176152052862889927753406674685670248647788113106053134563122574708402520822651342080121734276432019217267073011589812973176089075951580155971063448472759708931862698328804523437099677964025455066722242681793660373358778682582752940867847843476074144538322263604640319808883212610379264525080258007986097869658303848811723703720373613479069255259976178739981311900182949503582022313171781848551581379895628936114376152744665350367086220228787509400015569412396410568190739707436068137512389398187738282387618638525530095048793485937635740981368541263967604034094288389110980491972008848634543485466277093813342063967115383640734871714919918188555120468977106330589131833163527835051170486350117100124521891786520118870399614813598410670074657842899357270850344355761273578042174549171035945094269110067391860925748015728397870874029411796024548490572882219655859127414298378298221748614805445551926021948082307646807289887738534355575766325211362743443547997517432958249204422821445079018330012363582229974863470091061542876400391246361493971749161246706308029286781686388654994467359607621956681740568320054608759104254303423081030298402532310578809732156942733025484332537347908411909102128910280952069560182800453557349005226851072179917584013413590140818668825371614328467838327248686478368040497411873024220254254855492465528571598762489382095784915259018563287315535830511270878121763784869940004521188384818932749112495618256994188518015737123283716130524581946644576194118424092728132613149917879609474932395959437589433616055215793429946098261191430698842619177209410433235491798331313367953289021951419491183085689808122644058162091685307414525221470902495458199998936415699618996306281079648516602001575626467828905952454121664756594623395485031180343490021458511178874888016237442114039817139282118153494538447994418744845398597018319059283590869760877111740716837072579182396993557731152828923487585235235529350483238647147840544961970180302592202963834154032585318406667372934615438130519876090990834725890824711445433165681078788218855415029480487654704016900936168395874366585109861127985869046458137453764870099944713765937874337220348089766944854313154688419882267356424672361468460526496247683658957119930825754671816405167300230234705822559135877914414404476548240458747292428564789739141660119549555347019552408796163415744174608926534758244999818861826605671582520933785736349506485857128156640767079235848556943476435551669756853721625550418200118562711488727391636145565982223347418592797734001657207204207862502740043387879740342139062881516217050775296382305434807145286250581189207381320622431422788719435330595455316700952153096206331886451758261237990099453630470805896544713662359779100611241157892188025460261305171541212962980458373288986499390590129906516076977286018073766715904107491492836769697621845657993992313045194045980683531209626236730256227612801878427673655700946589198163148760673514055154279213466659198310783821822605971584231255011371672286984851854507977732187408769782579973338076514643087636770088227855419774808342074690011012668002620998605846519713050348352839865016241624159184009980673662610212939490394449635467812119051147996664198832039154124977632552870212259519865629784386561338593347148102596632349405671306033801105744797401657277405665919145305389773463971283256253836555599887384997314058101490712961442253522240374376442266000315947627715146672470636424692588321073466288500932944462305040794193931902844256869177051754914266505185367882372135776390669146648937125464849212966749490034116311099705989279325542449267245784376540192157560858762672166130486718798701675345224430551179052777984464306502820061510389713455327383800224813864826432639680302619817289691728853021882871273303879907584089362924700770686079819751408884343191916842639277504729802174617673206575832473546637861894943222050887142156038817016074051856749942939530257577458706695754374763843560120139240131876025322919649960986873335579558330837360674706089794447817350905774363298929757219441525375831825826979092460750071583351624505352914663658943811919410523735242918935267400352621795779606581861239326671134514719618715278123500944201810242818838560908907174413788941562447755184226212192571060836998409526325496200835311288186333432957431319894314786232684530046725728016764926009560802240099537785353334138053265598927584656865255689905511471455876974654533357895879269394494078523898392246010660904757230122854989714784664738913463229731371636090745671494340804665866064600964503693124826701054301396852633924155288221483092090369760779524136831150572063273337351410872972329585957838331915471803618519452970236991565097725445585299884775788139009620600804309081340909068736201381065608302498226144300656044196515117030397866747955983346024091574854104371040199895210870259292742667790549060746407918835114270014970024871693173207055185272645449872553300745054191518416928387513042813391138311080714589688617968571849754155084162174774520781192001652153306195169697155855060003861556958242287486767295741334224280593910574355866254663665361129840484191658094705307825147558315725920268051128248148137838532119268633321823178106067128244392117772187787392711394499751246091100852058659789446324104134478144445508751533667446815511582000212527830489756641664480434130149732362480814238025824799722367260215962001230779199647710118915804761597104970609409478813714683318426091017972592443363105570425822133384024309778002798970115596445698167667090758287054443233704277952506234893471219282238898124239533717406492635016392837370456018512423451252631390984485824276573973062086799648322814221364490565083619918555402578292262529643078022367017747787634271268774768223513587729685035190020276772069967196689118334495048501543540735314068457610288179812620510720648915877461600551721065015863301302352561178653770318500264569881601281200299372372940564717305328912068920026299796637835930543337969856831635476476656219971032398037538008112261193404957048626976845605906366109348442443217386864251242741278362346769735744592484412174958823144885387390209438273242734716696543294330569621397463849901998541124777229136859929108499732170202449745976218378299919565376235196959256080481822827482502888352995894608345199410506786391729063790212050476946287748892322704692888311390160650402959342619250364297872869495479341060641586213788126584609322231603523729748797854841279979340206872035769722021578096568268606140902543280886969178580088245072449069034244980233576780399187072167774597659211833294083327975270570391201113097112989583506578684535683540855577740538446170885821065707805802774066541490091276999405392454306217940487762567104745701659611859108562021360739091175591974887320476025133675365025051231734114804347722159769634172000221342874961188569937807520635081740722963808677553058689964794674640766703655536287192991881242711487338636230064069671669047519209095673852825224010586952038838218107059337531133158569105999099173008041416263608068993316027584376024014856835007225884068702104798911807444348966547703446558609603151648972401784232770175001914752680642555426265348813173758035152674494646758128292025408476236861526675648047667916175015393947184328507137033574150289429476467595305305257224267488978933412505285819984078635047283060418829712339841020889814923804052948904701638197828319034247287058619060255448961116981295655270549546941560303721592341774516759722368090949297837001373967037472787304663645110270690432591652167307457388269323975590237675197305644699186152716378138398459755169546605155507545814625203052833969766651095474662549279508991357372233928210890506974862005391466072520324080694696203790539171054445660708933347030200445123721606998578946019762285407335257726576602403463417495615960942004368269854451594916255130165722790010759705173530543550458315331970991417787779143321272238367205418054718171597040854418907057875667029639822864906384415944827525943359245399767614562978736274540766983111836886004490071096501860667797774928178006583275972099192000665604274042142239757489977727455370753979694996618727137622368234412892969348468474621502340777689705082507894603695442407753748709645190797292735907801796254119961377066155994481754858742966811488791391526261503471642903774311577165570913318562137715942082627606988817511409730134418693712409131768293285944961839301060486753241080461369751765632609174106940052813819466963793486783002648266971945625392201624777920659131110184567770125581305793578696470613866594583851290225801176091563212007989785160661424212401037379075182135349973564340127593238618796239981342808931517630758598383193969811096033488168708925912130197679743074896822386066910424350069527803143148454299098548904495387803336490628182634673625563789080908193165912134016463609899946629066974914268039461260699679235280307278803400184356058682615930079823934885656996658825494237308423109980770750030172887950523924960844260242677261056872482044352667588836869266777805838358805960677142739848181968145675478588618863693706183829086473866224368518332961408813230359389597274733673932882896727656619708315460008026240170092503572767778887770081609717224266135547995523284646358777325760194541209973577760137868798313946547459881265962096235555302065612265809791715863787813005375035318287952087501584190466078409942853660879334706933387358178942431396018360961818209851208232189626094685466984464938502266434500492302418243040141189582439619097608598622276515945212389828441652646399903658397898150692515686102326469394840417859589491222589099482697913144593916831351325937644127769162507663784907105780444154422420898847656468752077174454776389635260278128055886019251782829305928973695269140916602921410550554540824358894645401568289605889538911168503566212213763275658831135911607818580250992351816870249731401386898126667300394009963147509401237655945284847760542465072083354441774596671563247316859043580775968639718250435255166670938374951610102156882737145433461674895994633157992569164783477288667949605357726838909808040030159496035034507573705492882963851048440820777884200728554342793034767740373744029391374880908771227629971127095794345397192614137220072372670171113729301373377449971277698699293014352051067166442679942300082827194148205491879348086944633681995108909429693634266016108175064921204863454198997471730401500313988360376175048062587338977908511145693443890497799198593083762816100608642781139564895978052333241397607025392186420856078905879793027323047537868254935755867148884157908696972923013163223780989628495049344249965354248710364137065038077110250046140210623134708959485066794534440153786856476206870557810226796370873993938515430205517466965662884944669136101675076894279171845551044798209035733057488802198458329573473124026200275883805134206099911976678133085423578907949720812024255521838234858035350384634129739679538673645813522958599397133325689907997185523392587058257385897807023338630256750587182322676699540258812329026450353961706743596837318119315460130888816128040618402873322651960153822856830126772501859385387743066897816570588485159332437826141481685385716773924300826264554334255153655447855794210249461577397019635655940833417111038259562059522212483007427199023809212457237460414050703081034415575444838931196307486750752968360699057726607461972489240465245692823478407414840317360998610734679306998017654934912073215954381876442123476533950654158412496245881597656684986864000830615411312791791046408046328071848528602878998642243355473131532262374190019414338761917376587051658195816664739385453904970370610004137269697234272852452690199773608962256821807695988392612617801536668443135728097888802409092639913888039349131215120413518553843594437157320504482474630008339299866292635119958431924878459375643173811137615961077091965901271390266482344359863426764862594720188800075629149557405730635471350414004704373054384194652840239282372598142650812063866272005609209367225075357558216404620137859780246211256014924738529524338843388711891946277326344012226655973191106601499803461891813753320133389730797075575104374178338113463061267825312346662170401535476899026146731508699117414899804395811271962960689586683638526302529700634680085688254366491984522237704940320427242378083281983858351258989633365940328942313759717649964759365156668419612292266575016759292280033246035797266256800349554542173271034389657292143494396519838448646262097173469687925494729067102195179990874690368249201701557125766496314630772244091352213923167643560713083426105543151197236933162083303139595035306378183182574856635902707747271275744876220035201621581060820096752039053469970968800089013713444133290320065403603503604637833774201889421504068207999535180094965699045623705098347938145022335934365955328615971296786454947182269845701812022072138513080926346496350323525625089414186385632346199258646272041681912623516414838789117536948815553582180008399784346502664833886574165704783240879081509444892444838875727398823314761045673092097963839625915895568002009613699872319844154464510322203231584445671879748584048521919544957120089850597139222583208536924154464352838638315126772943400700528149265326348010050640640106963462117288117039886074570622071242294203193691606850821047788041555351592771460963898462304059512780442211910794972451514144961315093516957757740881834556884198024042968651458671434939672585962521195815608330256979289381500472493040106219009285868433239548812549811403307280183137818364455572394752181054246828573235075612477415153093906968801208897423646179361370372751933111099987457396013530998974448676327461201213547406353929280177316738882307703012427653421893898168800609605320327271615300827423420564822796745792568883357779074877155291335522044342280726943457684626205599704953459157980231798808762343013347263297435502258390180203501429441848751655482595307335401036706320232550161651153030313435394647708137799171762397918198160448544957993660738178108138689029127023535955202376067305675499822324407333842569933319125319740844369470492822799212237769017728319792181646581182858905275921772731168594447649580698897035512852128432575397440003303553138620407767081938328383039591335180213944324263721764163823949432804368325323664911076091291881574015154575973745373839278145466055926459657523521357924132023667579493812744762889504293484381561144573475959438033334937771874624158710251501589916849716004811159404154324049892085181626068607669511491766021938528380699252966557672617671583641378590381845766991970643653631445826725127594150712990136031805660605221247455771938157521680906499759007188523157509000608227422220583361179062821831330051096206983054717525446440046993409306081241199262772270395446293404603925118885544548830866735295663962151769083251856777890313558304109727732048669162676957701591413352690396569631030278624121152553441194985687580190299499459945239278027546794643969705206056284788311512041046210988674012399970623093471474222156304306626598123094453743142314345764359945882675962888448423094392118831046304437296240252798889001183319457796344799209087713035538676189560979134917019479171363220482227019673942610569862854844390993876826634391448804795612551674722056800083642207731567258885543269674575560915496216667891826803917190509008591607798637284485097664255130491402673004400327539174534358870497487416090704300505519401641955558392224728516277431857442945570609330610026812633984561287407994198788802345495618417700915525429342414789077166931343554385196914900172659335471536951441438743827145849302006721100328277639280756764055697369488954154521663518581730572744323945542730211938846878773309588953878829855481506929164194763189028047210453871111360128350579391623646114167585044015959155540063005433345539917317473774437267150322732732820325173259713786708773195651617612092601898930702786071578559744034356202707868860493711988434749811973793554296586801744671479460326092421112561011794259651793890839261061188988831143286646754713735474518896094463896535141812324353428530748934426618140773608977578561128624967323274899630727301623945288249172579856275494860791522207870872204850250980054481954858203752333085700961854213147672094331202156916614903864310265169876636122279475025574613776952464432653852150939661959777312216336128506934295415252166710533032690917165612658663269540746220307102092132941475412612078958181242320820407481124042416389545856415887951698790998491498931461076387000612090580184125395750039573664598781195422225325187738422291360174827238460417543122009746389213636004198651892626679708922957555291921927622429132648776881629659333799353234466449781769619592716076396298214518349356666167841092835730388991435733947610615928518678869930052656221412926935921378402487858609088410283573757276544285014909878799046991709132296819771074431912070825964760751899744969078445049662959590260979616725645271636282504264767196033121754239986827044368537609559370856813202370413296083841164721251863464515075641904178407923743650034232836902823469424265912945581700741735087385443448671933060613635604284100770141223183027361100158738116564380621832906855815959777261364355027884008143699799905064182355047841012616824217666747619958761621873259459967435299507213456581045099616153983372023664704631750219914363842723769426804838406128625099017723249947965239367275626794147217173028917977133723641625460023837777734729535439178730194012312706031744814955466665072420438449313131939852007067411230236678796493298526826223542427910724490979792604197160096751961838255878763621774962373246518234952514479234078817799370210724083767417186083405081048647365183691765387029119321166844944805449012749990470222625618661901542988387838345244430570883008412418037301160013180804318503011070325778080452698165960200317850289001875550436629558396479178906046859203172507161288626107994864383129611951525969166499103268221610158238001361484214072321331389988446099101789768986225997820861988511180257902834059380357812433029435787776438241435905324831085202731297092447809954402063073358700235986365741067085717266272467273398069881550958810821462259474793968084120542537967895126005920818993969204280520852654798771843646604197646670838313728420910610650641187505926287572274321486157743928751638448573057161351929098874022490630726535792163558340401391100897236327301915769131448089765704768792750589503458540325505278313310835140394079086400255981306338455165026051798408200091191260377769533040499208447308271857827991865789137792450911786621497445009249973378771911746204249195875236110040854127297340638475826495832708449813308135502517481488041975196126737663761435287617487410325934771649149150165273385118455395171217483212808997446746646987829098616543355278202359283689731347945108759614519647672032259781935727545980211975651732670156751424631955252149657869622917373777285276278781088662628650566066303333251780411088620302759321064699194707017643111349132579643324075911714846675150639079854782523234720392333548925130519983519842639370948757646077414983057210759618100233581445359156677865333162318274476872852872371856753271741495733387877603949494799012679125867740407060227764895223318097469927729767373316911442798494993867809557480879115112680908186313243500142364053670637465566227127641261009618661673606934381324979317327251567721100920177778525549841497498509816201957313040574412771947370472337644302215293462059931430462731149770671698356763757346340375714922297507656395599980384320648367153238970740401601904008097286199669022198360515660411132604096516822319750584901085959746025305390736294131131567587210098153052026592954617792838174968053104735880769131983178482663285992519751889584170080095817663882926895951858348651717918021372453617753444238989162815154210858189690144175758854208235797249343226569298380992482821211120511353979703221150695718039075172647508069663165439114930683455484634838807651104413205331526898922918980963052646074644710759609223673281789681612272966158816214395735865165775475875853646739473003066619695895126716800835083121271613557306676984535930832413311664432418404037393003112658592535570272678872950767021598942948233480045868735755573275423538842505220870690788993276796003360113188368850158923981429004911819427412285056029156382637958012046000814653425375707822695400311516322238918608911435806420957629302280527513100188711872293614561075365399960433244965942414787167287706852105152936564790238854650412682731440582411631520901649781844905229239480200292122534543335611290265914846566480336950820998290678608942248384474379261007764085890930942620079142091252875387444215834893858878001455574288835225145580661590827310209003477330491095708506623489771053928751160211133840487485436422311235983094526323617959816508794473243963311768711000572194088468247674236061884240780463816573976455857206874606729979931484797047412027725242004359415677585666414046259163597074050119686264611930776115099538461122130714738084436542757150241320700705537462970430416110834659904493167262076409466786801347840128600705220740755587344203081720039367997946049998413608455572945923074287522806850127384975633857565781703841952107219064045293217040723281638039163064817806927914291855412895339114326376906541979228742235717440495576478095207299601374785763311635156816149715697452352000584826659907826884991237411264977034485768854381992588555830986954123215983236082587265784483902089324839896150752095360341091393290030595942838496376110247345054322775228625370723546276890133865192710272593611921441699098460836344637138444034756103213330491958096887469905589316246044828616087466399966585082464573630232364200401316131589741717863663192941304226827371007891108489645098880437661892726512407068651836792646985110181256783448959555395006444215130491463509042999582106839675208753032078287765051850428830709328732745299688262347025953782121043533353467910209426467062884766395473120017466522921805710173434390258230766432845953684354115096421633683495222807307198165771957138313232752856489495231321162768958016600249388761899489151886410283588964468634183549362418408412540113831004522542192249840433769124350318633201443714899999087161957179823703065376989246783065030627057172747478636861551877772672786784760887617317558954463845268550442147287030273475143978534954695532942517063918583549770577311083350620594505792070447189967130836471417988888741633897435566956786746816245272096377558566553243731427397208915950800201716220778128216752514828855106778988212729571547125578813693666293926558336558939518468838719748135974293767268154555391662603739178160380194178054808338413880077664956175435347328445801668899417979753958180440840516640512763334528107461768964300654701787704680312896367137181301938988621450580337489007086856897057511627861975377500274131725907899028132011160157367600311573830379908721723808773754054498291126273221164747410452792883851192872437203755190388815227579277637857689996472370399500925554469879601760982515568653698198188907644353761963142208185556719067082521878499130714559643191786926527891141687297180270737675130713814006766709870680163077965997285542033681135356433669455141734334933710610462918147536708556631181698744902553782834072030863294758147536137377172515678777006687438709875819308725438768916848935885658345986624552520199894912020204140196599048850397299620762844349377793144748284179619092407340746083659314397633237568982104610978295524731839434285023671383303778074015197495231175365177339758308897240259446557190697349132928376294516673542998797468848357019873804602343461778895460743272292043098564950478445169869813215532772317684894022783384202427176183828456383324841877378169820860783967084426104473224987798413513465049535596188355092576457186251809025946655700008795806153128664421113541543674103538831672760981005304601735399148975630608743286829757213717363732994993379832365085517834006095342777022412146240388400815820469486184562430518116716444022102387797011112494565239748583409806322070263529417662993611293718860258742076237982834714230470134627091933618359231345593920068077054814434353819242080355155287658520311856707314188723150479453318316894711444292014976997522332391653232985459525234872199180939802900407453177145058074481130512844881431641058727360312718826063886130199708883566708397860314235622585191520447778400303399754031049865118155588945314558200235958479549730030550290396748800846623090780041854985598928459825536253609376990990661524791684432376759227197694098634793400498008413808861408189214716795715666963444022158755066351799774841280495908387092622715666856120776724899636105804334537289158230934895363863525968161679842758348796051620953372817347324150367525122548214422223552136773004426090831824348561389933747776320943222928162624893176708783909547430277910168441629987989197439283374534784816240652634403822729731002083142440487500221145831984491889632026077540426948569704866751820242958476088884376679664298456918709774760656531042737996702485693040912978960674733338335169867951947312345568811319239624424408687009928332176013640806659209881476310556980759191766151479681191982223898082434335525412834085555694135562449035973014885036446891806394528088824178052805873765097162560401095622831390080796401835785207511130017572353993763962854859396609543065898269108079517045039873465837827656520055880916908659306837710161774726141680269562380925610293709251237443024214578341730048812225502658527843354681827069727699900802034239692052238101748163971673123552412668819944885670816548442862757785616943187124309769842195834274589365472950079569441761613527920521921391037812797929233790488839650880272988173431072818415556132754105335975063762139259066802309382380011432821680505137803341029433771215847479477505724168488025001438010172652908972743725538060900598474344165027601877084631555105809626593303368152039360512260688422141014233609251210543948490891770001535301873926663975001917815739484203108740036111828261271711248601037673441449272269213864009529554437168642928003915927634265722086861310029262103342317375048628597617155479414872982053069385339994255916760891428355831540437313665185896847553718962908772567511915296150654167387808165189955423138233385203020461647175718933635923104273681731544817315999241823060537019850550642447805220795492702462532519142636304283005380415359357064389957843961172305455270008063996599460973083655503267444418037824834390923353935611399781019497731009689032238792745961245447429206906929011991957335235606106849914269889756867054265252593487538222565823029010081925892782895321129507334428514902867947850436312751390562370963841034830952097751804553032759857555833700643220634668122054962526281722133595532910054274745672548736012133351612319436354598384781830271681923201883921710781840586058492254538422175866153205256851833740650992151057941778684455030341840068578794020053859917383580266950244926201922077976522678153614459554447685297969976672338451824828681626461518324533171790666103882763819068282710817438302985606340414397067860163352224178047175802723952450269228194687691974174967656028991146399588333221569960435169704575929373540381015421604508793938533969760531670830901586054215608366684980415218890974076848747770835676607444528772365742190609522766212011312401381612094736119949672103150874038963818196823668869682854149787584182713233107070988155687738828442339962505306802948351546694003873993637134443073245369597932979158877244188682620742271933728264183900597591557271561208517696280353752201543514029111563081884581026201892170678153425919336517407589408902786646222826051897096293569897638264953964310468371680767968225657703219148802511354184903444954771763307137036190055715875021429725717817014395092397014387598286560539687687885744651505544303532222664724173834272916579017973657580212589486027040926193530241409612558323590679314392379500225803227355627882609712835346633922636709370738543292766804853653999245072718714238742536221772632547909878348026252413152395845570035187303761733673750892391429918921085166271880159891792992677214277604874746246629136299558573034077890058750681613214287907866913837814895007180339167699670082735416675434649423653375003938485617144402725726828528447690741122187615588606332342869438786522941360243161219207943698264599026458575383311764503848503300713839212047304056185374683265930721416944776133191553565275001376157569644275855224608778894604814564574628267294577144635058876712398708306029500719025801042410803737543229690220165339717601408300660341206939509610387856664804133090263297496989358606798125299731382487685699909346339943321161601164965869335373224931627778148286051426736738096437885516589259270651052767147975379498189449015437499152030971951989721949029956904066037840626868165630867511536011634657860915235365487625745165714064998150914273773374947490772791143283129628717389073168093211272575626296360697221058173410684598486337269058295610000636734720875330882553772015799326182509900901404762291283752818928284162533166534552091005583479340596689095735250765115741802610777739756127527042750838534667366630138801850566526790142982390734037826468110372278314199758606152492259941133949220917568062817794040148333908379011586233445546619870779868101661307081947054639195038880278236827196803919155557967111594244210282454527412466266432786281780007811001846453655128460143433459973683241401208902272698955880556140676604276304111379831167449423611524737021842186541245479089649737232307986749307489883172114972217444064595595776135314822003529064714674310198797237947531229944112897566012054392406961110740847931183021913492033380804832492112160751118301494058684167757377385318526095650700917121752764471262659641015632875197522502449680466091992216709492565516806206482053083626389762931061074529705957237221305168786044654392482953103951644174374579557956138796596920463034782215672044484522543151391500281046980126259581246977893518973152463343790312716961060547828742390811028561569902968754042603972685823804877879412068567216717887605385210552430390560373929599994729118500778696728060304487878215483695697986321898917740763570005987302908732181047938831488220399284703694666443328030903339804541349579719565448857301589749651887317294607684552696573543598623026271482540258028244184389413987737042907487085400242679072914853956981689943823946202112850598487912650864128421329482643286621691856654515329100119723564529836675923936162173884019224890440374489676784237391374908420717084222864308234710708409542033056953276993385693658818945985932966594058991605375773909798295172926511888105535946910337886042744807761842317916022435741759623561075626343433304567034233012063080527794803528265775684447287632680913519479178035191473787474762371699631217302555078214187798127691949378395757918167935000244317610897341289119026338244520508872837482540512047360328726797365837651367098447118390432971584077716547688884507440548331231538370935342506029858272441536904732053314693201741040700967547947357612714563242487360289506715595330166582821274338056924406970436661611659871380794064221366635419408773659357230859065332385492118474889098779345630168671029642848951861915330623411864108292448792150382649829860060598082147955211819739266379277234536236557792284076887809785045393703049380453948812252218536158659226953837559893910528733610644781805011216652636639353441275345870010791131684846616072889436419157711141068146852466127150524605676558698992342297271070100596143996559769652815880486453197180866363287045859831312170914748164537826300244008238652997232950783832086340341611686298298182556637152627877696052628982770441973041931344926487262612271972175530064665922812814215950580570367083661985960376367349500996053641959614556089166258139977651293060044089297177147149424313903114045288338139509248103329413339799047669685794450781242159529379883102066386340172165005314494812107433137081453331344086476302543900639158156651181751631454510588310421449272866348484566934010039230971491215823769328593083485303692456080760496369880870073356919777172505005341284940129652113612843594199263290719285176596874704884785513831800507841592880348440122093390455234560260646039546027895507829689406931781634866135113405594724132975598012106633815126599276383035136389448339009800102371852361909457319779952852278502338376944383677497743388821002549069813972628008574488359311587991551248702384465668688833731489728516239638939355054359306870269150860823196224144891013904311322751683361761534325867937907544005998532728973888918156681572580603742073357448477384251211784632412573279676822236608617816672259319749434246329447394022250874864045675697989432854389988836005951247689165217997065421553156508993008891219540409704180966127301032090871211788402045415192483697005362958687549278661133336694176345938806413822390076723167205904018987568810353584353579652011763347028452693535055157550769598193567666430645392931182022575492864864164757875296847175156117050107019005695976598380809477733097809350089675922967094142318761721236008814733221134780287145167238805366235973110659599447612465435028405933727644228189994780807867014669978424661820667592497196019778842037296064318299300576705048981747359248260313871673944177639549939850470826196059919034106230648279956570207961305814539335722379258360612202294387783236306265704229386456443357690373893117386031625827636288600570946338493063559523563669041002065135383945293985871040777570299622991473231505491824825690850315902665183254318051400863865627154046370074940524824453184728986612143969016992367775280051518532722972577160078903764625247468499242100879900225548040854370840719807493905456969550458347399902863148465702004020468100795639410230559454359757671215372281945315794905130768411299354094620651563346593278625484225836097787393169191720958802942695272841620987258781830324569395638192290966384598669173290555861495069575123080470219141140152956592801147074172563941379801216536563724344305067652807830041749895719273914487226952629458066104490756593561012570210272924186344379785777585480820355115919920309660559546869842137659849581663580674460459472627628355699731428315273910572475657370929955536055710538161238530169060890023345615317850079873819040563906864576283128041890553422907541422505789579282812980052109181978737730378122138162931036310767548622889858945970364276934212771744848381733531369283334475233024769146486201539735268663170793935108698424140911530032807591377944082655864131248554486971634764831223059233080304750140401308932256563983839662347505010140958174309104323729340633629260433100995779046353683452011398397185145827230597943148191775407649534655604337536514914646639828078615669484367386792536208272095079548299115241998546756813724934663647130163925538862853453038914628585106529256976045826677106656775955979725191640055029536644487867471411704428376588103966071817324050184925003171893320629041700640433759490502864371749376690987609780039872453586956138917639470895975332206050525683785877806400066519268324244694952626479348076936623543547911854261775801589279579493296040220012834378739785958881230652439998150024992241065303528829573084719044198429777226505533463417250624811089620808709292423503079060519653411075451148798087216764834213538518348034839324685235243753553480293309454394950436723724513293785940725058427576200295682875440376287905437276467415656052090702734822086901102778879154415779522380982359733387994875882055704404382356882461173788347831237580667047217603090181040232031141854885247291727224482730066925634428160874443466770471595181028199449609037724257841975296088738936585620330317483322498325451274489922541097942272094683742843069141162155367156660477112960830630252139808422611233050992342522022256777574209548676388102554866667167657998074271141466633207336683311163568350990861448386293498654609489042717533022010475683573584339023252863832219155674954151464825785951887601049812223511760679678514418330850419733713786558299461944498862458017580963230664496641907073904471778322764170328155718657658114875751410537288574561408274066513540443775033666021422501430927764050917506688295825216012844452324893953594914655337905973714645563323459122940669875192249625827113238112929975617905252699893998687647524627409075241010233820894487671059329957229077532921968244225794059713701273443765695264478948013621783022491685320549009418070716401590407585547372996145535369439065520436487545210300850337579806600164169561416680453746084021033217603556136279633182441519002058239230559434634284798619384833570126555804599489629650587457138290518194674694009402327361072063674555022906307114062119055414492814441429893803150044385409100201250648850649549845378445028346738388990434134355064854031469668871860683596438859056171248807952675782606885142880456908238477124863460908306052984872274580218505313852054949792542757292032318988216668263441028888525609950116161187853992129749890474098515947578018425224663513798130761206286242203366083807670124904686906055842109994000882944575129752558323675709762147296054029592209603382819034854034068302624111558183186953473335670406049464284139922406881511985297019893367733690718288501358213350734942650838670188330606740226961919236393748402940409014657854835406484285862381957970567216659007852398453261686925189502788837563996710725853021669910791453079090945672508268044615545075167778494648827922484666528947956738078510945619451217677737372150074467367641617066003270265159250656328539924108723172817853005692086856104922018571655986922085666692240814586918918642440227430836610617803452956732574250776790724480119807497903904863928199217716053270050071819639901437634418977405273977451163976332784923826211676811860598397463036787383974694176389867935685194930427730786926065387321022294671675899044318144037361088501167485535455038740361728313966769229856087871649512375603818276409015800016196925569467297419661107283479362927167177926359875177434414811978160228979911455544238801967642103036208338635320510349839671600322796796573884303797689489159260872837241582646926984808560461616305669940549210094295395952307360441730325876154421242156857147764084181741181135689621542295736448943229086457363101136582882858496042549113752933023557159272814689291197697740373298989193854307278482215423735971799594645497705136023946919544215254120187000781650163324820034458314264317957122794795712902573169815551628203320061675212631767311378177840571377314296130187088211135937143922854976170722026355778051484136257374432614449757021862431795939453986778506124896656484687357491382172891652515051181655559130057040883613146137609038792751139491147736725001609226021061075453380990808632656811769932103566184681044780160078796229431043600461307744653697838400710636978979319880432798842636302965153756185102302988112310750454813680469433150091808305456875776746282576990621201430039407472076351865294391526076410278386167250049178873273939604641257251761084957005572801081535787348588513961668053516219717889396519365750259038925900360602231054390340923302392629625167129673086359027415723649530490536013221028195547792265507093701704908521287712944998549025252949489022521375630952632252575879353697611848381246112219339897527627962079895969979868633128207727625718387097855886413316366040930139847037698783629406002733703760829128070764666736030979440617211867447465172691137166900542618310276284032740379762635629402962626835926392904062733909985845365782664705051033629656715274718851699918366260035531993118422002326806565738851176417226634249401638734848947985439855830412563872824481953166914685821445221129931166090144370108960900860074374243356024573344107582683135248251733714548721047417313934778842716175946344817187419850190747309357841064254424833788822781897857246644862011357786322892883870684217806315892573287255900894314995652583610336397355017682142578746063804609093239548646474644930997380690621658853104792871762140333662024191723351100745012753827512046428614529870317887920159942404616975316199229296243206042446041664235008719267971118428751357367040194488535454862401185312605734147811732882167396732691893638581091412094983211504886145741432018119012808043152076198735557696300327488526241083625912468822836357756155349542833274376615205627563624215916951879286480875290785182889709000617051376746151934169928231831783694926416627712791567139767585291248245870297524481634502338006498590965107592331067167241800074664138939721296069639860690099833621417749936065087728665058849861837272756154250088847396909769990939004799735308016153198056893327917783115865398576202333169445453750962788117266077191072996931261606176378944974114003074149454216128904193680885026206770737568743031538154625526021998551899860783704171406664575658532715355136366927740502072956014722487153848936073689687442965640196315196032450599311114118906663972601626447606812763467769980450783213134150306877502100451830824713116297827640454354621979697773996866439251281889630973652249872968776375587670368180781603912679967302690938642247743507661112850443321349523416996648394214171731879480011682518554144788637768300757955961359819501690350871104544780425573915285919543311998832697234936764953283800132618255251197743524801375382552437269411897607416604214323159807733988761071069102092632801932015405123143559579038094286399905804135099047669328853382590756763163418908244342213301186878869299780302609026298550932792938879051667558299354786253087416777052773666268231636555480410329380503948937349520807747211944155685279210214977618735273215487969213504492922571361019944238010946178574312422475152384812471898287517432629455220069364854335005138343591614942181963673905540532459842168776539199239209548997068111984861362417980997080415249241211898161979630649285222879350160480795732176119599196742187391133809572724166794780438470900563339227299700334187795837352510788335355918171287108943508488303278070747124514075568779035306547488737195718984992952390975284904992544062847212657409983841989910510397609110369233047691734555598088259262642101016986202459706681471649927399475487118815929598971924486558048497790002721300345100992209332567652460255173506433878474907134007318645994164995719853271316794343568095088988879974171698992975552347606080961384893518607779816746487772033008953585502199896706926745671933878786331535972887904554423798724697310027879857504916754481074245118083577505838729800749825373880230728104782081079821527312370056507729067308296289287723373076335103958908211180354487351593113628149101115273319519513446156675327819654157939440919958635553671154792742741887849072156130256317144561386688317759936522834519899399075268037405612538202639571372992399580715902750493499914870396494716842785627955429919789484389681371958435703093336368810397472099139874475362884982763465521791055799983550538810705646328378909762795521667236100670545975691896886129341293998508077787064195135548938428427179430277179797460249157932451738681978299043631215216741159742524225871738575816279454414245298084647548434375497993371340455068336885760482169750183399966533490866704965553306725365894747075531808003134872328707990156381388133623373422830660614583958716113476416157138736546010548042298360693581938786781766627486087197976003236021184744383217302801817285410071687840573209620137611746587283833263587678788835568751476745806732367704018292606854677900705761287386710244409567937198199811417795960379878540434984993734457620877573392146289329433379656083387824439720885662235463774171415795974132491979096793019996480935975702356714232801998106166501152897079057962864191875141034404765642688783577763013550358015168396055499572107965752367527569909023282555549366660557726482907663728425617013038522986543367556763756634870233690960288390821398702996263511808181967137863799751798788621770502493355535253811074018429051971794406373179107073546782152891945882585249609178486078973921489174941835823548331614327305474453918681688756850042152859227088815974820197272903286959307739395281996471688973240945376709515979210605619151184940790766630060938739939976955658966290111847949516294904861597923967626311637246523475189440366928640593733452370890319026937722740675209128233701928853198199244017457739061643012442601589241703185380151133623495694692936461810333900375947544349379100772647762835614087093934433666848109315312180362252994285977501673403166904569538937248047969565495574004589945862884277582546337390990987882710466575604188710030459946436807621582905860687893257659061606695367594639439891421662554635027184948535948213965110438676083832831175590750245765932822124772882952286452919276292826026356473825954426846732108481865475594037037143840906345420853867274579982110766654691392356742898712875977205308555497142225822623662549465623037244907700739219519505932717077093473036256996373732499864676071292884723498113152724636989482042110156275382224380810305328899884149327370045583200120612878669773677983392917706690901391237920959860014464971893564127629770340318508201674661806827323704393706031702107745397793716921741354047025844556893429337248398192987816038129613336602498445558590139168897026230681282619197072048052352004195271793760458598720978000477702834528734628578108417390802622736429321197311747964787108903412298611322647178478389637817757874570766830200400667188101349019772060129504461514832627569824296893504855745943584204931203299009892551287783526713450369803242792255811348315519836494352717731192516298497794357182391744953721933578343690104336662447545889268497047961495376667679562607212688430685318327750041886160496409617110620486131461905349291037925251654467129099689940865030310260236058043269694111728964243271379411553032292106487626000874208015668018813019468672846847161950520798328606646738584645045394005089418749627071784535437685974115750040572970574367884178948620140694584966032957207551754979525311594846980173050951570793451651077999148583424240222897073520370216817692509410373582449349726959518774321760560106983988573225769407804072154741715298168611186580967571626058275251201822974191593643709860262457183634283674483617631563185361288257932842810129674322383269251052492580136144804084490743250130218710174427417236912950359270735380824212080554348602530305268541647194924783148201355461043275691094618658371178809966697374227831215237610482005960388441805999816694140267854004463312843011929289634885253759224718243811406561175490873558784133125180404991691094832160216602063276215836397279086031642702860018348479251891406050438045223557899513627454477548271961159993277328207805637121705423974695420335484175143739838807283043612609393022767186691392210824252158457377195480970634314936523622912389352052272313406171722079427874689044899609082663943857736108251061899636251914198567469022717796156093088572668599194981908231703487896450518104586901887424334632996886058683617656888854690650861712174031573266259037673031789828628646673566735438282231533839203018299032461732875156872634234941464451789907536995986968227502193953087171136032656586392769677036935997595693136231148464794169593649902490035925670228139058902572337588638906387604032652404976474704672031496207393953811690534165344368767097022034691821657439875053201692648048521332828728394149130437152819347315508626807843357019790732161882375701385149011083772117072481078079739348762264572241585145798924582585050481655658847818329749414256968817856451418184669323186781241765097760446851867455569452001312850199343007653683536324711545889571536718557161089592821276454570093627137250809473930171234558807376146410506843729562254755091647833421508697457457007661043756557770097070805440737057121422596159683769932954061751869679102504300308093083746361943346807649066033885809333029876489953873915571262511686162213654004468785568965716146802928019432387060693299276941649751737949180333770714793296646793344019588208768966891950015522514428274299945782564260622579126969595787706371652295519079066934657333848764127162971846415307112581514706874691375117983196454070229133719016142384554016139364477670547555708568481822123360345507719335607976520733602343380917425904570059396194172140627341448207259490061342316957893987188179199339008315109119060929147194324800206124188959891544780739562055134318061400904336095429353372677279994279777338041089113297394833710841959416438841370856178415509941400892915393430736838451925094456464166837399883290178331445470085356146545581071020192571805244448746653957487718151327231192842963003060792055294474738486049559407003755640857270355117193144989743965844017028174045528651471195294809421512569721665866817951061868033722497055409973804719161022122942618198697377056536817602974078597886406817370190790105517053085648849141374911837342872816152807932042849518245861679542445800920479811279196688439450122218797627859527456454466921494207051943603488315183939045229985393742718635384997533042611790660456178691767539159432222370729336915827943745616535290243481453665841464497596371826784504859973949164091386652376062212357182563677999918225783767296099529246446416838637002039733074181979486114338190718602414339818002281749998551901350581561813308654454134710366932793503068125188661722968925044040176625361288474586177226953223900205617772323580382485347044826948423998299662946074226535320634817897547990056258558203163065835275851970789200445984957641810551259897565524370002247465175483434734254356658396043973681976252808086912575829326987968291023411650111582640092187886868167261930791647424093212954811971099472370958882955781930729438178019742732955489467059812329960120444036913488750676023704367486079301264243701279368367715314686767017699429292806736971069620899096546006533422098487286347590924093858192961861927239288670917042969003894723115626547013929354199255458191687715785366882281388443682297829588394334194396500722538693109223110157025834393023384278960523192236038274029028402650647435965542606991679806022479650268964949026093726319338209041339259982649514779332103798069125593469964178218539586308910295047989700672377720556661662118691896899586984620021280167956379987337013768118543612555742680356028374008016637609952070768955729960969181243312549319957427756321840528170986757910901911043919333623377516890806227537741550640476204614909224732873730525166413589912277995562685429621367193484410756792383739143778628106152807041241332489609651217665630047034234876385099537151771501891083636182866230470460964086734512427781219385486455507537944662733864397315086200811325668002227785291619771704742893095996042705032165360532648380488111672800881317087969821059818379723899461599902159499396503513999828994148370863399766693787212247257163217399443018996678725542178710045434862347595688995617994091503396749780871540708117271204156500340777463310702288749209261877103853597185753117332594464929025443586707399241075855904775935889581612104575372162314617753018616226060547709691111999433616932164578429311739194355624436911657992771412509665671770126923344099743281112206281839870614644896672925596893021836196076900521549635530274938728138384755178538043100002312010644532719418781018942385286612580231517307774447961006264098018687062504536017581420755936962256554819210695497285161843568790934506563244312780678598425669242573956668620600259157233896916095972726297626236281715880432651562679886204869141607749569162276804105813209800079414764148738844510413908127462335629829563725408165893510970906456487223005970976458981802562138049927287450014991919501978795960335424156838809310537162210438487581043248883662438065040632236723107689837123503244733840075021679208734822007689649992355080013121851677912005428797272962347893366883355493133611989932617233438758423952112095564212669939521025483473269928337626182213124397164942027999736826732910004176597373990133615409072063633594115304566965815503943731941651262229888220858163834746649362064020893899680890301389054246171475096274118477153271011421956839141402559536699226826799694152598010524118859485304861232589513871376725669436227969146163376973948134433959475979168011499061251937865902448420760390292582196566626663280099494744118008598624107980071731224428572338133941544934988071855844626473780008716006255817249977318040832459337494732362566143593071972684250023248841653050400224522357829888034365653047436414213825362979816613808067623416143350232477903743423602986024033900618276458634510681606573374528465373359692320985790900306259744171943506751003446267793562799318923461703623961940835027790350130530810089438876652356468759894845260684865339830814055659880222105419817218925284121241591311533071170319965566492894282247046794303968015482860865099524993781520551906097420267841649638933981984959455385411967066598465712489017833457315143506614340465096434692957954580859124573332633944266421658890752601475112523192228453780483930219476369769658263034291698333346321178480155305425613359533172774749991866240230332699699853183973645358487492763108104768161590366439195417023607207744553666194289176022486596553781136273956855431574116188639718981775675708198447252803590684492644726307050763278207469911214737482175530046151943654196608173102208347943788090746487021013676559341875076560141348810001102992783681540576898664509373204481994697078964653259303706840917268332258891107958065393101774357931823267943795731290361907264963255160615559438583581059365985850945230260773677514660695524140672966250927393290923440257994349166386727056195080350058478491953695744268058800682534106504204039758669271410928232369981338014200719293730882979062188197612795304575601455120339239828376955272906441722920507079544615566915681276397484073208262965532159098790232760761924457571441696333688239039687944850913454735075268926533302842533086253291108947214999776667718468673921802775339176507281130476547999967437276546774935933929050864371266448195559844093890412608045943407982830362377358381327366418623462027009485339236734643467736358905238484885122557744886272386864641425390022975215612131245983535039615432547917496620636844819145072261766426239958277682436870530174105878330384805134531832614359647543194277280824825938618998434271984504763949378243406468996805659480072930129620167720909686696316273347547205278799089704682440606824977254962848171583412790123305064039917705433719805895723509988288192971649825599805264417630593851179997068873353113620660164171255515797935943983445475440721319232486482977415788103090351413937755462846365452091012652169477879692772446796083707698109162169937734570710704072552632501163846813938891680946650978846315766857006160781560253010179307319605368562273347332821170912690601882763625685031448343574655508464006600785297442869145592299423583470564741034114538440533921355904717417458086381630825990786915575863804431984320320334106561564354702303348527631235168514265738226820882671999818994615730200081235026759668419988587838624574954131360295375324948850106326860721033548123887794365539129328729328529235611036054880080699164035711366183488730935452548322534156767491941147540493493676328273503797062884793785568487490328171986679338206603367076596119830086738076335781406028429678549908828252892913612269986198037451266991783456161184123801222612138987941940637362192516896010756549261155180894326300170814198614906825390783653853986238578927687449600159824532055225511185715873592942956356958629270090389151591792726316391172549812614926219240591891258694930246039417698882356277914783634355507005222140566851153341030691772633456035528125900120088316809536451371032836326647782410945538424275770562989502760342351368145834022540862072336463495819722498255878358515665502419588066514253992918377528187400897890122903958866869000778625718824865563945723577987559000871507402413126732512919026104187960487127150184525513177449079714726107965538611213341675787632904131066067979903781900367640229682860027476377754307095079041511186254740705623537317539485368804184316261941896022462051533137785621678565170640253977567169261835646750837973724861358370785035058519562603317643690349102729785899564827110099136267601114388427311130368503746233103687422984200498511317016751558602982040388561975433597537011017666580535969324565354369761505462325493338479514555663959702266973644157707724966841601794666386565815910469723117380518464915156858334759981619210080777475198201546638145071668292128236905227638187168594030382375220642828695780485351249297715387188697633643353317835311230869756491415809778201683724881897903778934514237853773709853405705297292945515452793761031496164225512674987644713151780835164012745734743220516619392655558224066312189024567055536321494053986842086746263937454733810946181759995015195989366205157381635570991045768098080306312777486522462768218913651661789782649522131707449156737990836139952395889188189561382145654288190840145866797727304917415235256307400514189985583614331855483388365264182924272242586239436635175494321338727531901335830589200467165941213632615750922038349895147769225911799629264052812902362217172517854082113003898502364627492308526499142125483159446723025259320050827702210309568220231942686600091784892097800040709653468669476168465715639818101559159141435967483369901748237963363507206510664476334998442379746028041141261958557532905105031360034549085306955903809259409699686000357351739408233749159379319068251902407800992497221244775870509674455523500327455830386382055123211901826512475980876498824392472373202093169751044914886483417699983906327198761055898898354210183381028667641539036899699856617805792135367646563570084925471128136510239547808013875720350637328708583703874604480285281742729563837636424493090360438956176095623596233774797899059922027150632028675988812339557204566148660472944574094424568246626524278481552182258413635965313422989616644994752978085943275389474414844199954385978426594263773302900188415574428656951110552202812261354805616984503113279552906771732866316042725417361445268995158530128727053139246495901973123276305876729697945010272733233344555821697031923819816623080812153750485624480039658924171532358677299877107922722510931790900840819846543211046944273477061858274890193451629686729501131258511065245755177723159922824305489192237287582636510948884815998191862206593466635265842029421418286400337427252900781038390588381102959343961816577859986236974211118329855959546450812470846377655158653192799219207357323361108910535249443494207963312356799798709259922131777101434641254884526541597694198918370210291187622284043744222521951380600524204031539700260444643075279013333859748314226510157119350032149995432839163989908551735338625582755376218094600891099680596173324117427941034654491265644004220040042466977099278356295409550749393131453744272511360497643811158115216436717013127117692567692030161204445316565122189632996211062778042290481764840655594969556808600416287105435764895977936681174271076289613570630248342221909128900846434062512894702735587709011660879001938617476205918690752062632347884943672147128180904529503958008205415120939799228415561117729873665091074235953580401460242285326798797154916513071491862558652435176569989803546252203559709483650588388781935140048329501712508112069873135365266772957321209894127505988120219731375787467819127681230379961460697417143556856909036913365017215459400342752974612009142880288749478721254226534356271479896593523726197854240969226331109740110604300230383854250853752657678541232962073212309338805547685704645357140081468855049667924439441294464427798645480036488894546730423804861192895949643587698251421942709969215676299171371595185822167687964942998276303956249208493714548615643945273362914637880009894777091428736285195942938658314030239829171742346678515619740363919463117965574427621026608328109370471584482997644150566707418604228692201184856789713270879940769701047078334543023057002520537000018190629595668017023419529461483779854851736842393284509073812050122387469517630957851150640847510348326012254677373371898093510057871690052861945836352890046037566845803961439724753759801425186809566744514019340987188841198163747557526447714178943880775617723304686566504301207888246555478637364015453252762940870568860435174396692155023403023110563144369396047623742072048156384587144270923465016528534227478637533275087856075314350486134083752768583927544857391848733188241164935316133399833177224375907643721974229008106141054591234669090408152458124026353969524054503165001751867952009153942865093517247887396632520120869222435347383534759799482868930629030625291485826962789999430343861185348210225779915393572042358746689097492443467764975702010086652809752284642397557091904100608789971647069983912441804443958217950110904039757056541646621638258136593353220805879515997354748923340659339529740543556719690763962145636742897725198906528674802807847704659944285917401708774149483820343592984806023496646292131213544319701863937474731844862682334110070742580579327439896075004057432162913951812925096111396250997996570296557414301082892855312985736149632790943399917630201646717182447579911610180371527626890196166678805199802258825247674689613944833729894321935516308022828510088245395584073637828009470398365700075183469578849565913304645304848745156258678623870063214347999865086984523686036602025842208966514097205982881324717513250792592290912915243349030630171079702033656295913846103502779671488681594472975374190987129778608152165881240292764560764733057155479081071671890186076919453931194614863631743763162926211968284959636470023966989302278285669094033380375744637498766128651736208765330702043923900209539076970197719954403083399536695111201070872607138803457247830117225197578241449286705506344532399524356067643608848540025563495228903661182720868457012342636521843534678956256548091462253044429086931003027614446839375597573506961554038800106761801983516328396475788751692413825806868693727531048696800512069420225693983844228975339040111503975190734990941524703153267338998575792880429079063827294448299500468036563882236000897650543124336689321652000497139347916491065201424242408152693154854348218996084436033200936047524580988579392647514070106213580225932026593586214753280660194306617864662014125821507348927781486782977856114900429804297828404954589676082709249672340897612976526300267551598929889880062474954789426780009668528320949837766401984563708389517820772061167854108828980027610122002014224822874161258288845729052746032582942763654181380310088633645869661809905470107707711540059465376479946779775596981436796188344868866865524532943214142169757330945873546811449817840279628479407951040241306158766987594908612140579998472044533112602393471966034952333757664919049771684967203364365842691630744426529085481797825522794058894762068737423264262160876967800598157344500304813327347179149931036283259264807729066606583233968665635576114602195464749944547777461653890230199253820271581447211253928222046199287231285553588574487741870049871382949843195873425891273227573817200358687066179132253346223737551616625450068851780168658572328190946966809722591541205542563994378279664174059095560578692746483728800194019683299048885732522559760590921084382724289323810491641651836958449875034866071764306223459501750774939542508905344765374310037147503615877476498985856335521634723771599250593225307757781569114190950934745769710006826628059383031293001460643457286188123989141761698549361215436107848372159475795435474864501542495517540396963258688434573552188693903013809103652094224772093355332241130364323584271612146066182993598674527160655256718698653566829896176094169694003855556913378561842431116302773369859480543396750201851825767407292647706440244227121998191120434002842132911419091259422049949668187765731425937934109143281436267724397599660181456702009422526128644406690378563486544307604220867162067363854983056946207788446168893308196941138534922085295856222087642541642251667994226863548305185066466420808152416093941983306821703165015736778514455612192586613737878257365031668302658087432218473737274172121095792369561820718589552439414075881692222219709629684696121924628313940604554160802340721664193521159024935242668904319054685904260035521284139268924875897890054645223423233651363787939994845870807866861881935336931753916404253807042691959409480057833023954031305000059215571270002664313948083119301183473967445922849505866664344322756060163442667219868852212812630642349462379613206306988092598392530406805984323443865555860382144189334735748941686556308858325715703248486066831855468721873146962523572280614632155156689964203317422744906393118356625687132316617196402563236201698969478775718153944980075755531684228745228949587082370543785473072833543777671885038210232523577177565496478654957028344188127870426627066572790826699249504962546914059010203593742849070522194861351228369148814885695365671416121284813896367291483568178852747851651280016717836970325610840869988518190700433615887586390538369561057418124220494527204354830724980571267211437022132213963618371573645527047067965033672700983990645274301020657348434620659037679453881861400323131413030068666080686165924306668974090779205329521810258116093003797202576828658587743534311235663274251080239112716554471981855020056180486837254062208414427329695102383798429243106090377489335157623379136119511331700641761481570291779937464696840062521859816301326548814004666384525699637342006136413244201373542382308824255483497055384469516644564197817329212093978092806196976188979046983715140405964079284291638693263548219496102801656774262953318707482109133305971863252944004191236811488293429348101035181475552812475551255137418869975272127432229235114551404115852625598838678068632074577966638611618406204595523421715540178112551376468585826950805957664726247913720226291155151233463058710672197315192951463721006246014168851870347469922092799589500998251571833134591603880468300199000430474541857023001237425365070398969816315309803441679693815460525999154292360099425423216121310907804544829025995583336619076446649086268365424552563337983680342328976098636495640716276899658414820257673041219153700657978851118855487487549835544773103353840362526164150863130219342362635526840519816815229028042186076555375777293887264446523780300081312167919241680195155349389426973013311847160468793254890342634019584732287719742866252674824466729260732974978602790260475021293688331269410013879488435617193872583446016030668652296334841455077513966914385304435828451955755825275968224160457574165362035039245194049669436137569155371230958740804371756835224064631002704089941213619069823334624312820734349183807938406260430909157745103790552216323015776452599527236752589440837244612276988304141090558180942654039251757572911720115845693120948320853378281594310868146958067767066574712872916444144801483708880967640087654090869117846241202579566228074091673803338793754453341056707665858884454128173587708706782747374687330645319359734824906392825263099609700533032745691017023060693306555542365690177532809683578021017465536145739664398473279162767659522902248020513603903651154868238902230692612117739107490337431924023287535491788932387814128301111629167561615235318351569947252447212654355217019992577014001818542013422369240759188936943199719196788051283358165656151749072816721918798331004859782541846734333778966205638697220614496368472724052741834884119090613742527466517055016079660723369104636120503779203149751929025729789097790932954796927180480171819079715687886072917992740887354597947070752420694904185853202385070686553448335162417835573108255758968059305518707772372668552610461498692076009906203901534005812590381521810774333891086370304873031812318730905584723259073384582358187050258415039306903866312498213472277751178188956870844533638622950957427678792536402558002115253056222924673119633131065511355950077991568998394523876374414258999302863132973902137863585184538892909986162164408701423560684202034851778764792911923313056452796473093024193886938891462923741156999776537105854901485693416790298255306495002901289523727531251515013842545217182623004632981835260825936040043882768099075424067967736611330362669985739336255087878396328927962490518223406491764220509670597628194216426745129669834193110531541935651404167541096938801624746152880230323182402574368573371026600533762737241069987637199901877437710855143349729544098475950703307502666605226987929659617010044130612791366120657498927907964943097912444016231958579132124736250518763849179894295711290258121129004421995602484523166202543820263319984543842297339916022782309621067395252252730356028320122280906615896273877338945215592464431451267770640241445976983951128141093192786349635801000813941551474754785136274424785483184034685836310478946825395239907420691314553982021773656943236219577931089772835098967518534583449347649020816031894996003695966968574849113670154600880966502223375149904743065014929157428368607178187521532627916763471119923843694995360818445145983549179875913277650507926134498713315764623955483962729801302582562667466647094568968324340580906276781705436247832613124726263969271527184027263624277698624873077585146529687578642856201263509960818135611773315892980324760552518665557851412715813693042073300652511172752111318227179843215180621793823105759268088704993725880330106905453547603575603615058270785792801884833927902156641718701602403246432512285897580651263768166836138893379368644936808996964057361004622451156868245090798072536552903792298752018154245553633274990742503285091037604087510150744096329161673073658739221105369255165131000636650743528179080268179912955956921916987566941598066686785779492972981061066149024118878210664611560831188767474556121419997886559685432725456771376773377714467296574985397689427123440161908196878559183206239615250291986204969048602805861359890680015630935575360412648007020123443760707398333099630992968484264658696779749532859869024639078137501043365969733907993224686429605650871250152807930046581504549611859519360069213742580242941915265720862332269242683498987891184266581184040670979770800714843546371504717031435135336855107505233352056503437675192247800044378968149284781554955143818153136510328703446336966588078824098876873850678654665092658904487398027260475480039014031310283574797490796341499926987908420247179003387121460667129085539287118968348830430038566724622083644012234949056815832650513045414802871000641083962822397151498210238607336291103367583508746161532993837744667854140387239554754475019928746707452857878493918435477231427464731778493734531451765986622011820258738772439791994160143688693561674269825831370447189622605232966331517687864094507696172225749842129438004455918708858208314979360700237090580725922617474829646633549363350983974466458396888430956582147626089642084380582179787545384378716889498528336720334210529294001667594009040889435066853372155057805895897310055451552402772684260240047964895732280039104092311606521060151876475000335138811006771812449059614899373097059463637889430244096492455550761220809328791701774067094966629750520992817041085798565722060204064442483009580513312364972661733174533007544382224004028715998173329591480259973920569602975916274703570913362131222415315402937102387954426446471092930884215771367309899814027570458938157709605655947868461395249489406742895855838747889414981273212253911323519720888626396362192007420128774447164319791847398459589320337554843707378417196518526287053363381676153908263565570565106652650640287163703566762360427848332731251631883591111121022362336244935957828852286298445129224062213363732174708503959446740456612104522300992677811290787158454708519500462753798248486624455451519203138000596245919994545896485741963430582940813751682259203770076157887594543849349317976899431103408661799988479044034358096682747724515062834984794858688260777143462117323610030672415602024894460450971388470080468999966827982658859911725986483169613937315023146299045984631822383031792739514061599891069062339116118505827304837388763443955673944502150549586600362352534740258151167879554887025411060944494068300442158696721397667386402241244749768909239199933698539579952648157365670054944812510730055947248002363450298020230138029551682190513550551447404056381649548310126196433619574805349421499436083462581779837682454162596493600065182851360245947922962977804167408670220996679530627447838134654816899102686282215802304671713808084269681392866966987725228640874406962211951970469253330630035714085831383598599915842939596523770956127153254351600537981271662429404126386749138152916568139386976398579527906423682151270745976531014339209532577841630923778229432112065493688588389350313364692436658080702903702873377463608820392805526674653069074709059767992495081399713971592528814610201451085790593976973849819247612713474914534291035482178494440791632612289548468239512048016324694398685678622208456128901035322658043006857216051498468657421609397934812673787670697111523684447101884043250568817379673740107966047082285209354034408536659736824658677781972632383952658706274157361695058015191254262329001582048750020568854704886422969475112504750899743382323225866409419842737423927493524970814717118489415467287699207494642787639996928195140993889943579060456645336364302514008805438298124153790873749086826508786826053081640712315528680137293822908778509991168631648482437085413984346137335879124950435926003756354340323368812543488043591538574321863719164667935780587384058775332408921388479608933017654298705338443803991787912724437078631487859697266215015016396142767483902296701104928752185035670047278570097097409705149404315959430297574004943764475665796226769141633518872598238179029123045027337310349270922523761313628049715131575353046039148723312013364632652838878751214675062902840577594556029924217378050527091374105561088389280091783040082958001230254302425297915965331044820015943856751149483714390266095305081071408036252940726838082971755448039130890290853311050879371999372494881699931203037797995505931808479657400878738916231706028160917309108474452013057914414185972177134494544939648615228019061722909983156313040781129088125853134643640264715509273595571759439257667111795588650563117361363127686896846772387884723372358474877496711289963947995370508442135723838959915221370993257902099675240381374158382287580787432739723325185884104858267608557411829648663835883468517276656947840360995161192278017165408753975217680361613564750569320182316487921223916338103151078943336111724226911927989081412448084141049910193159159722832926005460241145695609108982896087784458303839527960327426192114494725901019756643715568112236450478820974273809474884050478930504226330554523582291907683119636326940380304590690627689761257982161803048614584128260110811445919253204291795030954097709890592374722726706464310743685331948808088097570322958526834250229648580834744727955238383561107840262854927757389256372525733589444460471582534632506560285958609720653283517664316738655407703273829933689372880157091010725047932538115968289043007600025889208639601077404372443004288412157365287418853483603465303786729395653984189191053544538459887869083325585108755420873293226225005195267823368383967389278431837431006705539201868904464098970774387499886764975767512840518066216328860447192610026028071885615700607172552769692801994075889377025311316104076204587873378106880163708825997753987480107001886746146710837109417035887690710617497483104963309678393610485797537432604245864003705419457692383174217922629763770446509968627160908274006738530301669138809683040190141442804875411604540715469121957672760111705112369814282981013598110354723830972291457760913597104304912037175293857944774038166142772445373465023764079055229377563919358170815262823041146818408175694388890414853630946517734848644535373390222816636215483771456194311255155222630420649325409475112310620184759610214781038877955110818877268311176189378459993788133919488816461533443332932119248617350342256633704899447202680731011213129115531367571451760304852041715465746501795635900708056469350547428533065914642600216061068577209121312842021078134165809960347620239641171554684307212952101421392890831106692836559350177236315001448835990627331806208618117088840068545385943434102203185472924965778845316817123308043006177655442252758387997213121689867594749178554598246339125047016061030597980533623054074336927429252419537525311071208248470232701316556281378451654779832829309400016575599045478402213120111929785600294950292862435662467467877703532537643307754993695113000838452588151649548704247280470714822645040825671829833165008603365621981810444893003886399021337402272262449450910561661040763304285763583520009056117395987002026989428317922106964530394174316453489287850180834642283573204530742537431973681527051305261568911074571581776508218560312416611793094490225972573021868314711070508297581312348387729297490007025441535876320599557733119131798082877262203467091895467059661240090899598450469076285889285308257381150622994996387108203258429873919135526815915818519592587516791287337367181542589547115792952004144925322906504008649513542161952171127320943312748618637419099982507568141500677282146359774151773483911843406202616303389170982194784878302296610917626382528562307336558433744735914812136217831338597286993136673849282727771471567468681763562020623086053438753285888224664823211257711122442103358521811861788244687376653958945629781829764155217999699476846860262699711243274577000205450978232740502117107808785873714466587020134612051878781195411671568763788624698155969109302954721417690035086142736612847031444070475082135193263585490374309415223699845123844074133980976498865994898679920548510641097305687964818073873139076914324545662034750716553207514607693586132590475672160946038153451852674182435935435078743837680895491168280313079070989985311506602789973016250941071184794852030093280306355747339337924430322965184163098889467664327343676609576022004920732949765106148437659612574976858113130295224187775832904961000673955929488411427153025668934416072507860008424590735278645347631507214039461185722315691698362257532488567174440883080699568359785976338791669474236212979362550674702235927431492961752965199163232690042905550066486801902956093940149486164392150015376381613699667347162270927726896163375804832801030327649900841349210307740663174498043372142404966797149268545242036603041403898002459132743695640655784491636721923388568208757822317899136476701718036263006346196603723618644988055585766200379141960418735391216502623023361665856953447031889372164598242312963150421729914767060564879467556436803760948060303932491689925626187654115583615320434593510720155053202418815695531579150295178134337470415229132713971154690860436672878454916521383176702994652062218933893039620021388096482322067688196748264911437278407783327012527054951764790465368753916226736348853047870625571176372830069226806341982121336340006818278539818211072802070886017266238920189542919022433418801850831241818387873967175652329925450388472004491515211688773930480144791235328531674515831522526036674522010707833468209379543756243665798349616120585979728368471515368205297014004201411380458372193554374833508813524009604814001124626160659583177905712940495268381015863594791099648794970594827440516375223021042655674117571829097011955773157160281769237993949654158192768622304826077747645951988574532378343577337664085148419446367336640594666614325742656802260124623901011607211204748848593132327640060954167124859809858769546789260832458711507317669351008179681686944837402342234079137878701969621572416258458148859466483117202803607555934314396872223383262944541336019763199508057279834979260155872715183199357432081714098981205115135989186228365840175085902401968785468861749838760780145138272748226660560432661520904884805634072057416718701645291380331172248465040716171137540436867391209683927877108699793890069582996800461458375628031888149913246635176110785769284228154016384470342805763717182230976727148669666421963579853887346666426661907549931308484221588723076860982306360894995856167881769476446572377726372274773976584951250101817172445456497405126787466382048415806454074320911600908138001252141185401409666008148594061826900846829386522886235867764619307731497491533192562095060142278045506203709255317941725351695610523184669843714010642682887642502867132689802965154530649928958517506554938642551675831182425162736353378759988571902192399677464614727157033669417248989060897735580752534753953889715115856749166565462446530321284774979191887344139533494348197186409548543969481381087767447355563558843074777225455421580731952268131408357116357640813370021738412248250772944113394325300029555086222424446703734111914363275630811654065434919265920484342830294090759824159370644457954801055229501705867817544458581294795757157518400467775725007558382595207500480821540479222631037133503957343927504118645172448754063873131237490956253924837673899525059453988013811981062412079881066719397198147578597366732791894842208820524039996168133086076295390039612426707553482206372173027944152127356203138415559995544400347457019404030298812800159766023649995002757384394943530106212430384760372731483987195262323811365532700414975796872289315860272623299778104497226040146323056953372860133199440747615340900148461878399845113857760355741693582286354436715028849436326104528781994910984390546181265680225211566332967418182013251237650633353408807514822178241518124434391939278179057699728544015770486493090386565992958699517756403771702248430997195517489944338330975106550085016443184672046959240548760181114476135419709792705786623205498088781459305574169381195212020199732006059857740569221369992428465789095203383105739288918404959292198033171945785901391547066240426970609191403803384857916560664093176455767203371850640410270560887133783302793866481506290106099002522309244478162255733340404098841204929951728690112176944658082351530901932711565599919657579076271429275585790162749702953363597668506379633042859021091304349160059310475167573212782673321799183212167318182959806267481891145814774489238346903611442327804045359327936276328070735842645022259321853892130208122347067299228207672718786714894373464451915671708464396656984289796307084987081081505079624081831446028248096082569126234539990242122189399512535678953734632048398340499841389403116579545524345025978585882824548138939645996882184654523610588211813010076345525284473215442261388865624940512384028226299863829367588337060137980590963525655599680014042904837452363910811264520405796021274762795360714852686070070856616450464770546513745420982905812713392742745758402210863061735978934716503618393037401892756570319129917251884705470321543222349559865306112619103004320314748220425349127397029298947507051571642702758195063113465841558573724662777553745114854484729592483500794603887054677258625624762062037574570650095776461892841701220307813430493120428086984421556263236495137187172086135210204660034814478640306947066687171711081569610195348804846821686470369476816722591493073635112429769603028956665084368862217115787399483634931292111599739038219764618812869252069553938367832790039753042212728087399486067419495919337769036237176301183424973536365745293655283626518977780473864477680157876784827531287118617326872281781642492085746043334342197233742109768349259203919805207914842927877282968661413398709127372832874368295239851663236934597602657156492383786100789485459562202706751606634502082883739369653007930257043886295567705880293866734167564189908793180177418799750176753241273134985498072118228821068230452716062732075721919990328618357406601302517656979271493759582748439183811213818151408372201626401697243026496926319692705717483593023264317763808821684044353682012048007476223334961858984280722008470948554387320620291900147154944946688814708336584115728815315272880412232827460052128296929454280409577016874506515865449200160280357032823945338126373500608352827486092258472496632387346183540893336107876309617817328506540477806489563720472270364385332878260692055911450986257716067534261392829052696401568029228170900677294090703200902329237114606826545663687626344700399888213614449586783520984394522498785506080800749405301757524693500900025132382765968144656053121655014597608147397038974893280152137096484130879903412342872038701044056994005512179268562665679285313964714100674982622881274659534077634670456230450035234811356413008868482113739403893391724211159840952171443987700720442815429381283842289452096676833336988859890702916617502710752441624287770443161090533871048077435311573342553253819448640253836709248810277542282589435711729021157266342212023565396096095126835867349672043827816846071899639280452605494679797962095481059211954640764567764945725249900894448253199559706782808902669785609885711088592043979191087493426813900877309006536635431520065000225661075417829666450587244381281727311659061529952654153425730653746515894328510561688905578132005843076256749930271827139152067739563452620926575438422090442184961099942729058299758623482632693308290607549413307764561869095320708694603053357439074460505046256426030571128782668839502438423751685178240877140536544060642174052399868280774163011943507203385912948998704143840358523473424508174488744925685136111919020006625815564060045761026698702902307041633293261568111184919827865172156232499865111797779699585573241683663852803634827573905646933750753196421960108819250495689911736309852620724783109832080961034889606118475053740737301176250423625904948144584975327143268732072477110520291564081702587977810263683499678092501716817699616945815057205049174550449870861152233381073861822532952491564560366294433990122877634752783120263329590416688502370266268875686363536311486029121155345870451801174275046230497378871915505940935640645678942834768296186859012789031358542586505006329446193340442205641729179591816868911767185846783298217812285174330306803850303538378608006854188347790072390306480274604892348923756782661341256259633234832527228415707492436660175623442181400695264110209176110320033059209606920400679043302141730782272891868614265507531755185997965908723619428579992238429200807222050611066914355175785175215500126179151651667590228980599201130358099449677247542084236604197328072109934631727925334835444343198909860546844541965771775788958536045368270144087004069909716180401658378694534863044586406332133037401268276532716973179592355209052095893893557542170769136190288488067900128150675577386666577034832499797902896801701257112788954996675963136133488217068464305247275055101180629197806229227426462611284523003399952897500307700370946435334115803809580223988122189049850135462451744735533665566376806562211339550194855897305946952161138619310268881675558832108189692542752556841326790717059466963410541852407759871338064558908678795614363947382451141201854023785212346269140058546995524563263257578931542120184324542376427110622310445658995661325714426143731140260059472873260142069303784039836427075975991835614530488540126203778377726055228141249961196484533218746703286714110566440762932085673973072385010099145753951631427592363296964870430689071096807361709694357649405551388897364955524749412445745344367287956451777154353217006560540353757556726420544829689739522813062170854076779981521598177670536046872682494354127529284094898690204155383555870962214498927334270762042656452688957026647601620348768740941455761504135833826664044113082980760050490143303409073692699260812991223226390276004765104502379124235568484294436157752215734744229719385936829899939700644525166739106254405007002813282539267862269870433026612838597546947211197196344124206469760474828337553689666422200706001075569653176645180127363878168422824099352078553867221511384414489315602965716672021694955330114395068420434567281439577891336461787860470404040783121042391599089805317706612573244672025777001617189941642503017410036514875165581145055391477178740417357233792061962049697636981927662756901766003580872002553207999689722774997609492595598252749138263526199209307386943384308576882816332328822759543823336235224718228460530951713765288354019960129712487016304550645922605193818864484370862608282164172746701972524309124158820962575261453746270965027666066660172582825993264614494711238149207896219373178317387730632226845295417005708988422373221011864537213300562223108844862204894799859622369479323892077856197044122281494335427501390983568695036771712944824247836071446614233430798338947973930106587503962310580572188069204266516473787250577194507775333704885636055981640735390911277418855885209073786236304191461536471782613411144564519774438892806931285591774199630175359645207786505927517781290885858709778953987521297733573181172588935966920777420139787420504052037482880128263816632375283538017209733841460936619649577182128026248571767240121256877571855598333905406910334603819522212652997303516503803353328769750009331598754150686140232715433294064087548451529490635427775675965431007240246919142434689286296839042438541361017806149232452056002391625760703038830486068973678858222466894365416050023983737037829003181726945169965670810956213259616602931185937362731409423594404580517161199153730929758436937229768636364993082913428076197005517507837571571189384478186966175663278455806182361916350592259550266062790525980725519694293030489929585886533114764843598544967423865680047306791620286787458785671213883256562579904375384251760078622062873231788113856912242667608594737249239338085003603781274798408282935272277035000631521608994839972346648118207917395904078477352964945590786080602502060173351222852306002404822603765460467638788860644724175669058602356140350640651452416999082303854539017776615862795519851159145368579903132494199330499124228893416847662185508558423537382219999066156726838751128894264261936689672160548773177630579531140473162402209986620717254760176508689547851045613324325761607307464588596638849771193571534732370186075040138668022920625039847849363558306372621303647659371082951859424778922376300942302694703928285281259823487368934753972430387643660678984465165059979421293041911089083686453998560407322091549455899748585729085452952646102932200137091170659724593821478723997023024356682197705581731971314547703333951704648120530476560992334919144818040219165628278487975413728525740762125370853512168381805206755521651285576067994794832215940728345789953467240439699188909649168020090174752118407643373416870856860146005217759447757401095959527845104997424673970404968354029889245826841364220473868329493925965691639109499194601837229259235261938281390051399923908940819392635843478395943237189214754593355914345864746288553063677708270778413001473549935622834331682438299649516124479011408295433739426784205177907872961432968467143623984272801401658064233326724566768001367695193864485000859505670397001858339293097113891642530970576604398648905867641467566801797381570816641709212984583053973376087100475163775472475880975276831186657039489510452920015396674937940461402467357805739017332398003502829296073533154419413047753524155835458855856257995378556423232783668169543755810641591500114983138012800175362022206950252460504263003580637565797931220126654285101794358017658168666770898916072360094737795997966884400315874405770888753892987808684779340704486394618220955508607828806587328979750185717791039413198692970884492742973821467255852555104304454132537542315159332423865313279703185480517290894847717655860653209809944328092764596526694972643435303051509326846045404496385285014537757360534392459402557740916373002742687704110511822679389948376932559867259507154311732803280888273531124982089036626067061987734646914435107658051685445298575562544392874565241149938618122055547956797736915482904602963744518358106680474109195345319645785401660987231087095707044992435380612436612341029543805044571325129716044010990578770541306841513188872791153256746161290430810048975392662627455848369329497867704082529443264178542213781161578376391867861217168206439770421514106692862644426498717464634326266812324634014617063500976862871162031789773671794554435116253907118013798874161893167572766424325346890521878867635108491457566542415048190736737255405140289934636262601170140177075778478852975634254431468445950346742313650861709325777703923554318794195873556204455609306484165844121137506232293869168707364842698429256695175266751725754900188464773733121171129279722443890043310654269519464721933947482701225068663734790135105117280658302664069440030016013116565294002458969639324605978490999587241036378751011621753415087776937929017340164521326750010304547995035369781852972859144192101131573401356992698354005665077221822871199283648591384124220934495398786371242972829203549443652202634499657856024962274024605161063020445664767689143915607086072911820849150113688583493348680391390830130752991982535825155234487730569478875722160090779119790269853169569976530267637098088647489824676161764971510571993681939595053279630631538598743376105360148346811489092820977809362312871242692539504756340496604672974381349221697034823911212805744124654464712490035920730133724121307339186353770268167887055957537473945445199836365249594946407499107798270775024041473994068167230623236568501383058483745360682094656852524176063409769021317018515509347733137274092291760651952442624183917956915864275333137539059112030271235496533713855497854620579989493651361483607000425269843363585799716393818075795746686696195709385453376710782424322140653633380425046614409468769756357953889309462701123878561797343011171596666716117555453015127971740194699038589041866615217104058548037951761824101057316814371720567329490704751826230241251819911039588083672144701574785396901257688812651302064457771881719389818234446027411607182834621972810362786668546769621735669316610233047511728351303067951377614520058151890297936603433139542710203957855961643744076604621034313233320712618396725322060154196513509702679468382585085438158253535173395119286558736886223029225110530681405546749630545452345547708339695136598483839168715163814745113127298150486843366063247886052326754237227065293168557917697682991972043205241455825629401434277457038493014024472596888342035848554880950865901549331586096610560494897242154868571420807853191991716851298372925556995828389611644016297952754869585931241882231160517125634103362760627045619703317834195379551240727517531602584145676687786217011582897453462851476459472970507001085156438586640097613846249282038432673691339349000891217089329541664997379265936122350243660761942919864498233004499807577722977973709691288070928777425576362616338535393201822548391167085444861866513011279106575247307105660936433058426273327390054785780913346054625686243730779200433036028505084822368532563680895153886656063739456944849662251473165978860943621258430739053513035744656813025943064214473089334570268883310618118878766614603346434892781053815241463772497427913069431520711469056596388149983069014064824312568925348605865248546463260392263441522756215156706595564626688319774393744322663786166995518362408995152477697978912751464819430774627522572378832015471782629538919633392332016247883949625924153273569686751271192396362895047694579555892409757664975426230370490309402730725902943931997093184365784887707127445723589817215358911002302728378382520566499178256799529667123038898665521467630616356161266851661636686829891691442935189452340635840782067752499393112442600125785020680390307551798228006503773863936022001740833467774176704176930350878107138633624439798252954570519823475415541401798941437935809905835471509815554978266762589535295251624349193111306725832424086869227525683874369847918603869037072040852187054497464282666403786461248607250007095032368712446583476627474720548650711581797149364186884859878214089485268100089568465571320276594149512007272793762863002325431920920043227496485611594220689072632871552094903782061180082077723164278914394383931526958975937901309163203749133947674710266992020845763558124574594402591614508402890971774446641905451457802610510859213310997573903054095601042134130619444547942645096084309755655100368424364264400066811251727753343605536436399133608536974859910754821162465870080768827587678829153659384529985789816935565802384448923925261231216103255473747070870694716340478382892831634102492973316047051496935064348262713082921946061416019365985016957128404685765244813643682104473500158845400506872964489797416714717143594820475941942308646237902107116446017097172007902034936886089861057631996382087977118970424507940775994441944261757042086007902507192656980545036436556339771634097518038077254586533777138706202790643775276384885776232297997653094106281380127901389991262156623388206840836847215804726433976341080272431546953032366379838006053688789907821851159449355627500204856151559617504618820602326887441589739440924392947002313621174712568275309494049205459460254530317359990814900998294893743655796629854738198593770219545546486351441852996350437664087942785621582706571039859301691070007148667893640333824132555750281727973895542175464773079918195399347194067857042575873996441282056770928355829129999081589531308430162224235474159036924825620962193472069913865184395161613058796316592268196751707942201148069479288087190343532429214310404873064331763454039384127238369937738610057376690046685062598122891349091347070509641971786858648945334757485593205067212682874801540021301726670059793833980411437261485410900167510333888470943432041056994893747079058313171142106199075966850195767421489632498994835726414535408874801815454949530111216120618900315962038647207718140985831173671094934082839308977106017061873656215750886167176574390972262892289012795965083639646622269266007086003501027755097483909660307553032875137378395593175212789785023721171819339107764749873453138623134549406158144834956715847571179313992085890022084834902221037319008147440335882327455237391242340131680418510178537927558501066231641522973753394859568601719160452458851639144839603374638010477245233181869861814556505185709026621904819971616229068026972053812216218280165770379741304801357247024207715564573966041704926498776345028420979248227555753171998634424206547068177865535069761514489219122555304952949182984594187941041687083843916131115114304299637957011172504328503496718523648940840588910286217856502225721434486149094259987964284269313323804839251161713028396666938960568893329958137373657829534234412065839756792590274767686565470517446016558922459994849482493131901671552460003295306831517101709101016403284100095853565317644321429284521539046713850583426661277634116165265051565019791665273148572225296949003017555959013064310694036216888537652586007846970867181634783469941930321428505931607929209759892279824317093530110359203547813215556038820184738862857638836194094656901679765432590596632406764045389529844864636128602485212475835167805586894859911548557935227465869948526804701861247649373349249729950625724396923327113315242914556338385924038805163888613381161852519048711410527090615107169018608557367478176751179403476163564632064667810900805078442896251227593289888283735369761788693842715703538037989312731372853128990313385492213485761314776755159174464947314911315966524671221442500999592253065604658788475861694059912914514772362840383872107208113224620332643819843786273013535792225617450093504752349570328413525864590261301377041912618278962776912012212630177929550009052412486026094570907360011864798393626119598122444139953074897816030518868600805395051855900297278354216105566071426494687273331606761690443251048704414369224499470917602694970156549545025689145638671377724377046188539328595603612084974479828751172674651763162686295071746508833757716846580718664360579772203645774159687209560134850518777133297287851975988933081844330366525722168497928873187355492985913032852047806892124749443487294455073019906639435384192352516321156172600977939689115886997030847547034182132716439024613171027067450463697945902432897931105786194381969581548235105388129537330930046745586884074793204279994067967126732770035684529286243411716462930331788981278206031681032290978924594182059344115504540510137075290878276889901061689365304971151393344747262515749908202069218553337841381940880225353007386020867257075644438568349612624031693745622638946301744719653978261286824980340518161400262731700941936763110244649865475290007579455843979509057093812917436669426920864260284359758521868217922166540339786146399896117430195043883790658213676062937716400757036766688847653866029690012628079809541405890362228812255844193545940242102640614535765847864216031469290581536727286012904572827860726276094706671680008093921077827487143880535176735805973982411414357374117074082878363922983271600370902257966578350607772765168986880578334271853569944540852268075305725129433347692284322081615475851691721634099709463071787990984979139215724369859914883652443458566765184868907032811719968328787838411020298872923056288876581008221351758472330709367455965161964685898890114397703914749142950051436555634229138140540772984797280424754850612262151738031856880261553287955283181285515924240127858344956643998534824611159577358865944276651395267266328016097452253193615258065837579287487969021998515434400899451878070801822204580058177254514917735548265186236751267539487751191747851235868092521743073222861847553692105854662735024591921736410036365587190213474991357700318654048732497198425569513791260743874576612528422367017163318678918028376546820394166939329656246883338836665278026837577130712410585443429115843900542054115197968294633586725917096830133260932776103620507090417882842800748169648944946762296039742908042520245225362138816473690363402600623785866747044106857575378720252770812991553188862340298889818038708668132785941112265893245421695243778082256087211656313216387853859738341032516647867645390876042733305887002914174614470738798449376529484155647794146644685483107222053028673962197415068640973084849848404360647256630264308286764129557992657296036997113304251892926097878377514327161334656277523702119700342849551113334495657279437993324462857367212854774314885403923651648365062498887202770023301444039036791246854983074300926687087730149575200352010443691431101302892384459001408469539138214093118238465839919408881450967781796250898855030884434732765319589521770008498547507460863280795142936615103824173681451139700496341202922022771130171193665719057918872114374528865420722715222011380376182082744243956454072053437852684789205522747971397225890008112470349318691476306075907867462927856290385844888129450408459671592444488734041278409075475587174792718640884311846433762266400543313143054395375978641171064202566125962160203199628919838527789327866821108901063079751821971502865959630937987053469493565754426759109613593632457140247230115006994905613286926048698299122878376432449309478808332279703673830093271336150045398136774564823002249651185156999836498957982745042583075836488601212448166878449620230785296875873285415225545272436581381476209642076570632152671708072644422877570739795478030480934995271485523043543970650114834012590616574089489158990425376016966712880742036941036220989201261203498594261696288570784671919060187968159553702741121003510686425941838668408094599472383324045421600609386222372113713405971918822818472873966502438841154002138524736655634099556958590411016428607363907966697734360050013489875854530354449037580148589454069810052236759351341401895550793688943829718550621034720482178338559958862980418685671600892907097136833113365758130640634850540141169579224533191828018532678803886328623599123649145733032647166444577461875571040391587572104859471017682035547303972512415798906554814469996370801692172918121897205677875851398787845188914097000604691275135585301096909091767894414618820768735389204884500440611492197474374934702246980562395831321481409648543393511976639315604982893464392068318253072872810431792087197934363542043717988965546172550496391529224606129974445346640340103080827499246913288583680327342187550457406041171825567764052570316642802177839943594340147813667241394726675285600947350445657396944320440339095127441211656632278452917561918466534666908816344148197659977844646185996469009575162102428516334624388026095068433518414526366368873290016939079480529887922555479862114858142345606340287790667467354945673655697983731731854102710839126754322400846343195383490706267209893977513417360879178139295449766242601093536681949487425503307408945383945244402579472828287405193770518974194153465221636228379733927703056040948102587017711861586541839619256816249118091816008402545498950698600461098832985977206766994678554386383630788576220986107480485445166316387205076735850708418677904883121047549945479145254817290308032873930677330204605710179304818635795095157798152411854865650372537864529663365323962881541692880357571854367541005553732419004056185229600601438026188350833090274698735239788980868977920749171928871788544307552928174635582686880849975196312340321593405601123678273368063092657040262066888257698443449184732627383536652402538569055303799070091323913267245821243479700938895395288500780067554400424261474736849937850765811081622542822274598649943528451968224962981050934320972214696005456204713515987404688908177215800336617071606151137836353363769099704044893611356965913266833098219306668047012655808885498337055501674696289418922723593943579606724524733292990638509225597040395456275575450718462768899352984601562350910726422039912599023498283064786837320944688558756083251410791754524286749380792598404514082465420778386577994215679708905483246886270665113348299634796487711788579126115912537459646135216565148369849795218219390627854856407489812238649304656522561044771092897820934005630542971606789985670816530801586986681270553249757871015857846751153050845897092761452420921667253135655157781787219840347686260572894052760099887692235319237854126930063072669357761351592162209955813084983302071802022503501649418276416578774446883997120653129089215078481082131073010927077363805421990960130728681264446051730012869442662171356916638246663575731131160489487124056891686470896079670471974827604319348459585198190671655451241472844574585517190801287859421064693561969218411785981586039844018306287662112750920043495058945215405115568914972985965692703298923682356579125932723320129828513858103055741260317320223874768759661561379283157091169916931531854366507723251704800857280291001496831095347229784535717901411211239674201542371573954391818677879347646865726321660840911274887590533598377494912470559167211771820594845952590459658954372231119638521059466395837789264549840827008205542455354471288939324719256286674933713259252411461010132746229149760308115753605539384924919143407739646054633604113506837683093573259384717404626371252811718907860927370513239240229076065042982693060140095982508274535875452261940460295138893533419252019466051582233818389767008137108804226035558489111504144158322968683971071713991622032164544518108766739471091309250757458674192764027073534605937798711279391778695452349627468962914873878240613833888520711451334651666165678281560027053915475565314751961615303740565946228802265849615018043098080309932743550306853451486403852734753387375873577838983992932994498444570808060549506599860664131487791487037659915830866041087558885348394250494344664658571617264823628885389052703237481129849569051101655255380855134716580359284176870908604754754456632599974885724444303171438502344860031833039521327190544370397375784940989444084376506957893792548573170054933394529821358952495882209049590454820707623965750265086819258549507439818789094417467363117074858913936437309316858260749353650969875223190211890633860694115225999571039112339715440308686406853375070492765243920943647301764168056828351297486278822967805173487123408422397164770243441072689978751178273345965644366871667945965525246254504947401358590371533934597623681054361213908746625858232928075399085543587908414529822515290286208407548500650157519982046977817978208873052509688190273929478600765766798112382616944742745117228166036059453452084558415867848842731371478352251740050261316507067028757326861720899391979613625605187608904114543602825216614253458263064167273387222338150822883823827198994068858803819873780450022267118627994453843861162763393977737762095536557704707251890538707419180953200113443113481159627643622085268701359283575229419656145125001667417244713406969848404062587173995332000203596134926774513765166063326690977910448448397057101216708671624297156257652055581799208853583419252567818480699398823191902279254302870273094094833784485087619951979115830325647572327531258372979666699107598713383667590581958516749680992205892910218173487760902249292384765364398064456858345006347941713146859050887725071455217258013958104767883131464541943365126375193196675556055328396482017097487642474968710832421129701745488075858790280547448642439511640852802740975209021474523086992514355595848161816060445926248623070512865631943190263740263766250006228516462420757030717362246312569124485501917610846784722516576993446895496319244106133703094962610559968367741569642325656747753928335144386792408668457884976488875574665509542093938632342886035569430562923097190238000763081947842247721657376007961504041452854932506741466406071082782478067661649061608068528075417662449324491793002512473535027501394859548443784137594374286908609507690959888925750520632283050139956087102879420639835318513553429318425188200519005797787987542769965966088544117981600215142247131664299989123996224038484711651719822830650276123938462312626985814898062362607207647571664920387236839075149193524521277834399119994066628654367156291958785275946560631091081313088079864082972771280535708208753534832387640172748234090928852612667816282118541890180960373567655245691435137525825801264174470209463226592242808430446241833668571377056291142157741659961294313716408393799971216807182764556348306124100134269342841693487120655804151458780700590499123123074196953210701634484036348113507125588554103460604855243900798779157484546901571697007956853507014054366133017456969240106458740711617045208080559416844309863042005248645231340999776379078533575244674905626847699196088575044173846947447458719643912388201150651696368447299539814260988089955754401322577991332169540345909404478049865094456653192485804069941376041278412337302471102026543960283254883758173974128007606806740667268352276859336543333566182097993436771629871856042653300651380484190386567674252201812497401439545299799670855542945138374942094202209609240365134624950380037187533231545994608170340513977197708996940034801509305024557041822241883074515526671810254812773741618530110616141626826204328525612608850777607036191301976243663993305920552371323925882946534357366728768905857023218391852204023256250592807912372753596140515141429508378457051215744440247917527202831744503591638995890749412844999723629635140383919606415745531332196806375580115500215245998267016977511375844620317095583280260081104516008198092058209083055900075481545546919048056910247304629625060149355578005946994037685575610780388884008410341406161026310270765946277932382793431377530905477553916587424587228586556713164915494788893805611888931795843962313108937461544826962748497169488404157062116493669282576619729654213660203552786137825232199025085615246738951852337260289818499734489891007972287631820498534017008837188117415114676800396202905644983901346468741469362915363125985708469930111367596825683588659592605445962598674201729014241437916795605899541910553100364472602945696337104605443672790542047643692147044296255313095334144603365343822364230559657891762670996629602574249575363554866019017590914775799469514769995966648355265020607313122143428457621399492318385623398309802619105112075990156138428236316299987357505334239601127655349029028464972409988436672088687517161494722371415127484097813398971132965357202474877467237817018483160824700931695487791289192426770796689962555277596542811627658172166286072479594848382072048269147205275937751674037456136284911911253044143087743550796100469884946536146215582103830487472412567168999580085747337326388409789564842873259843975260294979416554735882927923249522464933471926201794196614762166140162246757076470543466405207993962883822973268913097195860644649758503312329276560232797725645209450061076015988866526835303425883283547489561019998373672763470680964455991510595057133245247099170964906784920672275571112594489897781130244812099059327257347200894854708145325615368275411374979772278241453251571011101945104373972930587077903382012056150745198173178821109984821241624238637457905145628549604611062731212494146285610108350632166516651481192722675893646067346289598638619804829480198540635080745472359822058200883646746959508836965167044618243089519618382101743711366109428363511906944277214058517352455077733765299050556846876962459662970727728004908929537627987513163932318765686626295522476939659665444693231889192453271410457516635020044856588666639945538403076204518874130952124053488950948347766666532287064830892166664476691177895652221395871517614904228932428112071106959227492820560477308965792612783422232164014512999436424336160903258840267906806088829085839581520095751709399392731942639303070859899313793581171250682552881128050538236106589985571319637085689059000314455272784846207752427838414370002169291698350853939176587998638078064591334893265367371979232828476656271940644487155693216646022077936413226071976491582013796191376465614910312551871709673905461479750580436655706985962151677973820514017386904084935823798928542816108389921350262281651960684166464168650138573234555354845757150671150434585705936871425174974757827930517149874724876249190583256522235634231683951694201032693367869346725352798536869694615402196764135270439594324915575804483919785721649640477783189461083583848211983103364958270201895728535109259813354441674617403637508162554371110884012934557842902676211408682222534073465067595969017011331437553783480898633935690036343122234436663423423011691747305457549156233534174077862852081063504433183304354894861111834471651901479922430403456235796964429942140686295980020609192598169060846531170010973536249172124466041278512888071076968608234989071044822981020272439786992092242002804706717299462193558461978730518346482840681310676049277770221264877727091194275031235604673268915727636697438407478436029971275969339188212138568869171115466896877151334313375165765099803153290125715244806507520517911344754323029325004571578345987530129488824499736178194227257279063822631516315279549231249577654014745152189442424575081096427232391064014108521991851416802558808146470627138817851915012834838002648686571836055852733168819294865073239605523543260297078400899732582926991886829530093185308562427782983744936329160120320578168152845532009840139715229407669880378938289585750811326545021421890120442969331746347609795663073941228039373489553478112970555159426014817236183127190201922657165311255362962559156876575271774454074113531417590195793061373991500307258897516694883219106718947857814532821189487974045298378395292077609394961859206731377330573002791448055568791801676129098720200824836710900834659409043869890796022334693748846959169050294524786433801438889013400246678743409266408259987051406300303975212790833377949902384518071267625660541586168067339437365204749307427235587146283863049141079384855829639637938860477689979979494705519975859238124589084937252377444796896864888384504355642708695845459208373974782057693538823358567420199620858646652357089956770568517374900403511028345047626910416459372478381371173416569633155325605220654462945306781324336696135642449149206979918284867939970022231807704398753742258513695569879641810434543205810962398144032889475622915352136030539760989908403377336404319248042921367522987967206698146603059923799911179688660253237423524711281020580982340626856781106019323759653532531960875972251351877882105159951451470368857347562704016850920487011751710590535192939955845354249010187443075936972538440824439080021456960402086486747991929319297946756611810068075788730665146732805396473491620191841216962770843987557119625170773425338900976436389764920739143158926072152780513192633213195639459691821934520388711754223173720944246071737221951470995532552651954994574023641976124391677308699957008830731666848384491520340997119657690303214682720006264350190685068608505531484817318764229681319650857829794188656408615937556812568403688238707618499772897813194410914848888864568500099887864643082307316401974949073250991623508564820221487453783732240723944179132763621319244077672806676006741303652814852864172069747552170973087245442687464475871189266376560781196500607401397015527409920715993461930908450269466096772349174104465114435028732887442569664249381767792208200032812651274572961677722322780052670742334295743560277843744642335986186151027194501647355977957827037381649225809681877675998609573193857579629405172719875564494970647240491448230338284607531709908620762548430031866056252768883253387873827776966511504462757286778114756173278193694284060302517119025150709906778284711192047434887709216277264003135161916947722267454858856123377246659213928424183006250156652654910108345673196266597378295698278018171611781094432224415572761919116761693583090081931451009553000031826828587658137975798110479271396460692856067278711098369422069860815744971489113515840565469193609050906728009282669313467914461174737641456991542988382653427840861432076699164102840846224525001339897235642202159298392876099122631567919402107960440875847783521528940455526867874983132928303265180114363037279412106111044693601338592879578387347469814865016625737033086497070278364180944157216364716313579475482131737741086466906310996878065892054124169237721264669240580889998607171946586526430153059235060975295630720890074045436474748837821131885941280539116655178763082680470630620332326904830395968514645451358960995775825925960964605947504820402327071459190589527886847419136343874309372475208155301020575263101215182149898706412744830226347340470142036049082573324236975365764942876057268911695429542853981750884773459201021808512853660346243439483282592252976690976817545613259447945137408087810058877703481172237912895006426720560088099450580851569227163769582634117478222669738595833327070721888302678291976282707653103397047007840024234822832344084686359901179755741846739041150312544436176747478044738059994299406476973944540437593620430052103001062243215252405902176450969915764069199538139677315410178169674361450126842154780194020368302170724913627197213214383856148255748367356417228202921558603979780847064232432774460228316627231963770673023593227178922120520157481769758311733148562065002514060531360366592744790968836493483710529100539222348091694260262460114970551970315091588022727131197367230529145533372317597274453055649314022024770503219201126384134782154407687367451319368974142184829054567781162738428857713081669147323507982854515883619080097193109589952759401982743764740443290990187263872559851150689774060569395010144385233679731017631832935808367491298480095418644283572470023335268444820464179154692995449232315407379998516220476272685493286446663493857717692799524214102891159073143892332308402388298264562537625808341845823506515358084434436415504587096135558265295634245360130758644046603614105301143717082609481755820427660899668479726886468819881754750885210967370135523806421922278952098672642420586147437375416972700618525917161386780886304841203357297540246945088400166806987510935295983756797825444320881611789295932411221217959186881200940719473465278506084015632885793283744342768959059523648831790149907222612862461099818044584564348377574064244362868471317686377697498493301447342087821075285951139257542817823091581508568079328353692566234917748735826859183645518437665325004875292960353102336309491778079240221860408894695458108180052483485485171392451263868366271504563665645334482567036462613708427276426069305991512437117251121430177022208148009002955667758686229285196535048254750897207985015694471351008592456783573204968628900216080603216970330050219055118369202611308312465778226337896592670439773224296810826881265002581080251054663692985169349846695069623895666873908274459844177214905880211021123134869845460255335037619237428567741619785229330156879082755192510946104702196128872254934495079312580827122736212370867826854056573375022502743624830340589939885696479000405188544431077955220238522193296029886804907262322483384247528972159633066996734061411167126405135577946919254906169059981194942161635299170173458183195201533738903891747008417283991692381675268774914705930884091534340813868623959970367076902278529205057999145239718274963166492025363247329471051935425544362565603533317062791826447037277839608627085868874443767077122503521852858620871583264944523074538884564989229023839467380903344459092012367323337245822400824691563555804345266960795851904181111802772071768651172691734138513944028745052518291254693369958335471260196289396153427537089402091758276016596552464948609483612915710881066796830547777147803304555402261352019490914698385747801738869746855733397810080263659371079600327733936123981745829799641494606451500306456758180288092756464586188821041935105180096587665831311642399660132145448402251261773526612507007977761859964219198047832667695274866763160189643044720003163349104546933141530480255403163208364731557800612001661420355462731974949004166423581129129226360638445407856545896392712054384505274098843522853753077625196685560536644875085870274721543833253855613585319378465414060298601391169482855839846947355823220034651943345694946747983790417046153250414392144231648110371670195172263147821748718120100043145251956580776697036899738782498703648991075006728275022012051954745036237001182199291679865750180789380195398520572310271329857761734005776280526381500345947539922079718753215858259977562245208114387264560256782286943689228281402716554878481746603728140561540591965180310529820853397811385182145271396601952583077970305356047574611170194735806500181700680016091125711417717528131432391158820981352455907324898014934431077841274175619799005830162498570621512624226724115626271339776168728549743915869612504155889787469584303478642259477373696271490636651252142552197226290416447051921515395976684153934337037735672794420457044838858122406995948273038005494538326074283545717396520879735830689322833973814272008252609883975815632584108892612053085552153641592904304539768788958546895600337109263147821061642822591855861480850689386302615728105681712207562617317365365372764906974923478695194248471171906865562240608894201580687306230746419582480222890603350142587234695793076132408490805269459214916881077466483677222185273981775942873018931586846771574867252360182433117582052754013420519542998439969501369868258615106302547555454023201758372972666846142711236486449570920360496393965899919110518048856839018891350379914608032151541439291901741824010503988853619350647883503439217068045743359552896022891980171334353773402297988640130661562353922605998903103706972716100697893373727746487207520716938448110627629414974080740752501188876239001639360414151460626840892758047725716037772296471676760262307668448203037303564441927409304790864864544780862176928782312497464305398573379235468815099852620328606053462985998221531396647435796073902341171701029557778942205561799639377252560062404016223760592974172988587885479530947809740887648796660396494912561334985591165290579022514716795663795252790661831382136872900603533307217093235650629873290692747969255665068318203393912578573086000979726722872590253038022021338623467407316752672961520583600577031421436449019193382886143361982762419319208733759519540522054170854872705393129309957486744596912167137216780285909334474608858256795336028926984233389366328858360398896120695323456889498687469717433302942851267543438263309095802907461971915502033050577832340481605289047090828401763734747669045341978865244278040349863468510340008445186132075562650072894542411705929695099953870692670067085003692425414700850239014882289316486311191916039917511756747322195390839778444746936025044586160380472969007397436045920787440293165584016304211340370173925786501859926967984863537038956237179630334232187583869908172893845739529675324768020846320675353689975577056355494758552068835648695885772200534518846903851520161542493000604622281537494352490931998478353420825297018466439353669096683541589141135229671963525359500174563761959481299284895397216435659745352650205253053375231986965073217065947618069231203671910357260098753621986868025266717509296247162046194105344903162565032974584125394328644526529666010177005594041584987975825469491140063209269053196302119421918059857575537990029706631675533383293526757710941002472753052291442512610320015485905363441546615406124824275011252142498081703558226727585485301171609796745279849027027675169611850868717687141342877594004233545711741221338541753597612012545337995372602024956318706121969147431294950538629832338547341637680792095322151553605613500302236867947095444625435070927785489352230171208589714489115641723209515233536320819876016550300111231281266293625297339717783386996047012857933672223075458957002995520175600284921330785379756343773900676534386686093098354533244901453026929105636155713320889306481622140840815594844775234156683274984524457630330942048452021765365842837404186388707575436232784268831229201757286756081886243738733220630566669442353804057612063731980441798018171076569038396418172168435320626795450729168627950356978387601340702967603190942326405773142046053356546757688507068167745252739865742763648835173804522546475412881407609450998027674704829527401546251253012939381459611497255291340885405709933515155188213201391393800218239772245253254253879461208994921277280556797262831745655068014788871372135118444426475611445855194214299463463113999091704505244727941924987421775091566949167017174286792609063802604626166045142745520414334092607203123058398244505180770550681153052852443000445412345696403420208683346331839336581520645001285323688313014346320393907895933045329808398593090376134396061078083816141262276072369221808728220000227861492712424355905235791092658530369112619744044910611166349665948603384801590049170238508874556173400621396764643551417258321060617734428138814061468847233019530794561827782222695221016233895591636807712883116650700854847604485842231531282902871831832869068119778421718388716513081606525838000246624254951418828555614322349551718475110154953941245055777986172972745405101522256512076574456720688611572404404808214180118786688308953115828119591597899128099843192925045067970260760172673207383522954620993590638598703111460783811075193888739648735935102331808956217540137495250538809830816476041789666682690015684664192773602585179200707747325538177699212922021452464948901427083582741139487572151867318389986736531038756388387938179521000215066230486003727757815137308093020800114369409867033857605878984289987228986260237106807639781872375807281605631533818573236891751895474035790311717144308819774744080282805144498049779075091716180055062038094821157123831643609210502009120504549448515893405529735120290253380923855453506188675628949783802417503846478896054212834670191926771540712012005533127597584948178709366676425550057168865529661668816593549159506100847301290128628860530258740306016038736447729000742854421293458678186020418103487122345152324576096731955844650065634441590998752121630956772613042869770779117985565978177272740638822980076039972895951846877612831001062020257200373815129935848989605903445350561868366812313793597753750635723349984922555215614030092097320453526487041481759877022020557362914765549310368146011208942136446342107622717732273049692960134612869069141837146782677805024452893300219046022965944973536379527967456891251872920368107447877787746584797670309834387786144067819415717640201771844566715223446143266057600874504835276270602590817686604565053284568682911475865846474447162090667236900830710884612023944133070891439895729707725973199116868719347991628535792525620364326946630965426762628530167689633426728436194526137327263756827535517114871656206761670452010787648416474424152566299709010869431765897954282503603011063613432969475927129041587879618368012559660239371358715090810377417508818209486999793850191095754148589942226126963164544533220262397390482801032993512405769561287240661405265552321289460274194434415686202960045920768194872388051836597749475414330278762239275673811281503672205149937222350609579898974137106598526902197701775809936838336953743587354830475757948728293494338299571441383594724712838761543577147379934150110145943484667347325387225902650247521008644865357797125359306059104093790002199303326109807957685540203112822235029246537619267415314566682911472693017004507639143663222493821887668637390919429861937702898189161442321060148679143417741716179246730280186437269559234842461548818648003842001548335408216040380990110123094164938479664145653526840297042115262916165678802819347888737206587645099922040285370476286878603399689499909974106979911304094254351234158122485352263489674451731572779034630374943975037114422265503191814794147645691130997542280835770513372542206222976872932231332065893828316653397891815175936724325718308976838604408532745246075065782601619140539602107082870840839501984249929537368622838454695450050386078739754304824714972127413400610150230957927111012325189799496163087439618513353480559000759310461479068331320475216043773118966126988449840097971008288968913201585573012066121822341489370311184729805134859447188349281959750938568707342432574450277497423368849015179040212492099070875353420099610220417824262207172890462912620429857684412025308852631219377492368306862178557762741641640538838668705058843402137247675406924195145332160369677927737447992671422978310775126163661558345065022928942753338131125031295494997179819263783470000237032601723064221357744611112530604838162151770501505245499874144582405797845617668372466047940841051010412302818669820129174672297823143416530199771527294650935078841748966380471477115821570965775676249241805003367028164773352574991014845305781791659586132167037504270803131728760297041953649361185795107024551284340498735355051151806363352486075194377479979325334064183719364823992364954992471842946195255409983234503124814079687674196705123169515657727647313401498161319657605790532603609815563398949561507577018707257490981121397095188765068438811255862376557198843176483292302911823367857210185212169248827496971282155993459250058673786814597698656972895090885240912291198222108926471790376542594260762496786619149914922906140707519186227691142658163921256721923456442892685523417112246032850809648160544893558728159183270779391823035572302420885167021869397765646611824561918494388582098486652297536016370094882266377774314786857341929816603003083051494740537963347479828528114708213882932915166444950085717108040263194656107967852827543350889523432215246358268976899201117335403713991791360844188446353932644581336328073100236615461907286852146003871199466886574166630979658536947607968357926198298822889705500150073532706364015083902769911407460238090514064399142513665267668791500665777695202201642233220003567204163595373333974189731547664973819447916173892093737108850825281711395991521116345930535728071469778480560779300589821195419901192709067871664496608699612557160007369012990602054267896514723223626215607683658406582456907800251552645085457275291035582538473073079087710503610553332770705861620338740021100371633395987332904257473714273593450723121969315177764968577721603578627194509319419120738222043470823678579101112813390908307015784466486765692208060121071732138877031623406813067683657687409770357586103032997103323374715206141368805162228876630609154250014205950118780499077424839047738077631903251273795456629550218390731375036704324301342116067751777861247252772441763189059316807627638523367908450987697726654153514517275254268843821676605476366012250954384426747423813093196779810506584782664622749690075006662227271731525660867260671690199718744653829968710557433615503421537365863426397717170480556672121498311184590691036501520537548757540287143329758218541620785146012562264883398032598195502329030811917025370136818234298842806196198058895223300010789366296803793526801347275467169489364705740696250007535460552562596996624554481431336245968726102929091257140226258693349747706779472957048104945961665948177036183655228688198745441031195685356472403976237270405581052378718631672046824931087764055420918037993610145656314082164078585685748550767723385646962705027620722189470079759409328112589318390225343912230398062860853383317266077659979387064413556522664295103128798771505110392222375008017655081416239410742060744827546930349893412536773733728336817301950921916372388718274372318625468819242666955713621203211562657372939361455059246583168341490347850379432476471713442677685476337898399171503300528922248370150031836439364072976946829966447792766291199439824543290095507131847343294132539597330046498215588713089496325146376951165096113286475335254187484008393441883254718171412084798578309439717371921966715719104716339175449255155554335991538417226596235805301496840985895799672779901195113104344468179561298877971848535295330380243512334730316160325988935477398889415842846638480236452102860555265618132852089838276232317171568301788038823930619641427117868952456138597594088146218485661389167901159662681064839818290667420877692033100492068102094244702779313499670832341906736063439357032322759986831919583644899567320280224595676067692288636659229165033621673231714071153393717742335007474410036097005026583911486265517869162441821626649632741665262592608950518286319049142438353147245347079419943142068944597716425566028351084556419909003911001571741879023353060969546412167192709465823417651513069688226981960149264113366965019002706088652152861781574962045363256041626735504404855737955840903678138213221399594821966110979678114099549562797985802118878053661382623235003163491024810209924853503812310249995265160170849383254184732952646718784565890249141605855421936614446012890874199155058088890548377947017217738206655682855895105526199367936007454206381025045394306717315009750915595512005397474316092534039019882554878807809701901758400082617084710643831812673856159402243278300859033941929966444338216498947597358036621233772671114302311067115311144060479159888033812421589248665832611081535736329874224572067818237944304735661523130957390132994446820930248381937953851455455621999882668515078231813059985924904972611163823275731446598974179143998884978468968732884601422253228945975678883202778203160642034522169955556778312819311414548376555952295690064722950460745597829802447055758068340815670533433030733143419001151919750043021886078121726013212687650612470959298799752386785323193431267287071447546649183304544067481645406947472520013611284900980352527099451734964245949112158539975596774570445935862054754135243407428470555703508185881799299075569962529161243550400734561199158796036860713972457586983877627368325312856214550956397755123577052161959168884210571854077157830000347478885090598457323891602176745457261121573334371635489645502157892938488489527687610439754837441942816864538833332861549152458978259358509466873470548845020392249862636745285586590666121750779077654506461276155910159537938776087612041887377551904766675104668832570065753872824590901574710710000658828024357993416153747733408247432314083522558136038491861478559025709349622854106208394488887919103458213003103775656145484324117131100464597850087844407428855367688926021011585032557639148482017263659181013308820322991093077906021416237818674349807021875819447984065290789510790459294206697436725305101162031938901231271176688359378033142261884687273249526432258023225977045202559595913716453727739292373838047605556380717208733620582462947881166372811248480347158634700878518746885034328586895011633608564649067369228705114944374312066363177116018038317694232566266362254485717107843860336096034886666244437816469826964016126980871084290098034288807920192923779227925756780166381824143421014638339730256272208183083411292578958345531297883292133757238082760376485986597922741824948929578165488435247870013228082792538455033536301687109003778585891005473037604203520300900013564658815890567438717903777521600344782997808988569114638547706943378539813391510198405574653885023001571579836247761352930552987273988700605592140497281481400954552007288494289349490661164768095788959616111509361838065759569703381581019350648642078171285030471708490818166533978339252320078652162705497280702255925814943647910165454777887745417557261872279802613587379145895595671880222327590856490456348899152747475920934758657646125367379154591481032679375649308457301111087546934790457129334495099838509787383594905197042087605304646331385777995418908333565137053831655559631851994416681340525221231508757660659278471675809789391104842692915474632002465037932944358150589159236834466263917140095363628349942338552936739704306370946543732465145439316958820614526873241778593222314610694189279570761608266886219531596554806141945076938730295438911226632318293573014397265681791034531858933166816012526402225289783077376469846285264640382146601310443927496601365796159662386684353676154031938348293125677015534404936904651243794780075967802075364749471636639388130547233369534436407551752278345890393222874995718538947019143486924537528578560677246662897346510902032071495964461461136841372290261819861265625903401852370347522583298422961331643839350780785201673935487743789051377643931458775475063898865243272808876661522912536269776111562044294636003257810826491823093949167610729824241723404355738313344864748648790654825749827485468140252894857457935565487062610083166144996171934248340303504151762695132450110981127794980276802484393075837718814542689351396453285797017223006201657395643636003569411718197904096771812908449251601856576581807807579815514951016775821030770510261007886334843621086033278107919374809204954978559900969940521176528802594211431812863960280112954451880101770341598554935346618110622765403236446519535870392035515534103272001994711139157663614042594476343601310555371183435977946617253846775039131184367684491144282491149479870115765267832071292713634775783649127059026914115905105278812435218342693934273701768904259705322650164589389276883850047201397070523973610624917042480558035621008937407189075803927225945070472725065388026116130029347316746642081257125205056596928114090651485607810726479650452587867508628016822052023602820314338390369936649185871757930322610749889845260621596015543601419550247948684282996290878766870770719423841141076823781802192661535098089972335529563568961930658033662022977821580297549850990092785257760918482405434202937458917652334967849067127916252528537411909450814967382456003623301161491499331013203773955108553579483665255778043421013164435726074982730333503103844790511965710895160498237516228843713734026481623439091669420547276488205783239480969413893428640246164911172821717054456758808586369155720086809117935974514760580188487472560941611601659829547760971709653383336149785840857017064094447698735009923604442809324727004878607869672982176431017225905451636237860070132326016992137361747531750917836478423282531379160772681348802335130256071705997115562048581376665315517056318833683965100960708165514539866408226580370906064312431658526749727656312676866540595671549689403161797086923883089300138565463873275931670635563054218797836519990973862104015339601744220380044852199889968037569235989292701335837679504112102847633805377449775362421187172768338827900102159989665802252492757552932625069016181829426210141376429881790417805428710847823230572837559188160120922945330943358664032162748275991921892598211521093735182918025195196715510412849765387256045688123611676411012669994941618571027936258820646059457034740600676118313442164911670339321714340904983189938091784672652228045954520490026575637844568078254079581628525246930547092147460463706991776254883546887984717925538360743766119111558920310872305837020403994430878295373048169995812547441240452342032007836445303984370189753600868375369269007058998930668495764582811936359549652615743732903979246531254806803628591952422445819426277811847792087190134223429611760438749888335041386335143578588865853604180064223645823787920374202163235195973690785271775242805783260724507894347456264172005175218726122522136583796364352680718843570819488493978475343035032117569181878683303400425178307984001695843477083347624529477956915173956134657686473661624331949858019012394975275430432663731590339797341434660199436419808613068028964610424670121784927602798487855212818947898287245155309377179366766697746308494199865396614881225873825957203869110717191846463754393723204883713664369834121324892664890856100692593757712290117540040101184425712020400625871880248099104267796836308189885221805888096830136279763760239309851795550086557952653065099290542661308953141239778710881885757572067873596711733658879183641936845702003048042185781220360785260084824726178863809099213120759827322096805323659278322710674840689702844431953892030320483179903182681373316814484037198091451887846591507799903954142725645227608396845979020041885490094597365270675766704047097985153254301301993267205607121443431697510282276597000494200965815205108256412242151081307165285387328487899279154822866251110822263274943474895532539994851079633755359643153964586391676445309932355695915100913479446376524264492803259097137902733624796699299088570749181449972977401216267116050937524318061285476435273436444424357733832497549936026657141004521792335953927819565231424667138982463142820704064252517073366895180012388089884519636833282066010486571140406791316076505714418627839573571336828325457330508533319245844237941327139943779405331111151533030535034504734663799274730728138555270912115962594364084417246372624637024097178815640457420659825969532607418023582950636279834863449288106207645606400835738217562750894283859240447230130952331031293919903350349411617600528891965236193068389928593478180818710622328744536396847721498619435724098478628074612757714629013903538606650454923562140360863828496754065591697091650617260268013279745598764698401652390887610156123773406908798730304110871973837279637257657928124582346028698615237518252679049952747374668488602355577594999065111357201588043069621786740397438817517576794098700895974147858226455021628644492999079969244542733669665700335381910913737324968097181411365299861547344310829735855564608994504725933745136822557227247270372930754406454316067931543661481251898249567851356403582964116503160478492493974536483081156839336299379546577961189854085016016607738105206610287768989805866042342421090947964608261573485086622476178962694334863776996601006143443706782971784274515933724074232080498260609501397777611670216141057218079399682341515605934128288639743472087646560731228054450453909230846806088894506276229467479633955433970464290183198510300558430375769786506899990920189126253924046568183066698233509485377119613004914187954298688029910507855908154126037019698208981770161787537154109668448038257018735651932207552192670070401879549203236288614630873010631372424357300898948916592999240465595051155306048463347769413746349606789840896802787100676574693726123318495692217573775249089601143268514904820917573651983797020519895089828088211180838126233437994601506695507578124857902929928209069318297598575034442809014656840744832920453715999091790631261029092424835529502637219963945595478244023690923242311926484708157929171239690017865134412257264817454164652319419372632005151480829886887315878727603830861879313440785938152292128729356139082563618983443716545580885098629835908644232072100214832370116873239937926210066376320365652332564570419431491730857391899976224574055351298216657523407676429317286558258496137454352537688141914985502472992447091224119159803406177235583380497040687914184643069312845868693693105501803053460238151215943350907349112764378945503922808165366694525168487878148470548906283370937433739412898136825131775804601819810898089741481205485505448402757160464558122756233422886564407266419040161693381805618460422191291706276163361585171091839825019627279063566467614845837275833290169974985730049865416281763136796101891208254683417721384445514113427099226088592389305044793805574108266708491797043586966890250140423739058841445803142757986630793368240229768138946284242480942491536797583603422557084171527857881506663150424434065279709128608294349526511345756204249815726987172969590909688150034929230582920823835082611901556368079715061922643314312082869863378468741914459531012638647231184331006180883929208121675808130238433274836111056838898355862654945369383247692330085568260825624567586551672291242090141947555081727466428838806176241423645838721108560334491415466938327903530350797373965992562499235361575066735289815659752330058958650691866118150683344730385867743257983106148873892009115264568920207942161178822754924362081315790895932461390514176687444108425768284246996521874762091913343560649492146153178682301940386802189426349233237489530272709899239439543234990724233795426988373381895191689514761870448396834668855307347186937983269178286766718095231193476421067452516395766596326801962711746788053783626755462735192645654818902147626436311241343061019611333749275148646271884003357439920164175133841372511151364344675501724519230343433599185219402097295354726949286047888862608027674152476433480076854435383382719751292501469006014525718975011459040922334853037445302701263983584282404407052278088399272472939056035771087454382862772205038187202189596797711273702153351538753804850103906561148000479670058545825340918321820416971297693176622348160704033963797156184524451270556983025122749514628514429234683004701247964676841095660693566981328825559512488563250537012363114077625662413855477965157165416313990562773976183804511293621077037062061514514647692747240302893555684417526676796573565811427894152538615495546605814483602621617427827326206186491880484050704006634281550437381083211926747149719245960243705063254420863598381020509907843110022257474536099323624473629151654991139879583458144551554247045310447956672476504868388176712405743588029602310791778148369861139381546866401845420606119707396447695111550530951389053177002029240673681718702084429544798393103992838570547729628844065272968660418365481119389983641801474565588912286239449569749601847991717439421788931320694472991748128253142374020357764277266893406972570091432880753181996342312908522766414299912384239216838444711989313446976434324574479178753867730322552916387713978985555104323539681707140562386670085989960648837417303022677161967942282383968824935126138465394923533801145865215748102224585477594079621791334312531836198534349701322201246502400787304897446108684435628776663263742165799977456899432299537096774338061670919034254380972151452493374363040917733712112421783453867706772760090529090059152913013562620292662652930211070964730289893782057094297437414173073468470077884832540038283944954777035596210033498025748216717546346156062792620928819022531088282329716690660414952900273033819930637514676995319786076380866128363768357942734015596127703226864016462557939804910610855235805173815253733090202058803741118782690045935311506486546536490192308356424341235961658950346216842139727989262638888420801413008899842427946952565579422727827106625503415009912323176276964324834464734258989943984219961663636929632985269083519153785015038681804129316615630982748118626181511203366510684819458033228451975198445098040388588416565052956085185069789662777540659032019833550137590479232733296341004465741712403040639176514576107494531493698065053125809867837023291329057516102606305396200603921151088443926443871909728173475492087776400036701039764266413535215916057931448034268239747444740318010401256173123423281725940787729442210558129556233246918047873445306228315610578450284034112506599723007899798726959864745559924408023421523385200076781787902587817937934105449963848020312205943519313876977479998452586491606743150179678986152319104034775835000488192868706931931823698196448646460915640221325180057973477538148874630897955967281254596951337915423106503432693492535291874020368565373522923930269642699957394101335534879377603600822780515295062816255868205092276510735989125938021763056146557784732834896872065306619383351825194250481296966107899595858082563066980543953107040840485565359903769671644108461768272927429641597365012735268590090623219504016072171406554641806765722360718633015222153301907225176772161153225043795057856072300990771085758353050761655234643292960316483884960431675419078454307624287126565102043792117469776929643229682558874966499197559461026657453198617032915923271831345034745211773450706579585566135471488421451716289942830019446605498575789657380804744115029309329696828758300092120878139331905957890538455650338505384295683356997459254782394930506991837698753005680436340089045660360734983755059421342089624112154032514364304103477936348406025588853273957655782080816193887832382524992990660874876384618870324037535291558005845557853659475922890414543392267991130937126355406874722525596630049986390133220076382715572112687982867743589106598914353868243321165038671936889046839369231337275800674816482746065430447678845182780809226571550249531186474937697380533451086706800640955973576661473111471934268484061358370477144127299503719132425108149726762756544657807266862145242189847869716930457913456777210857572482409133896640346701302382483454292719632382198961479853833498549659064618110240997662028537361062315115783122663840385999942839740941685174721425405945060701150207290739668479270105493619215643519177934150230881556847991272010167259039599203038312260147047236817657237915210452120785479138225207614613344255830123333969176342652890621877157909228028368902436397491729220295992486139832284011579880373183888587526018713216060858027339465204800021274523496959918904631122496294034191790260672600053365648375174884060965927118825263294918480407562066806875342889219497397790184438988811454972387878821184031418375354817175141220775418958556174291492903299426898310029200085325437348732854961699272009252992076365986583764843512814038290728332057532479224070000808417636340398674634255232016498365568634748264658483576724863148258585040381051241152949099434843219421415919872723774949820770662491375377077572905894757954652593504953725219537738976565449814050898498394879338589310906152446076642565631454426824595706483715062018345412547704388153935191298404271326616334874861707027800739321832618592287280449455691740587443894837694832336557561918103286418216027899655586716532128239467277254654414528516599198534311362499319011376922273793122514588134958226971838719029237430022839709011974368119028688159639461702349974157236708363531304644789557507719437972009901027063628003829466252163427546289011618885426158238851365749105678519903375141074198956841083706833144989323141797919634132015583628344998267401083058792573383399047500327168649168655808707673848596239802688464756309706899810339782202728910792772621837763137481839622456530552159292839308460096080258805980424292742298682666985439613007238106406569034650558942240647313117287428453044584799707227883056612026828862817218807833448258442076101410479721825523458570817581290736106222203298954240189967874434748199821442572972391242733816645811585262706673840719384283182445319338654839536702553486405962546948222193922425556086614785838892066889410380038505660679243836168318534322650759302388811567175648683459380704186311486379744272952680733965622220302061246334008480803341621462736762681570547329145963113484223630122814433648466579202889026065942706262418099760999613075808679936367907579319060200338486775135356694829199413960183548492648820799596348671799172953085653256634957811268582158962874719819572286596075965044139655980739107461758523718440210032611962955098190667051722921869136121147607870283527437590217115189507319306924060245851550001003482957706486979640495535304437801537368834550539470813141268349949140162806415689587864282302039766356476026981019420896294136665871417272016908100017179963912741033075855534847817335965164290903650045363686697089025539980744383910438414784621885224563928071457294942985010760158893758670710655725090726840797899509912198261884330318878231171391959012359665287858423065902579128463387632954681103017458071628994406476722650038637196354707026963391858979104763530622916239909699584717709978164438229450179722286404181961152320832884605290829416257236021513981988559666893973396806996914614776690656343323598133116517499510405071720772628847173687657292446498336028281829413965404131601318158248437979466034424303530508139648570163855386505979540390676024993494216931676196325254288982539219142858639926712305585663078315815678290947251160686531339743769194089271706333207207289460280643301599239212602099843834814666273682827858260892925575934774873156509172903884413409994508681835520528561106879103801325100089220882581564128404174040366729425756576496369193364863681756227896703452406725351521703103150148158909022883499479229549098563425710095937055980493345391181141053422668864542048160401660708749044673987748920528403775354748590738185164357142877367425995429531446416890106408246848463300171920510816242455002206139024895149435135036188414534411178836907195935970441099119253336186425055167387520071498507282281468677198615477689824215963138178574343146129728463371036402341862629491075745278453858769418080129446822675339793342138546371266001298354902729259965961869857365905308380868902117472527511412748888214406957794964171579107537886073786709247824138324287132275193177593129118382383145703005023701006784679072415568068239034329837448321289416434961637229408678616379702265177511261369018001261691426519481298883995987357699256162237091950502762036957320767163843298895097096220342026832616944425888712717308027841225816625648560397553870980618565847580825259691304269180082658175448381329117191418328200882032999442452687886362312260737955951563718272017317621906342495850639959791218272867485478575919278078154934670755546374882523434842927806444613114177508766924720370092563141516403059748625922044349397618531238691781239628501395150743624497359522127157460201218409763385653905432299688623212679685391975941633388017486533279489006614017793788643814884567954569848412560963554681956985308243575932816815673210805306650780060631136632428021069088581995919914580655275273363604110357295225250312391338267132915625747419296106874432920878177726718834889196727673824471241307482039529722299438744416473631356623138206407399318230073484867811657510087406209184329904651171192637818991680498938514432177121672494773268957228771625601606235413628876143449984873945228503260887066682596413635863036793817562806707682065655785863713162118553889954769169174921169192299929788691567506397676544646886528277859986304705319950276333449460093450997277023060239758723831099338373640246257856526025787899642929219002030095992598172203724080854809935798562691306599832396325332225053817396903323066526159642994594439126809045034174279776886924867508497578526408260916130885537071461371763566254195848396640787821032354106848603868007902533992567438650267481556394129345766734366154410169982447160296586233617683337716108249233220684892770844567933683152037720849150233753965444414424812833122486903543147373597583961657796372796946732183796775274849074457294432650772483768777816326807526756693656121453043566944937158791797388383326541521665513518547408617159544883913691900162767622499511393366508753785739593948468104322036155569803873513955362129584287216349413052354942978292315240116461691853803253228877203502500465508186424716491508567059493614540623156223233940185362513943847590187819342507476843975151513547774768861488384156989372598434510206864010489116974066314488077969402591767539288791634726464666076417733969208393534909525131616099276271685945443640449145749297842093139245494252905159714851876700809617294382094612255708168501923744539508417855141434284686734132236034317766068037418609760683553006853056772658974346263220359876609399904505220003037227602911853922800410536711328608316158337565658714135658830046248648847196966941492926484210585219309271988564848423346518240279269842808591133478274964783395749504095281768677551590140542361713892961848886694080033596786991279759341868673781687208127876585455823072720093652793774953091878298625873381406382601030471683305186760522135081124662456668224521662697004992858794793090295656380218242195148289055663586145921021520082782254757960844336185742291276578825892060267354806881757500383301226162119820071073869210928563141057336374844740916073296888976361504886353883938635355448791891451120951817758103938108773671330431777058174628626890744698949645765148955302726372208327324827958284414052373608812995134114324929876945141608885170933848414329339201347756649340470148443889973478966737998093749845328720464800041670177011156964823918148175025508764091517824457860449331714065176169686338804057786589667018949926328972265398007351172912175017186328709203439582758040349630738930541066482088155926055104137476765486418476759623401425970584937501629796073643795875375446244650548578920753224976402767242675355265118576847525400347195644795082560160372222572233448369442020827152937354898996822260184544221971784659185490625595730694502410656313816365405989081927334695124668927029636515379763718267805286595235851292075229888896303764630855257135835862701331617694487345744615262612817699365742683445615938070581341072268881188167849594275545655364244467260705073455785691655799759731737082919744888628760176551087566112286792874434457855756307771836395190283827133670701570485849845675801801092996890471137088975406602311788072746080127977113329366843246802841572959971292830351304921637560223808099525040680911197854430891778907735571613656082779189254189184628648615771801435640914568089719549099766108007273917851084914179437314537292482862679339267778645385242056863641223384311775331714923928188237346232966870868225260860476958505142251766233083274009477673927787885977408475276296715740753703068178775463939047634351523073727425171318642395066549760120648934007922068202003116165397201611773552208094054763309973870695791010552108518794731457022268373852346677724184787118143118857314126073665296110189411205595384860383269488372497694349443165517399316590657731930585784358176818395556313699068803572377522913503600974960649855874265821557664161617212254660953705318793465746767026273616956904993229435690446203317799193858402703043106880784054954710844098998086383104406598520726192796280362996835504374813223834691114730491425528639044505973435565885311324042780239927185840163934061517558094972204127666705355336844094003934728477467422434213596781534441997116167077570067712891729573017724398585136261391689333570612142251895581510678898679947828304176118844064378648929529743694300916588503231812630177982632946281652906369562283899797824651321464595944644089174073219472765245338436000096018107514882738316573801787503805605043192586158993785970293253539727071343322810974710349537625461344844547790478180892979193382799457408471960524762431320453747967481244296574706703492635302548499710170404605669949434093924158591768109556383937624277162344292272320699529690314886107314959795544818870662135620756751427709241116561584933182479801300109171034210976828709750464996862527234538067576112400742555772873790546565374699589975946089381454395526826218374024711979357829587955387261455829927670273281460663034529972164941678525626695859449855530640948121795518577710425063682066585210601892312681280411457548029344647510314984096121220004807760048882237237029511501940160161962891185554832698743714179869504638366402110549692471294861608947991739082924166166347793426115131097742924270807110844859240570811771984927222763509484050738202159126197820483822991437635490768297338817113502348146501694213377520575738157224988861409931354244225684105589425566233624872884893796414134001400325265527604780890913322710110256659427662171061103679655521748989613671036358572985656386538146016140768207139257405156276956965207460676581723342272628059696101160000162659848070342642233419964925106594784470141338639263990165662285334347044263516751921570962881861607166292680288592426964837942204589385230596007054643611548590899198501831496826903572485800271740625413016074386659202461643258442899202229814950001570283284685406096410132919523550450412865249919262650086708358141442571045444089674089439690219470723393391521302304876043714554215179083041372659876948342292142389131320899447898482001426610422194464931583169390694423237766230303917418650992480712965065358085689812743984105557962094263320265129492479951958563085502938482638693677933355655037306994701427078317803501615775995192166568732818417406153196561132951414231695194994871948582731222917670034790929528307543622209950168939691241192070180953773533736461380793468794466018149580862278685021570038145117343117465062717299735618204400465857289341662830169924744206845786821169800471528140558066259707776340996375133423308319999231713108750582499460470060859551200905947438314464035118163353925964626309695361304754729053671492232951573649646059086185382114790247960460800735656706792586827009605952761603706936255901708199761556249168702579841430948398730590937229037252794665165057817207983670328118408175522212121285995895077962872904122192260695250065805155653984917193382253295301565637009319510878555125726022034059622405084737297646385966211865716689392702781464799681556975686681135780158332403337157530931694122435428825775444913233207817586851061170881690368751336104988522166687975807524640631858696457629012928130807868314598712135631136847839820692286785638257930535843898323612716977360746568427867150175916021287265002211468212048818808485039394927152407787746412624268955874698421196525538575218200501716841144196067685175814479862385304229115919314077301182988540049802938076669569736292953834442415927731619537267737711125911086470380260941142856291098798271485825512082985579271542464956541926447553371223381631105669710869524865838004565015764661908629507268996890564089879404737719527854454424085811662925762656952030556879226439124422699425588083059518310871391175016211382396042373053836809788861469500687642794004089176111534057480909734585250269360698160553857430424391785891332915226292585448236069322135486760687869963216722858632826434702946335454990702021284337889240808162030357479873573781141796129150134194798713125186602741145775845103812067204843945512835265707727936355304834877060420038957914039497508547002301289614117329146906773559645429359189154956409720575577653445850545826854150576905055094875561084626022376820791224976644203067586153770986646214080985750667870124351827049463033753082458799342696662323403925868654744201927654588990363315079959289381600009670186022819793410345099419933657330754078835915640296352470977262019198677958035721175187474044432378396879047088366035480034693409244206610837030182355832893105351186270274834050703064429229541794101233302515704775094247400453672727475131832332871047671804715295887139190908453210296308762315668674332016710618302657166451592208312992816092802215466544153330042026463612654777882483864855541254757533198301446171697263533486417219141320113671219425501509349162731561617822660317525160894293636965737679509665576962278667209923815958468744270984147703070793336295309627151081885849362480158550550836293421036319091809230002788151453740041920259359129924437040285155328173779978269261657118798827556686823232455429746984440595255589352843486113263494027643230782768862606040401333680678140311339423150909726629347396894222784561153516437211128433113676132789970944444933660664150861054775915628492378067079504313846568543255918894121727413640464818402176641432461364594176770563373742471660664390572149306792644165561791717953889657241664300013381995751842444681433625002713077472850881455894513661355909685153017582541833069492529952684600384135442555645355157392128298360706439707977418253755315960816472702262787087448168398371753284921357512789098217912238122823967867346707235477660586405904361070846717134923102993753528411017406502762355638837042661951667473068120237634799644611574056359681362293537245043954035625129386672016743614494265726199234372197212764893477092091088728651878865430563022036657368485483723312692118752132288525089569519203348655747011090848686345015974773450322588726700703280029171871679716581867781751586537094293931961036252486663400559021145171269959147308816638530101178614040837118587416720601203048021553549128209084076584246933048945666476657466913423883850113659200807332762392486396511812404331473900230680770495183907023616736004877000767330087545423043499172329373530412123559872565334991168968226467016999082733638121080493114220221586835691712234419605379930031333007998476974375396889050839043798861592306217705602674332036953964234896845482048074908155834663659816281637573153095665946801403288206736313845109266801444017263494601990758687484280693202553341603947977761686018323603213820092342685729128587912144406176434396530066580511479823872583207783383827295632214408167101686356307493104682052470013284962139272533166810356191250658362166829294161734920928736875146513282320700938723493377404088781441352687926981375161094303054936010884755494037931962361526297615717924451801359436885741680379736562542370874785307887487513185284071651999358444683403629845592492864683818908663865179640325800335483182377592466436578446174324129046330578811083462224238815536428397265310132567507619576119925312502557191336491840029313349992206547325783320113065138045594018808975018586422723158498012186511442650378331612197869401699818378914087646699281765781221578256385057100752303165672428256939932517053859059459987866828581710784112945067284282860745297392861379187360343216741872700760182951448544836329427234498148083549284579350253814774142992284333151955729533171119138345447385660475025906175680667076669015163561060754921225852454184679851058232859543790770708384758496237790067388060505943338482684287734027640263059465572287992735221718396528871914377941010718049722144059415875814192456633995665491386394384497197673967670818344394038310762884070104493063967310459729009477718471962131862167683300103722975337586082987947355266313929459665804533693101613449458804231094944059220338983489117488682628493940662640407781559589477073154790027326416409920111781234358529279616744696572477409864730651013300693146633804952255809848136104141150567552865098512251882122640985577303609471593335299313647700911564341354078480159907781232736091055506811511301083856106363874260652197558042966698185116379149334223674964940985672881564085210161304382829103834372808169341077113157482039787275386042002351289459686226591965322172873104928626662825285073737370637105521647085503740310651904952893987370964686287917938625855097296216359098124385693074839424426724683746112705009239844474376117573630346162592770170814191800442997072783469567902551317657973724011354599612509701786730258651963262214798903014080775890218050327768975015518327305490554873479314055948371424269880456311449591351339563461996492524105664832821215433586380427742171414075543192747034795640417809945422903185399618112327135474587511407211230253108227172516387880906018449973816471645155688972119817300575980270488887163317680309722755455801850524552978738638270575498185964045887099079419497206558699075053394880387086378841354064820783563723866229556804982226466621481975724100083025358961911731541717464897706839806110452989058727008260754389064088961414704491769889731153581366905157039497915672342771804122205313596591898185699542350966160271467395697183887533777065565729024984114711345893183309652934511693387637842637591379918251323490289481877063681976409754982196551444783380351315182502658439064904068370697906612689553196816479724326545237773441197411364284184262343991013985962671802417599920815577649022158194175220836216988710081609815217886920398955322251401989813801306498286690416034443001999259800418135190160396257379283806689288899006799160605656443735701034936338327774106138278643908029362737547120121480288707109145998362004968098739612225548941834615174452790307052422236687084490086088619794022293651642559512324882545863170351299528839378949506426629582932635752842033292668695279131543879314856162899073012025660872082356311222363190972387742525709767023609771143618156509661944342096500909794691038631183833927650318611532363457013096322425040621524709262122430139418155168275922746464616970238869213074692944745816857827765781626677896913692545171365764473393700241218041915544099592899614902842487253826282184377976060784353424939950531000825092238919974569062983709130703660596013136855856136421327807599559598689332061623347709388630262375999429924978950652443894267332657293371308456235751152805444510363161271107289998298179860464556081319390810512736149836705525363413008036161191249466441283701389688176310042353050303636383115652400282862222471443889619273028842123135486629830008338079730101812067174265311006165970615600296440397113552849302849245568007575229053650940573902320796570252132726948108885808676781617320033226817286163006062994057343904098018948519195319502751975833611279556710421654402823114357981467543990965824281007351515020783001980516811274064790648754900057529879713667173604298212982574758848850118797333335840751673337462222314427729867529852937675613886270073785438573679858112849139345326280536425397039805800082818330820870780732093990618427342657611162814466463188048893847898955181673011226269796546649493959057505923037532279578184643468909516296623798009459109649103202898999435992512835023139395305093577576921807481248711495020072859171624074953413628069543241301119630829309725323277514720931978877620036659294053240398046516805312445224027113452659553606124681543370854169077830147531781684081269043192327148772732037198861001472263106432255043529373066644012428049354116829405411635468363752972863515138870230360535242975473750071697618527491589984515271457894982804709586568698332228317810467729509834516237596733633779830895836744901512686587600095735807983179723470432322601110648470282670026770474883877400948097864985760011844484923486134285485832052934403627902667659765872327778041032776569910956953576125266203874359636802376909432419615650802471977989328779302619353194614402674365283699510087910504500645349009846829252870552388461612454839897694969485255307135930277279536034191887188829958909071438638905621378675725601636061632097989651213166287543242767278974370657742485632020770959384155974958771497207539529137723488042104227110548004801376675598845116491282781607407539767437575581661234495542249195848865684343366733078803702250511035593109651433950742216548516643977568552516007209519704290815949800596801695891629578741940331419182943852718607966424783471448231550633247861995507791325625924006074333825386670250414339014781700647443172428577529806709937254018814478594533546260530446813907454045296151810175895270683033301284412633642383785669031564666472166999360419000173274247627441593398169320041250976711401963614204711938685584873384598582779001665379916074543623718186406435561821981707487371005298893165562829293245865547759704694964081013169547321451715625089720223106175960892818750824745253274194221728769514566689433934593341311295149813922498008709878483344773273650703444303093702648863335211942555167388901360269647670515864436894331346520697211530613490976890920038303936348062815717882753769413270407201226444569155319790514044656727122344090449335962154153228699696458632761553725408316109791042281256248587564152238883858926084171903212113697024592639156923794673117224203602571578056841508684935402947931494426531206091803168201105071267946693190203165483527700893851291567129844297274871521111411939758130530449475610185214915782020134211978665353645794641277365842721682908141596881035758077131089444360422869317207899826698152009309314417874959996568720464707887617550808321623964073978314121239165141703812519311586962719917103749380675142985713839912692694610608143147661119532300007956794355510391719336621335116212617292495132045724717541600293245167159059749177039843147198955867105182032136569446620599964310499588188331508087710661944995071187630842814965310625380651797444388388268132315302741966424079795261861382052952332080263551330107811718616075951404621575923364293304362129114276412361720717193606381141746313777513820736977853050578489173428379288737679599242936566357139197512442601349080381125722896829181381740877127985162937167212674681358396181226888577163335329497477635539862736830105257115384017358648788949479776852407227893533762888113674920332344518759661690726081330539517446023385407793306505935428991051171655164707839322159455170147774233278271499265023760635725177559458952907187145351999608708016276359265312045943901162136357526699125624279504959222443787894365398055843314158770594562217312244964178526746594908816183146680550389193939367769614295424744628888723162158879538945370419820454998620870159596144755823185223746038037982151187404288615293703428705802051027841920948050529972411527353890727892984834018734650600677051925896746347394634323495547860836058529979309825787296140833900495065412636559129811792607883820610286603580541603893904223896375232780355173595480868487631856014139150099985575533750496091812777632949830822507516337101764894876757142586497760692876731656192286711966743550858349325105750486081778183778240993207511505472061888135814867750726322232004187736885051073390178562229507877598839081937682862033416973105618584389713561194646039792349415091175548510065451771162170755143184128182739139860209056300277245284612642604811949713998035537679192541021469851729706562374650568595753003450949384717432523250488040248549659714251433276582374832452043451236243098245713900866275679980514745718334568101772656236383366206017733585198331557132300101623602579534696326879161242988082839452676345116883424428008890962187912900726860628026666185759780111660614074717477148419128743117082083467800835211117069228080329334421719959799374147512307806494243040673193975310347992463669436420338413399230405547239844691342015340598785884947590494258689735151807103893775436370974411118973177550512460155154165335213125576651485195972207197569848719148360312720388625138494282568080263014978777647818323760118661671423815238051794205514267257402903081513130647023175447318332119814770859651819636184391360555646778741450567416764835786089022876377521350703201813854808194388584091533523984551661564575162915123962831222169041944234080554650489720083140137371252707766004447646703654562787650583030118494701140384464151622197062085321727138721740467091626327184054285962992063313263162272192308136305354353089268782808645306442136838318241025713044812017815752515103452889445775656002093364871369591700773490246157928696680203726966055015314193175454367732780885968453540970122377150375014799161945324807681060332288221282988137175730990337411982164277183179145646190682198163344716398260360232025454433292711035470374115153782262382573389998652210641217943495369481876593898147435086011483449117871860794179897474705292670212061233642882176952548714802177918407466965049157378088427147817570107165682081493954914027176478754782050877278719106060717417404449133689344071234509524799299581792921344358977324718822259277429412087049046003559173142581758202912780898715433051343971639392292212429576201990560873386197481049483278939080315469689724196106473213948937180281468068007687950635642532779733189811224550462740997472139389694309543979369098000818836295232848000337617644581601614923372340316106952999001670409181655249778008514831114978388937282348385077589954305822406441835668288309839833233000678604777238996329621244052102858272973034464869620577259678722422814973443590402017238090751803487918109919947112059277711541366288892193495174577992442867890515868369446353587959005570036265644069460223522574902138337141460464929044526846898261932685495589031607943460622547028148753907169147620298719287957922490059196706067089093709978659119636995692039240873926946336411933421929612410189089239794337495915498177295971647979681322738228119795518421627790807402525139712506477079755565164729353598324568585946367450396192518034804002338368915678280885664762805198800586805685036965178666709954807542347911718504685749873896775500098745103595513938827667446116831246401538367666062586801915333207431762573434261278352468823530415444728316036310425337763023086337200741845111644035765693146447672162791061536920395318353385876547170120026954599445265718816718817839633160943999500967587376378953011175991174841469041080815649171265691468043980068277991973358891080562188821017957684984557177035118670198183510568221812316274069324227213240187822950388356991773866920646626061121079964654427092875546940295001410889734810135186120664581043321334330604052040145411684115610763674887787981247726201016027501039411726367329256615183374908935994029211193723486936801545815708948797564295586734518919036794784147768513402533612744671363351649211007535495938778873681969243563881728465568817247399856583738923800497523033169915621606315768382819474605366720427982031615668671031517047160297579431962767759453273533723040857075870437329898260680989961480981842627625386374742313266010033655056887589457925873810410298671506530743233646912436477518512559774486265397887514762512540184686866152941245130520495184724417487603837814094855980770402017866049573491805926573914543808196498702337984807931848567383011282198389220823739488426673762491866166330797970746461864937968613916068974410373742432929109825225057240940288814177603803296856549096344175060309895623859688790102629947817767599780754003592348559276623072698534545592968170980999786287074223437556256667777492797902660767761667416422667254103234974459650825474074180930357390796350162432658256367434446892925135264368751875046928120117845339349875508399885910443004076081365495740795270230402235905110731050121555149450246315105860526286067598878507768667660250800291447759214227744067062907798947816608771323197326646225950368991698884662010161492063087751190390000775264244204042674602841620025312226403358653983108253456227802383866238717065028600950764399236996352381451292041634533532945513322559471261814072654654409098566862490089795087824835277692735365241691376512448758291092816343078365154893815579506867499686847068794041032498259308032262715444850372476395119431226669853129795806348370783961663472217819408215844627262831584947457034663904276132369814202185004625766806401749239910534757198642109774146067980913954955623175701629425051955465040587827311106556937271223230073500946481536904057185265732985017191141968195601986685864080715188047340322903456925186127328677214450711326107752963096830259334968961361757877976217535193549143867092337357791157802023489372107212187206317786860949630364944200574469617516240747034954804626746064799505307312893504261600976171062590904480534474253812053728814265985455982241615538021211618366168646693751138836436092523681622083317650656598720883022738432024158342092289748822115812348389731945278598474722348251271358301672411847891864087473704735008845732074407376137983967648637403781563689293209715035185867908987093206879782123872838232335947351135083688963924174747872128524593171330004320458874079882294785921739108642098802993309433151582590751778417467462731498295243990931582085552270616254537892091236572693954263670644963263038883677582405913201868196811670258379390900599117266887166755302516518689128419136937173058719435940956920973653315825049572630066700079627149973042683339228922322272916919810108440261925096570621936154387978823054447485940272636307493401949418268817386325768458409372227283754015496706549596121817048566954574755748152782338496120947922207175125990895638205242603501165216170409051377165251838954270017778282172188547198383425649347085510073331414209688467900692108009277091705491142923359049273216383483264875018024963894132266052900674499055509373486746674296840720917709602234458492130806713759522845168837113908986830690828876945370217174976401907297150924823048660694646343867295633239787291614159955211918275143039730096915654996609583033457565024363703998648887771952998755383770341801246471804136767651568577417195860047735597908088912989639587433342099381404290710209862444997648269402841693907926028874796520237722224414857986335084226294103382263173005437201159311957543816260918334449623140026859609969885150407306545009073024113659231956252148293913379607495588171638864606010326251287846951101211619509727093537004735911420150352685923834580515469530885065542583320848928074353546159249500685111276720241850390814126620524626603378423592410011195531121505733875014648254311565947107005601797665065573793490581193702822546553029074265899338242907581345423254124950645818833063973298841973518311484030057185285027692989295263977079563367409868692263725997372350334753153138974983049024498988809687222142594920567113360597371346873345269656440470981271322487184305557710308366637724732270920231317872783982238050787582285986657836979163930017685424422240947210618771949830188270329468173798003996452907407793249360293085148873364944464407623112386203830995859597180846791434175801989051427527082985975153927218440618330367978586242060146578027427836213921365489054676190642087518068109841944110068001530626266998885153830620301517608776972667310776525405138741321985415834507606406829820282128804883265435818463564865539151627933718271917514228054711575396218227672871972423626288260216249352308214430436702272172020876296848627759858088018750541656737098749669813371105991078814884299076127115535478723760537030816440069598411927630468941504428233347918195574089601071132191833805393188915223221636640826398797024675897858410448089116112092229417337239813942226869575894758753423266144237903043956945579617041253021236273012696497789729136944802961810916387119675437136789503877749778638576106917836042043551107952159790564855964481484444084289107369317999549648067549568310653312734533001465887938664570384921752400454823381518209036054342442759439497533666636134286159218688847633882477133264413828225189413447226715173323918486022648624855206040489832186770089129799772600704854534053296869480856134634603269732739346480276025587063108721588483671107145745122462362559556335711575421845660316473625045027840366849681878768947987393319053291198284257272262870586786628161231417134999671918320007158834330400570987043428418798916151516879410373604641716148263228022541453266193568203875410063064927191799668061492971430018418011303398648874280726167835118093097163221106697401762449487204979857503701205055546576017952456728096781826162309094953635144897857450604336931491572063007995933706831837914477579280875040928800818442614059168779222225711227312490467932243232891471789402186662657169377515503639043511556592814182582207452571246577549347318910667292856493854413394310190900413834071654726752037619811319717162521439006903345925212721326315843599712991701564233107035448432191365688782886408183300012253132031319667486076767629737116434281491845997754584752175488371299847984387890049709318014761698737156328905882265326455985973957603802453287335277377201722163268819186078990275284770514803610955633148714371644484594135064750417478823929996161991654456038217659291024968768075324551531209108561222877792583832605240503156365130730337376581674168995238889443476550618439265361322148348838614082535716383389282326926047112019577695602685212921655287548798676582945980772393844463317736497817425891063734138552711919818814736043470045666087151559640056699684897167723014045294879819094817793085260650223350739301905588224322596868012900180870601003947495035614016782726042418275374973205840816361312815948074247013267610427343292717216608116759324889894224793499194651393444006624659202923461750892930919270385583698594789278114808364847277631444573889122957750303666547954076065167759536773009719039139874165456636304679087946606883513391807473211729670459116513125447229625029117965702507649317188965942416541895235539846296090600635191224701170010953001667000038518681585591482290852656428140981474983244790426261302410053838073268011447425500980892285166855898048689884748717028481948786752420884033074848601386443174862296825818298583956639988011706639108043220966138774999297170791407152699163641057091960230669726713532157981025467649729376262836430513777000286014118163662525442442896085673724013215711808445675397475443610852014245783837805766972846035610786324432416160648216646348942508166845236634327845180653145051223960519632980976426211507914222761189966639272808169722112336892102671381058134669288859713791691884073064544377158930134440391790862059166346036643710278912354668494748693228100998372861834027198626844340665705286209474919594951894945327731579187647080587426354362098378199046459549802925633180610456832410069814130228889618131370034630159614998914550693079538426729346421253506467387693220333833838259608998786327247577244816003248505122623173754253058229254019814746451968308535078896371699885298600580752380240707220771106022741616635210116410366757399370751234871026255144480939963411810815975975979904688200454108490186781128687961157619581835338751341127889446286053968734754127996886760058790842820887645129966307549221061045233584420640192044570339134033476367918500754472814941441801243641274862311381427140886379289508030810017639623186896547993230140625701228138374756613862165914192076998802541378203183116900684305291623847294294152627360442455094170510648745970163217479516347959350077413438145572898733238228149300200447228803812354596390148119164170234829065959609947991737481310678880831253018100077299020853076732966920409294850159246823215541205389055169675448542114941497629327649778744347626946280462984695952822130568728773521972613086764864755255319921476446257577121568348327834727631767914474370505246702906179483744114184291249966652158749641881161597007825428940129749632850555970419608739937753401283596318876880624801882434384226202963124973113931941085562364235796764300661322203294214177725990605674396172348920229774423582096353229801716056497071646636882481520471502810263183390973848319556074638193458142875778937649993686008055462294888411887485732449653294084743242492955636533047726679442611217525466419173831296452413606619082045364121288787041862679438681503061283737043502044565078153912027354631833979066153702958706915914029353967856979333124362356895436164151935885905953320471262893450382679286532834189407013677673229153427711449929911458989102210338223746449865542769160069278036360967680702557002320469252645127039240848907304069026681643400354521389460072731731357380109390108701190350939293402501202410291371568809949437361752909923041820409408331356021850434636615917860966392020976708961792789318696893350281709325759184362539968037814375629904853428771633898598824260442542988336539915149834550607174370200972228391622830975526752987721553906181266806784201543175235356292412272181035102013549923581352076544547636997190044457994387424488440780022662888426228321605011658640609208908959648578784497747098761744918710340119469172861711387996693678814329326278253202079135167702832150432215349889451527973429033597694555055637055133345916978483689074049257815956789310652510791992413815652696324500177194544772446971240857908386530009635295260337847679336452555137709145481920836002915169172596662764695349608012331785118963669607663470653336480267504342070770160752433025581899121538688185261303003680211040124605325373201229950139237751359685036369143500641974826299033371012893810014997694925206424054229246259117175291029338947390095506707406867907710483735558429735075263339599162997366554506901557603222915778101628547467641745290813581801438937716776821240479318621970793451427110920503264252288081772513675033309654729172819833013691659932698444363468134300180125843064235159156229097896846183840709589155955010413873910299481033456150140047245908232407185094718359922103617915452940754544724095166658412039440912360989288987859077251243274930603601984044246623301213864712821712837545779532550405116526881936276458218800611519315278776095075350985572461692895481493015241381169938634108635965142354842503772460854097303860161401874817805883824825952612719892485051308433888119112098584440405182323611286479415260896091662820218788770615925587238830468858196083756872376560791087758999875576217548575869040773501059576111902512341622471617792743397994013363462334581425798854760098383774627228575527482748391123094492454627271755108818989562576102695221273007948925488105464330538644750596584056693536231286801320118859410070490103467434747895865252286345496570070586402550852857712282570874382055937734494569778386332592134222486959566548853342423248345012399187309697345699988277889358539054897292660913145103033928056919720438971761290097832792751463517698636243874770250513204034402855371596386407685983378931354807313648863253846276137227500176179052808608200350227106324232923985446975816910856286291546900868206571024805214190855761530523809714750473340088745097994627789960484447495400058036226549445412066614779231244828413848290153405580061599073384973840569742340676741452173006998462787274696148219642869449657973825376679338498754901055152588579878592714360822870328817147057147433752867200392880578270340912832353157139982926286988203212289061185600130226777545304803535415509218887091916128887998897659845809940889391875377768259196322972799182514591143735114004216388543584248991075196161479921723538537701881672784896998739518292022559677213932383364906241164103022267716389110964512738075794766897098415643581334939325054008149669034475722455281418499265980220691814353986436651068035469798049018343358491883277709686973625517388698055890302132671122630788503058648449589357366697785307977288898467387710112237099563120889648347192318313476761699454575332457716737140708003680529179875879924232399081885032532638697233162420945169236344794473652594662133786639050261320868026226408836142199051632360192654381924794983349381156593741021795915047076243204447999775799115419369703375882627392133060193053273567259265884494379303080753055176593209360601226978103336375955543314822738978914479910394250811889818085916908843738884479375851611363034110143235011196855708161143825773906917183158963872279698951032307218288709965759634261131315409405349771486169448998090608774644156312379080651020483754428509510676018973249901779757068132394110023661448945481994410447393764142049341113432594336833111586414484256021464940827579131628931257242511234752335866469642063661271208281502441067428320863567003349131229645204423457366458940888235896065467753106906111616176038736607443778707298355478195164389277146391125808651814228204121027036689343432439857475654312830189603194016712159759500167326191412899238815837164942454509760958034120309215041058549925809021242557727291332391846972750211670946356673713865000907525136283643118815300588471049932819611318855377691271245271567090963251420344414246076194438377022823518877766199910373312404929643900401183387279939743104229659707873178079167575535763403719427459738229569938139193424120571221522973500317913850928937395695098850828297781621676751930877922528894540878739868088189221477279429443130759030035875198692626804745330700539306828914223569724947532671435018568036373027626488571455955385405431583726569188752503634493287393390990681804101383940759907825815619028929949871932655382655452242871822845686959778907507499207284380443540516508196385642271864006590433698812770243993071767006844791452109564862295493292057955309087570265295641308012475540740451874504793156711710858907801455695553972446518727694638404288864126764034952508384408816850790046919894143089249093638830757992558981086793842229125821689219380719948560286566046043514149794536824035294756378834703872940021027823190193192009299262805453404746287912653186379442074913489810675753300254405520479891042634539880206529827296891659486673003502081980805705132927346309126716221013484634944855141244300039229381228178100600708738469121743667662893530222740234859985879358218680744439190447691952898385946513465682430580137389311682548199468862217624609467452984787532429665818285722083682948047190822184055669327997658226802876428791532282834646606534428438689223693757075845982115547733269580267663287667238664974615444663566064555082212524950754671537739405126684710326218729178512211950195713811416995084054323487577687279827031634609380361596757394565145463044368884958639477377496393867705194575542289964326875529380802756408461884411196369223802487646680684044374816203887950805657735241606312985341314763934055915142363466034022813680603974453138388404879840998181722982544009654009208992341306499348512546849564306869530148220354364557015824211435236978601584799304020185318408337223664477195435959366295108005669387495673815861949499015999309600359714449973078131239599207585685044083444250146826569612770215974692192256102412049456129131741193675481349610691956988984720828991375577592651969333268639998921885598343743475822568711891763716076043213879281531703022534231643240778053251260492472258979506664569971293007923984739136055743914683955196679632290002740386567425242063748071195675951772950475963103989559501590310504474718804189750485106954702257591489339764080377907190425091530256681847147824042602448630135216536575064317926286254197765470138293720736587515368592122086898441358051964956317338531420669719774813751383917529443207060927999065500161469726604374726719292494406164053723566199220889221525997671906753194032644942692666727163566500483416338574647106795149522080419164069456524808217157676008042720783942652247982040407175159963569754907077958932765527687002329379714443782954388144146011849294074374452280398742499759207554676133415211053547872520401102639408426780315065260361811413066004803070611172113187174324932688259478945099819987786218640429393263397985700914675567391293750304236302626847304305411036596432205121193099961913170715849686933188763574056829773411731406320520121815032380159385660035572164099717429083399651287797480391162130203673958891628167489355677553601510779381277394072336065953686617067327159113612963563981971313236624391355695062978830890829861945518600377331693141626017819950492541022884909355275982831126419409298279692102666541088148259878345773542503016480192355928755287130765091583932199263546597908275027464045953397544427144491900366556737639486940875172300933721635713624223934880088170722711288566102098349946653346545599389526430737197557813776924347942959546618534260520328769053903876115086243684949379539029093160159724395869563589841802265670165075887616935393613191063010833767934122685221842091101013838014600523892620493712870805357781161611228182154690356897287079832225433006653068183200255380211462553595441501949098804066753202381436923752876276498851873122841855505297853110132216632729348244009937212715990117304783868125191651289420001301587516714254130942712256892360576106263344612530881678326521185913375340314365346570060722723358534693010558889057713072615052788565544203108918044720461980199275548589231241535256355690506720818898774394777669346344029053635426936014258761668237805720612835830915985370731616431714917797656726797387500374884641576309507732337149150935650098290391192565590946032609824545253843868952449872652501875963963496308003174496744909000133586947551962488726579422413288425722936316316911898874191875623635856964519741276406446322835866011477729386732795262805406750584890298073687634059167675733397464288874260478543558610861786915434435488296687344327900770008266301128402480877490452879016361316720656789826651661948785118523006414388597820018932710530595267126174521973673590631867288116224099054871618198022626793091635839100955163345770684938902245611372865015940037625809791215021029168598326745483609112662229299393502497011554231129147605976988873120358318296178214464318732348675954108572342210227651372589187479925263126479913151168167106304078717765513257477030891342347112988370316672288158913771715430194271461644911189960207712898919464143677929819484979102705996880501800720170450198886117808437390575471101757325276174468240184603204285583123056981997061444855490215422939429348040368672531643893823663112230104312482934619415624102128601371465095239469241897496115545298804821830948846779084682634976421385340665933603626656323067467560658505655900679561813604107069901902621267938495551814363535055920170589766283618975148001099582551753924880907312056291881009000405509572348671190965180845309013968708427739937750436767128512976637702228914960146109117097231025186821953160134728326433996179871025447707402502799712606508618454665392771431288064161798226490896778045095007498086922030861261201898500332905877835015754194368997590799274269165268878548636484639872854593161229099336525462260103938704638042530839956760984759602442461249542972684297749100083137893675835793704868483581513681557847395606448674462197414545881679569850076563072313831452195178729563350260389078296757673544418725130513519125580866216037044021395157008071275850314255340985435188396385179825614076378522499617739556797906206616421456917386080578890691692603765639329223502367318620933764199468593126471700124561519036146645513195164977791191247747018333954102823051557250501950577924211678666069616125763257920986052058969068120396436161976385683544670410654292523275728273659262748290939958784289968844959858360659497551557187604835230865495163530179659922539713454905301463113376034087093694951112035528954860178803323220732735477367142765237475653623458724228431672617212457600041524447195122582231978736298754085901783856362160735525422302311229704092450168429970948743207845110916274788158037820619459466817514475680773366445709551164648851438252038445989797186245501496641583678725140931977689012116528635187625864651042890568718098360895475870615589424267799747039625385727077819357496165492626716338653657780376880175469279974918990011750510896803506219475310557044255766278665851634402698642592712073516707154047522664895357249224371943752346968765860672065283082376334229749179193535405020382291062887214766395012356825497410137674089925472354028438757492096476988391727960438151308816619840031588831274613495744110942469355455621887864615693044144392527741426258912528733248029956129900095139429383611680426641028685453676320542282389639687577114540258916898787635738326496691844327359161847106309535753046529971462782268720297111914171523696078211498537348238409507318667350153219043621331809346873872853425600581160419364938880008842175528228192300501974929668693056881674559642116679425686837543349425254080245247756959127828455028122284237698576499513057454530403970764229206990182512595932134761303649857194027999891068606422191832224628513883487046830273420181711818596608424631922453039313891927310453204777895274229855802311866510671116850792453049519049551844701470348439058382504384866826956158153948165218216193868022247299668116461990270070625096488388236743944053167106767014551232676303720099065472951263180311613661522668207647647001896828035068924995877438586237310730759532930826833424447561892549891895648574518965443271080884425069549238764273386332553197081402757660687677916707566018417303651754954509862856319033060067888289616270565535072213121961997036058695717201572315344477070564408836658645232732420778432418846597269613488449129077150558647290643934832979311968528284773695552776863218421975409223251273190531209042009778137517051619021369245327331624973453763391106365526937280931032754868739982826574863791904621907844034169254952774978476064138027742945285466368385651398449071586287758582450550175162474965944147760465943174526971944265521098681486460047302714632858512719398740387742567976173608794026540962277693586793199377591673011193338483923215884936407442156848529865284079256606048846626925228417482930802919384519387166416033220604312922982153090318882220804898835356108623393159473293129293874787630796526033793859264551255000451295284346664222083218422688348016523060757974395305822585540976947535467272782459867043698847281158308428561036832625774203221186330186906826389143412675526340850884732871817432173463293866751743264670357509684240699009938898443050570369926642100742222729873412152980793463094828123711479895153160980703733724075646682132612091366996025549733111876381732110899929882106253149057230706822093000178870569715624873868174878639747634049211893850708786869630164176378624339881702437761782508554658406566564099997913322534182961955933580436955302512200149522005079032967002238088655107427505532450934902625829450946634380135112412917479626365787117169222342262131688067566920665055612262046447633283803478314201331846772735434270637571211294844509906483113947316670835219623689298525618813037359485531055386641842475627952755281604290937172776076808785748393359510104167642758316133228363548336093285166935023266575724361010830976352907713321368056834680388465593563936251030035557774500081665748426369571314725883118693404708505113289257943873648075384122809185064077523526381302119534803804704464719827429478199512335027095588032296911449722782178977328791369214096633954419677474333166926223125101122572272802073763559066436387138864758751579709764971848412132488354091381286807936861619225155440659293715693099828408017046887281811861868736305757656148820781056341859440654575775300195695623832739301197619846807696262435445295928571810053796935178298846870575283324100594304015261106755886882464805605938965778630473829344916268706686428697801412745108663042162591480142648319155812861152562391569226679512295057163437335299953118509495947249016953341000438474160870830204444888692086154728838798480158220042102404315231538122074743067173803535012191479033012147586352100972641719392323761951156360227860154095866306567436281944148953030840276484175327563596300760375474527315698903238341105300129586788943586839567427649272115904118103827251478459285804215282251298077099095700238206993797875210542990049015807010471469021002558562986817091840855779415848650178322951094559891756575417049029102663230937567175016242343957037709629200503041364158171833713415667495140516838501296679444318351232095336418526819354273785501221615677218588852061792835137385414452295487755233474110444073448319129653682316972363164092031607407966714254057192262182010109659881970978342410523928832965867420347985206520761753783259422386935644845342411906808460974720773231190403183404884294588793158827933574037687059062435232836233932981811756438260765988055437081618376536105270617341328501471052263654643676199381890931316303225265821012147495901028904641427709483711117342543927128061786837949130950007559647888540153744168109081596301282336739230212325580201571977625198887472090743692357058764527620957621845932993588499268014627193858214694394094709840674132137458566480568588337567031661924969771127160746898619711366232604610790499201237479573614832001385874789152009418599934738375430134451498955104080356571987990776925588388967946436632429515813536802119351703564006316361655682840082898357474077392168213024265070219081794518551525196066307906898797628680902283513835785974602259027419489847734285276985930040143630888617904156377526726384725406224766860058285941477087115653415363592462962748752647593963007165211250583656995374776996323390184121057700515966003641118973103862080705272680804497624155901577299706137679401560714558076668917702474317683858710962132649357498406817049178216278314415616292572266341141881481483039466208668628133494610742468947606255349271624754024557199786660568230635110375479292809510003242440288556505634568382941657654061969948317723324297103415869991876927262140666222338190165167889493111901139941539524317896992992959633106123799160170594287414765298058538152240009229769322653676664875126409158987502701727208301974696104721402699562656570139251962160663611192526737653031457835435646017212545225896287390186725089010797072939570622924452638021447366632385963654125292727088585101326622638107387428230620964490241049893631504545554707542719600285466870418738945194189106772564193575785711023458913202872960354865518112593708777899054343237657674079966341180394096342936089667932432545778300655259782868560173737193880197494565363430286625813197738453156095942575850439198073772608527534232436671684822007591524453874106859466609245077744955607730866882832402077568220038352803752791710227490552776157933442811004437479501432176119340284836965334685607205491157192284518704927988169108742700105225393847351901538598646255528420817489492428494220895628269563490189178074524008943030487276974993852713664225958121159009575286463299349513063548043085248079830040029784560126990911961936401816437942980517276819137818051108342048722898328492417746966382654121476989576954834947724213881322345305704663334423038668656370326009045522248841869286961796452217615866134355786069944366297922030690250606774043986945025106160240339388080155313707348191795353884250780494793115174291577401950922641777837932517384396811294740174668504548780691796266270798581307519544182993737406845068001861217448795527304797918985966936147269910321499801113245171979994336491627180063553187506145163627745003044173842206408588071067715130390904366681127750502194319359967316041056195670495407189710733681757675260725783009866603329952824742296693746844491243118978814416578848901309710306476876408591170162259620177049904479667053693359683554082499502435838449935987493375511757788104477656832688891114777511108812355648347033775047711712493966078117097789391623300265317493371493922306738037911598853767848072101880771835316245601944880739404152619917943269844173376369378096488162908562241645079691578229665290768208551234011066279738543764626899417417299672976362050229795360258131809599025155717947716316899395798092579785544802899044484514717058611615066154036937804553757766242364333841992746373804935296365250300131883670109006317140438915690554799582657654129299720809288807515824175722522463119334446124624778382254222457313228203625953654205857833408647412346569918956103143777375841915994534736648775355535986440772965675961270020215930584593699492763364425231466877301235175970675506860286992177130032089564228798041961792919609289549961365061409607509659069405225764720244018781468612891869323157809689849267864743540923712461011331276393522898967543432595687021214448971450093498427407745919267196090177644764525806494208893816210040028721271564410568017597292630228680726090784762349764641757322789555892817884747195757300186461154969969798266904736120142958898590427527872535163297452077190134909848421789171123857444057010633250820295183884452031597373092973896491194510285825529844745375261230976580466557624380547343805293259013988639747910763551125000660524850517597389429862343830968908447404290881082764937178484008141055936312258844860039690118200690215485193765978716702712431557267632301740186341202181277248933625931768761984347829963091676494133382235964576979999079449379760915364768826571984831058963507976294066423401571053080670343656255568054854276447437904745443758055219909337444482996720592800946628104294358150736140256584276954211335284980086753913219333801334611407794237158545567129679301270999384057043924928806498637558938283425695949375374906039568200541861662826724332823761021488766451761341004462631515076021951625303709608751100280998880402927509821223306328589228456417018763519170137803376067909094941215800532575729310235962702201347583209043470197656886489691216318453781587401523182439143967238231185050144618893225260543828052432358817391241323210517713386399274015270297381370367537915189074518209653827675150588587163020164499704977609359915854574972097039434324121289536708476549865410343818803367961471459367226649868073658721666879558543331536068584642446169461060620079613371089086648664708221988931992307154387880260939372561815207368555137059373453541721756476065504846440597776209725345286313084040234908638917726616445480283017835995180796259842158597206846481635900344104700205502499184302073341394582740126810866978745848570850013124949532449052760942897423817591324443310592094191834827318329867959965406398802186049760781469948936948630512307261993124462837992585951986141246835774111400593429059500852608527090609009698119356616123787590400530902937288883037972658217788085914622110267741150690307598352504750445511281262602788561415918288755695716161560052080761123286660551315847135586508749879865299261550530983347560884279651975117133748703185367099500904837292471176501928958177263530710889283786279111020326899093476970897585184012886792823232244916209869632726353642427257659791438749517592647055790426804320639679625244752811626112030350156614555381535588723036356561944848199955465607774635836081399432868216375715312660481860853888470708492310402328652227155696371463911379744602551997349092330929539318738751437746729531833754142284665289893644386881519767190573841858565293112831266757920737630674019892843903997888486621810931470135496778472799095563470499526327922198262683392869656302624775084451427643795090325075439169620747863668851453612321814637323519211160266235562902524026203817263720958116492468502232955152210142792225958728474047120594891824885730749516625277170168479594377358460025808858668020600745377836702724363345372351089524311989289444178092932958390711957370017257060425596122331938164614214094349388272587948358935207018756123962709860405237050823758727172270649120376497846299199780792083509253846199636163781412177106219720299096329927748124633622972549807881778244974089498884393320695639480430651487566804147707916477381629147840855845235205709477756584863335117289084829498131418357438810375213300988314279889230462465058995260208510836644933422371067306263968077748646528610197202087048797942998289758733434406296840212921899896372505129547975103741477453495493912486170023672370209585715143210445685119165680182632326486875380012317070136969396541070396312213656499255137819021764395248549130071281540012552621211453505834176313832126969674052425147775207219234413500692223570050608193421685220150899201568508123368528359088362260083072732173272607255363496518660081412247789983042036834851287308003983991773603011431627919398984790533009671476014404158464742909954494329990605267066421282469084283547274968079936673856248753278055771777204919038568236265231416480455612305755934742558293926208849226974466672513250893950900751424324211467457138360908728588576497276660333265948210536374851223037811692563319629011700749692034299069909857789737593593607834091403441842633386283831551560173386938431561979875168987997403640063021704503777892415770695406341213516111962048058970637698612661912664611773338662294452729542728110358652807074229980634184114040731706473357873330234738926405593057131146562097077935013625474847656830610056849522029170778260735835142141484325637083235313112640275084855358920724179412720220609557104455763853752465381352890429516721333316961713953945568780968461743390461051470037808168608593164625188623657616637772540931755566944821726130545542812109330305075213897710925649716533192937348962698346529322792818936852851674758528507851774769772861251729685039493325134804736920604389742446172388088212972229349515832227306091960546680295595196520578089522648831874191350421518754213549175069958318905126854272068509135454805022355563887795760245770806217283343186030555047181417781782843358902551442023360723422258108201758283375998817629939802511199750632345993897952437251152797231664189793325336427301954515803582207384304695021171338672390112646258605174174388606776854303391402511460609748928978629088539433877191285025803965503214707078090616764918147210785843651439591255593321531737216669252627068257695592931165340659957398163858978980296689062308946087995034020252641900384128649555023201069608642943971564915183594770294189384184194685195141866325326806308110549729477459638208310345775567334929678869900611618982598085727284202519683238010156513960252363175649460156303691072167150483459923862267831348820326119587018748639454331193751353785076021783173441013720993676828851012915204716297814559399558329722623620734275222857249572512331531589439371782386422297999880159351771492562579097134904856177185550281638156026875273008932295642542715372066821418518041052870742876256967368475378532721566054491680636994778351383651133955724476233106763816365840898491675778962142042808313132574590330726814032560140857540335014133907482016511617999781664702127717574264197826078905176509472206510606073225254871913191228882063906166133533997195756226557115202296948675478464400358481967609524660662009810964499124418336787840668053684144037230911341227361221514636910346649647694999723529672972299930182731348353327389560814436722611833606165568742196974194247943132511554905267769595486535277024701308976431095940151870127949693240662234681382101126794372152486793417751367690090906878017422267423348901232020526791363440523556519822235204333876830592435477796958486361738990953766395749102287145294326697837291033436992522377661103723353109370240963365387025014474937603994927961469790805733927298100466777328145520676724889401056404155441205630414099582043551849260965679484211233947181774763320186304696023682727404055178424755808202556423263903825843226028410975049501741039406832433530422223865900851235875774784027202517268746969418034904651731074869318296270675244937068409525902634083108138637356359399857377755177742114896297719833263430915447379315011819589245357151988582918877437997114830904515908922414358233676888701058902062355219399139797242218330387360366745381134592124371976820769165073566579061201825673684069486659067477337171005536750735605176522020324503077712087199275549129583524432662024703839966433617768184715930112785169403721448403400708091933766575310381327878515538434872347027723183349214708693286899987666500667139609859255901415271354531593004641207554388458799582858559453917605109587442735263465962232620675640615371918046765844319186865641311859636990021582657705784655513234785608580590010700429599461575276999515719140116210579531776470958286183582662417667826505987700702675597917401913033510566354152951749339566226354884115937675421859571680902961974238407676853404795776840685976813279171104223603893626685779815570719975527078416522790589132991922301541540208486289052463146458046239923716853024379565106905338415572667605598392088766850422861680806854599098606459048894219599733859355201035598224555074554707371418380891489497502998782116745586817354388494575962153083328067250070434133722802213426937159091030870217397147409776209810485667295241913352507314462706933432978573801087550478260577100480969531395001161165675985565333527349500126648685937412342006794433950920222727524233704807380612073404830537858921417994517393610780350111566753486344935018691816349440824443938006602799197639080661685489712342716574391189626964681957791098505809528285798245439104113022701392587745853047716073442557078657088609302084863564102940642958341833125886041270818741797866777238527834541518305938242303834009560325352990592258435353034995241638841058835835249301307010653952467778258223937034061031631860898221735231733994410751227011464579240590833018383415976420495848617445414927119320988184440995350337310321099855471543496814906649440451366871407390067445786107255946761723266166535536708641475259681634507194530450512933546505034554217935701351230214741761520109875980858340177494447803644235027421987335210066732087559961619053464423652486869089650862142394605389757514024460420304222562822133727669723091403889154558246920530817549417913737672956313806045478408085974215953200886695857240232966522430965607637162968593984906667764246067654330331737745844091271110307350894284914803457620303152286480601860560540483752843416202312223083515785683993959999320069781612993669310210650889363267585635467103999250190081249727830632774228749143296462064289114303934230364883014933516024391014862495563849386180002324118295164324507612539402820996860269213695853267601239305435952102840786974181496090300616416498711542077211922825820364732211158816286966767903265009243734869454455888769868222064337577196805919162309439527428916482866273170641683258404336876683749582665247642881080399697939151005987307918132994037574018587403052076421437711639161603209406537846041921122761663649058157112062364745970869748424728306128161152134285561446345115440307104839739191007468476467441123197036290360479279940472033989641215884723615091269413524653051079341605172515025307688457540370212016755453604843774665891683527713779704509500091120968216302183693475324809472332772250188395431188916763566954600822889052258450947029184669096564729229469832522403534898382074938541706555389729282402553690557580119729576348413064675678523313190017136167058426015453367532320025863253108296729475252443538031877552204222826640113161202088435143468502158541693928303111647429642633380312490757524094413216752806916779571418653528598869189573341799789082075726759444250760949445716165400226564791641932804071534433212189633160592060661504707363593436833312691481337915286002137306599219628386798766612057810548490223656682102313482503311574017339287695683490476471609306982106599591202964901342172642236072522614031857850047560063121010282307608218692012232856499672384908906714095873781084725946110992123837640423969657754586346516920699916542068324495255468677420365834251882933112029449429136134512021964667232259568297756033770484903424880444801449603635631680591688738954076931848503141151581513117893723256254843746870247700966541669615404042695877547231368309878052310072238856889735259222395948710178964639714308632582788233629681639742679253186248732592737736574534089208324763300270172375502174622718211799143666935365967412179324411887475727272305032804829206563483497778113756657787014652290149894872896857740713991149248866089350371304316139078131716572702516932575360375449649844510868264737999258571139433276933334611662366496654392782034506958489325484486117267317478997450021458729463718667710962499877885324347795358518597640143361228795179810450855367056150688605713583057648458499049400284722534237268449146931850068517442642667234981107187451621196320267717704824002915449196770036005380158448902520962690426132571871505020401637460847557458650559649313738845603756577598280827928570747109729455523806053879938696808258705754044223742829483767953380158735750045605606690874438742316189082896901071832827622224535583346300962296942409236061298238241235882448409249039852225421316120348356904772295678379579808167555022638949267939626052043354682633421223294666358956070705653057366331005011703481971082948486075951504653136990783830473374474331176157593245931929522549986293674523588159983740556062547173775998654688926940074776266582360607402842646745790849556677439440449704613005386422219985998449558339641284310043687225958236338474517280666038119720250832386816056532141149573981699421936783476198857613917643873259306020105033973966214455807374210898697649977775804953910940728910444390495879661552104561293410795226831273714598603850029864358645773678859707160073180589369696983711359504503460721589613869460051230410492740436610680410247489869530312594026675480822506451052718343320257858128735078306985452365099058173741900831492350655442447211018230941002581021766327447942968827771782045875599557394639818920994508858114877202874124140878905854681109990672090102820493529227003454662838267991460572080185596079697274091783018320853495363289601135053930083965858005069257191791510295488274343382418490355805590539230002745116684303781900896313732464892404285463987921260890539449369046788875272707177419231926598693958698360879480979406233917175872517462557130331828127120516884081339148975303037588273582868909586924947346841400702280402591203563949766750819946947102027201704158017367165138935705654495276570459735205212584928581919411448653773105783195272841460081658885763736465653374760999227984539215872330193665459438939261564370089615810570602080130034461885127459338978855021369381322644034126159181111264769564084553523557821880807024784156324560389629264896924844492509920998145712299840578283893005688884710937255282551972262900841457323468987488173375581540052598708892309101220013222465376331458909050508899010169472174127164715611054357738077599444094336056683787911690733301767395986520928229873663614842422200286809346231374485711604026820519946218131263394633893343433048305973715710118828619355678835770335689714393394476707527346038380123662883015386882843312243605316048015740829158853004145792740826372933429949230205319440268185443298496137988641401011515699679636722176999278199801581766164152622157737238702205447585732113132347863001800589170100953024846104893159715760902169968985530877985259665728876940374691664338304252827105479213092048935964548902533532181684167371211334181230843560558022551542121438761056743429117934326866636928553384816936556679356869030381987127588067163458440022794348135797351792249135102134987898914112500411721858117783450640765937353493424716125899408715261214358926046484633218503438558968868230068378669328695801797254381023770228832762875087258108673257683612619288874793799276081638507557461274194225066997721378130677115424695058295748894420262745949239515965694911944964403106411623088244122822427100747600060530409568428501148957974692998312687534895501854088418118605626517016400509523827928704435738543009751725454415100323089861655206959600746474651118645042289799596820646542449582628210480071318295921221442304464197207139237346152011645937517526781352115137399439923394223986302555214720115530156326229912054767520700006122756104701275286562507004949923429489174023572489005684457867454458487683195277512427281750870512379601960601278961517255832294209418177350874392889341735686171227754386620503825659497717877333294111609663633877408861675379481096365352514770524114605385224178288271920988488864360984747932967528778553518141254817949025254234698876014919977664349337697576968751387967854876838307919288103291211503113385141825459330672654736798111683954235813864593862216646200243030357219247165995865233992921911462488743577980090235303082958399971105918457984739609474993213119412710208352403599234148936567565685730556269096560152036016051746949189052542280673921342144575252844820564480347409048123201668530656782578123026951636772601574612204963672266903013666063403077450543807298602138829052582498596883086962128774684595725658060721058125845943540626575832906636233236181413260001641265758813147507349602028235498741359789779424167941659459403796497205669476921884546112385154398637255433195775818445653588860308946156398634671101025332977447094171858209520309247975015372766052249635899653032448560281245121939768743353612036552205736070381389811167642207399294140583905853223543103381912864732154177771029801709118974927600811122793386187195719227097396310232702129958458567233778897149382576411017247948143797809556573201036840306939320961900812168535250834488321624336277441004940841156677067235411463108591535401321631336618451067805645797494246357256419543697614990524815738589294177610554102729785750918420163050132807035067315633058031713394323478864618434436474408011061345374043379025950135928402890077008290967954679633737712963366051158113044521306452531354580051392006816935497668292127263026830328443817357938236719482877157486141917671498222355985763099467987491335629919566853936612160214018055187514605484990849912381105748460143987555724171274987728477584947322652368415371974492964911582387781107738519818608843135841050751254257730593690232555267670600475587359486801203166286524352428293832603541849696166140414060893342311482505453489590553341243484177374662666151512578599178352565139113268547617947577432534879095388290626392001111491356663072006256851447538242764391929503348779502580831199559569288240502737775358435525882048235394845708190033031167195323666866625668960276782528265082411952625586394985446917300512822171760484706089882978514429854220662906620957619972674009360448132809481145076024608685005110657604906975417513253855380378066884908167055334745041623730035139188901471004890331783932436059337742337217275521531958891299637635784212870702600454639402812700045561004506256766188575115983019724012728822295361753190022918281247940499536151629731819348121830952883926535899356574671090281151929841705413366615517055240980709695045925251092951058094497821236116068865314426403887518666241326222662860646700187168435560704674389090740009555007449046604628685847373968860036867417922650906427506119228857820830978261388691835842184899585446081414307992256375825004986606210861792271991543638024380127207036732794811957542051639362550369484175860170622312538454048248939775453163967884880244493931847626525607216916664861917254970571349256927316989782035237557096918732393512632399508672222506928347256887450866720297518203040221501799638731114394912551617956001708848525646376727195999737529194884140350084643874154221859434794056142704955505858700121965096774603267758239804251057953977581529397478385013382798953263528349212739192203416319711337036686510950749611955702771306029040822930080297492201104923017356983710730639002371443410797786476457184070306180738639880353320379933201946435576418108090927800708551558463435091401914551532650967177270203037896568607669090714153013849069578441073210732342709154032595010741688410782242063056669176811803506200448475566737105874616211531958386138711297142423617097088079772494735472081196592254687862764239656606823648930593834305866305260209943143120936082139636879933114411967767224084182575299425268848374086480209053435199788843709180721598835353315161838529206996195602593325267876003331036644411818017582446465353609285548871947347561248826265581548289591788256805681748291434693356347848848558528358517163297405590540755727690519828002873270890799990643423772869263119943244772039877021361313931633161013736581714028448290509923706786643094314540994702709240542517460306474143595890452261343885071335674211081813429998514355272857190347719954001280846649064754759314898724985247619478827220155249097870971182014086130151134055053697534207226726389897300426709316189367852902812056877893197815668491434375086746388858011650542511845438850058591858127963972243390591643348971782416370460540978978724910117788741758503879098691255166389829913908962139533893723100818137339968414853351597171506034753842494416093180226077327786323391559898407878852993233948159480103686171231803775003193308853593196919042657841622100913373534000207615392640072222480376940722086498466462967766478599226809307850826471107946746776723971139131999558279562745796991220672250030773092747511629067272596952998105719840584176612848282656879504362265357970457926431259146112191044960412420133699798669228956654770698043361708901125688594804125782769807549356883362213743506984424558010675815641299959845595834154837700175116961358803110375773167619705806785033012449021886802422422952167093062511771008374598457926074637332330546151291783487033352291659825536497054640945710843351503007742545988206806716236352402178183602909172451083598873821975040248198265215990063874009793625172308279464931820792876579607995970342476243409456804430365969572266910089000467126386601437857292866069943755525791917903939623796279024828156212034074187164289168149753918252281849186579321948608006565053073107086825626390219278498954479693603320210528969214140280476845604842689538185542577516979585518050512042803655732243754283989620186603467271337770049268240433785377491969585732160272710878435927074154887877444481685236653059310090106070002739621281685115047340358032129722968636115565607494733612334119309780352526549535145324908293841647988785918371553258304084260588692315439660107503478835450238734100554476624792085020529560896709926702251131703214956701316948216389357958599805400763434663475948126474192825613182814309320465110120236307601646383089632446995308155767000635288578476651038364466231952809582251393697445915381112437517016818669566105786803811945840346391263384729889098749115329469899918378810342918230172270534020053094259747428656099074047636378050615239621274008092821208836063785429234428631428703301401581918764995228280750605610081136421786292615989001019914322735742530623797848941231332738145689141059275906383175747953176000490001163183692944755153958228253962769110081091314352480609667326677550285906465402163245013374590370474886230557487672805377708687620327581489717006106114746950650573823178132961717415905889783110454487214604963401887323717027456161283832936027145281489370434828418279092921556067211768401016381857927069887750559090065906020339358537396631905736756889256400219346206488639092645198402996481459962575434761101431886280414419997426025994141343767464505661388439763024262458154980553550582661736750203484336395606754075664757501347844390177061453190401716253096106226975137896593677979744697218734532927874578421615269814994445881164292184129652221608073281350838764802859546586724018121242682528643929979324484071462247556598304765499983526199861631791262631600312690237804825707455367874513967195413135002667056193155218665333122106716003504459451334785764587434707738579442080945019790250675479914283872586359323336978438966683994903380778452895532544600751728851597201898173315923603534614200563958049543370403818631230734178971515180991187316153655022790373484476344315270684313481541274689556570612013941615992434247617362349522369599917404639683107860763429087987239682435158998415773741365088665339693590543788497969105668224777422752259451852772353513254046899262838296168776478639746581166416529106276342746213501772391930039484326992680490795965817427720698984846991529576534805267562602739391158209684016086151335173642070764944610766296685906558098329102183483462626993371095908857633474832325744014871764294355439812966279298002127738927408213567353406886592906168524921831082179351696985899694060562035984847342875395649220945036353816102225395120955735156332652060598072189438146437618697192245757984855207420618281547277860957254778580055543867350400946010136134279750120334741772686228213443635373621926696670220776519454647949105633599224519069994779332007741417737501345532252761291535652737048969363041640220121163856604778281067680480934174644839558931714778980341594995147798475378304321103292473758429386544406489868510374620902998348318348793636192925695854338417541840360902503712058726108924175379241558246714711602459554631391889305090424612950987731924560595309051502493251173371752064492921194325904220152291631830268327129093920272306014966166912766564873451327790469527372818140608697582970033929847953048234970849770447071559323009958704731964052583012599306790789693180119043763615964236393952245788825557357107449151333730612012574733959176031433779730982327225491719919987764382328621087406873377966988580705261527126554825166701811364201760165716577229448486754947069566883323093441617936805925047729977977733735974235346451710723327707321033071464484830138070453810985381528428069094242514223406206036984562145023885551795798215257915957856683117499206092162383282335801114129753634253489805764515126281572439115198703672884586088285423426761870579606046160094670888448434912467053492477739321499651014825964988173519928953475787247670086158617953521797847269485801897923478959789100403004292903068752448885717646299259585349525088901344213108492894283029868463417821438075210673400666584232360894437851107261410002979367452536208462762782732091670805103410723207017522703898854257050933097401221798322524825792389651622161808613417845653406614202126808882938739925505509317141947885818161260110331034017882137696859394035657462500161550561022313225420874941598818001304216923237383994010321151630227642263472107687658403858455607324940949835104618913602974054022009687705101642276249435173330923441248713289615417349234286680372679465845006848030789058115127263872543445736607395901049704756926259224755051709429480395733837956896883681448896268396938414418170461984897419877467912769677831668565684745956676630426321941137949185739704295799996980539325581165093815484294990142050686988373328659219228498169893041760218982090375949015924585996917679857295282945721959787419146054198405313095444875914434291141031759076175298111097718740054048836619715354927764550246171012047651138084755507260186740929901427279385490385390636167335250813699439224496852494223055021292009987696333351419530277033383458037654052978402835215367789739327994453285288948008951995417039391470019431527265793341446551100195558964603463546017828886214648931576897782282274226562526852309647648771455503519552098954165725654868419501960399532581461860084177454986312065623681737106097130621597414999216385612358291746247369286027977104965030408403306565639035075573291140474417575093887905406523287741627285398346812387896042771552641028101709066119376060979485305583166396912801064411100584523443160010320795839498398163352339550699687151236110712525434250620320764958719774727286777171782555173915104607754771859558661601887051739887697817747504042747256597469641010034329084020297021321122715432266164742071222605723470592479673664287582836418742515622278246338274131739147799910660646047852216508938061347168459951918707366086694771872820812095214364343560751238766997565975676218209160011967712542486155655420785496798776491588956675980978895653188509526431627150086231447792871971932954503595743421351543177652411640057440205898349225614473258229933464050471747398702583324684351596638536408293434026152064115108404099502134859378209845311460765752231801269008882611930174176483072206135412704141180756966041423380855936325901144137963198167798641789177480728141915557973758354241108955798166816851483874960540410089251289951245403986018730603261764372734565130933579202419369428396571165233712122632295666533053053693913300227537946767027742843152102439754763123860128088903759416335942625203457539215542514058886198917754508891572743746267405475665908153448200003736156826932829647967288395927983627636698377496437783601151725326126772385704103107233476099722762264065964864804968188963005954273415445682115284375157276449044089256008617879703952806585404764432336438903026963530565891364177047738867987683815349385433654759092273528214096067816035679214609261099338609013359073830867489841556471096756038036392529845878838903029941574770754015038182796936152502459859546761921350855193564928683293984596365065425178573980858035333995217129769236980927264203157192954047452943242912240391968033427201004258937248878784265470140158517705251164941128869053726675425007627521590511080622052363005130188343384460173036447931621457585592457404573111468007992676719848045462789452042960987057884452440702737341919954491646933259994962578594118567815346942749621643709877644241905444901366114807046469634316538434878413506661535616097244487878067307473549427093498188697797263408345789487591765155048730808814928314209155400890543134762603580137173853017042017805736579736372404515211934719138644022251293776210432206716171788342251012078729800958857227145260091564107906875933061040920402290708782549760164562164732686404670099749315146800909171844694761000261362948331217844266302872862184709979759118685922173410606750338256908598600419872776965112368934931304796560553946296495349814453898299402498922806569217574010908992194607818449235050471817252211632924607274144169976185645374926453880091510802667494538768450154736785509910673867129321910341321737147058086509562607960790233755457671935719684181759162255259818369306033534575061895292152258110856792859856889995049627125915717921870694348994916455090274213020300197339334725078964705615686649074122874410616614024434043177301261286992812006498390133427211517491945136213527491623882290308745097051732018348592147830822816941978084257031012483613818840149071423321129956334991788232322393674967774177795328225823085063099487960761143289557832065440407320145449259534578920216837919149179916563075912326072558909515619565278935934362654999041760959205203363542137389187524454357201717798513066217384070273099546106485574948974943885471892248185392712726585695130733393229178387751189258436381543967891071046594750649467849536021459021236907392592813038400738576764747505923019136223114713913254283619740608734286965264981091911821567859211472163592990425910951649356961771992640803622785689403298376993056207218841691856480647538965317049694687199560686959887488443903203051695691054947194675413676249182713478586434147450033026147305069522213600409751693789293032468823276153266867650204179803713700475035319084901151255204370875059824074278560210909977800649121885797073113768903824095357084326298947249772981821815320010005799724887068540625789274046741757272972826812290066758432103073171302914397585624230117950787701254864145300837758501007949075147838014774897107620164490081228748863196968879866938122284886200747659232564597330572326344988529832053358309232222708215644560358042659676296259650904875106119447000098596814741491320890726097055211885816357316754988283296707134691885124472374176772716890844028425276542594857818254169286801803481029573855682232547438192156398705200634600575376395222336900589398726840247217921384627259957510065656789250328663110198624939922443641923563668442272355982027138663489802786564908387854105479738534059768438175685903662910080199113585178466005413695910279482749424815070468075456848992165028910649760984133036746430970737145100703873625536257650622928804849103602128076593555350523136932798244164161493028523925326640901087905900414141375111286008676342779980886881476208038127680260034183948252737724223024787846928228213733588203604541157762041089797830465624460111836037906461454719457731565208233551793814219799973819911912052517869837985974907711634759988843903452328283331155249830159255636627706211762819385283344120690937112534427787230311002961666253940299508515083272218298521201628740442898488237517871369529416066086566588965720224364229969752936335499036782232889714381491627326031262519409329893997076804899492919754029665186472831451514736991097572935414548907314064947336866609920906551384976993488162928357844768721675407161684049421065718713850634230328910406027102052086836454212769428771163386604087954299524571219069081758060082758273754535783021833392926204219499549655007731886735749429684913254063863762780221682066302397301970448229212763909612020312694666776863934948940328141617799626054150798614771334214775691295469363757766077844976336833834419499313322974476931480188255202427409454627408838653478886578003676160980647710012939087032402277454637079274554404298212588100099156071298193847584287044813723082822927346927459143580714143730978090082724722538237098234445871007770194731706892807503578853775685285075877140268011127418069186693082386840488722815152484997313223139561010389661475462706578179776090090352088261355506233450993531480490854991904972081262319556303749689152497149647897175477139785088943267698851562226624356016241443107929287235630770961549899599054981699941183221351809429634096634980173644514049571664758484492430231615908185869743827205310793224313645561867734201159524776932471799340232327819882173941162671750460522206279466844185758004786066927404796171642956696197341520416287510503848164667673264496674455103093171200231083924157669443631973893384059749685836858179434569806956405944302402069468817844046323068938146602000446880588076047914483322508793583098920589845247127561833914760227214614741108724146925524391631304450469003475687576336637108183747826525930197604480511734775700512816519290178149119546416864623261308669238150976163720282176259661069525884547137798927980138343246234833216689421278807930270232508041129403648980538833730421435812285634567505361833380278148655039469960423646788696014206248426195511608873984213954281301044979225688143022160367228652594827627438251088912491092802501211985347036468956754664434478241761997070996006620190737563887389045270641746992245462126262115507135778092663627111142140510034863824101981408103116047462249057483218015276196702664967883717339005933896034658743657766031057125692445921574282785606190499515840951955878481499658835089350763016782775516093767754212698668945903346848306386675826020894615338709878704410158001857355915583984866377661065775668924919848326355875710323662686858646726916518188396065716276855706959464778834279210331983378202219823534042652995627732610587880661191167469175623945200330204020426217446527339956329582681771156150334892273189523828211562492694314189335045374264086243544577190328216797492617754070820033789466802050164054994419267044673440367537657307799961439250527054734944613748344541582804185498425500505594761138000784910995377962830923351665219413055183503021901311317467658118815694705223841025527554177810601829426942906871046386096426882550061690565020647270579621080716802369879024992795915686620266720960566030001406492715490134871932360853699152324190936690595288053717294833370712851590640393684432623751963644338212642786554802307120087329328659313502410917232794784340490535717662402688685853730529063993482345993294130623002486494820780236492928756650806994731225257590473995375851613075493907835695221005477875745884031294359496885857021469894123992450098892571573271691068204467580207700901052269791403020874339528158058592890463804924211370916572118320784175438929210933570754129514666265561673067165516766003909521699324416380061151572298483185461968972628659182297257406978038005248530722035340908937791734001966044670319265728596397082204908502412700188229870772910281461051956938590205436709872776669044505956499848633735944247829371025700386392287894409048321183933602356873292427390864269737259708295421066880962417441649199247722970931081647715951389697299239305730266900505394480809888380349114538630161908129060514963178036308095908567930515495366390976334150718000574897709072784529017815119806259564681262770370481229317129647304962687283535770741967156163095245942150324645752866035099708282082059193374639537747556038268744835575084206464366485314341285762813565518186448265401328014100284181602205464190657247663227713966681210629105530605116199197489657609322681722193436207766374998132847206907459792209339240784372946944577236124801116133576162118982245499775136918104243481463372288659331637611616233494275628037378573250301206031029275170552154849013641204095621988114599023169479828935073539286406057947389176147902135321483778958407155296866800044751964396370150018545930793323212003346217390315030680226861673325807116116020429923366379586211123651183645779548047405466122961139255234658448798347545018840516766449087822822660661356251608314581283895154698047003630567467423096333473303749172930025890381055636778026985560919134494453161551736635786829529246170997638262465773753111046698837436306345209918587729465984053457593265767778035381665076748576465261522308442811907260847256114056171771151030891551282142638052956229012936687111363280195879249691984586115137368060063438840702219785908589525861821077924006460412069053679831736471722478608409091811717485537100349271801088393868736140529778137174458815494887220243227845596821325388780706502702837946246818656984277799494377302348437001770053720725282485428159346840693452804867633845788174151972186241519954363084627297056989181823863620052449956628593911708043165427800487288882509135675050573650241864797959713899193022680930512081624069869597651943403548182238381971122932705656517855804060483436129612657238290207947531679380649047982743988915508685358724778803471117335244360313764002754910771702812653841631003075683350306179740247354403218433584998275551721294072109518590484236262682035977908595256690436429005186001541949142718399065334272529220321893240637115190000269426984546659250121498099279133543644246085690325467835017046989837309481678319244518014074025635416477292818692677827471629478382405256620091896188324806554019933488718327536821673788064986714996677272870643784663668153499335781069621300780355811016576846198669638731897910230442600373480604889035471263320800047049500176460436153091643213928669542135421265691860640281895552238329866585926811465628582069385278680710883564937479641946536872975662423765762587246624198344897029194008089339894064098073187999668947420379830465238524640180656494990388135944499779812976544016543238804703926993925541584498903647133236352778540232007242289609936463405391854671238469249368186584970789701285829968217410443285030703400173106167710171174124594395672763163824574464508463290056235855311866694029101658398329775721082346836350307008920893412153192546357089792220712370897447423992198648709841210833196761516011798127907708808647854091487987907797736517065783755013635233295394209612950438443490615133456080854692236916450898708875298364194504984780451991124614200155094250936522187080408998256501676378082232741647279488155879621381773450604022215232428539948675706835726242813923240172381488937771352706766746332940612412654394121998783505793544968624606779557985152218649666154596896403371504671011438525829262666496503187933238638521692999830186364197337934908487383031529729675813101020556413941448315870833012658767024039815116209274563396345186284865807090369067981698143050582088428083626608421005231665600342590276997550589299642616905302050810258958125518541865368255005824917491541226899724503807508853119531265675192772452527045386829851895518871189374484807755634479865216751971090994283077072452877365266672893198518428125869454197596779132623245767653200308382846692977334114375627578118740895858224333732137305406349717277728453649855020764370078234399448265816956525742972668646277733415285817678425586375065058640004628812584608759083211416743166608103255008585173326215253666233156250791021744398799310225580100578796237354305220421979805259369945349537228290724192030753381589769965656381814512658238944916424119474272620499002530973000528854404117527828318551253707184163805213303083177831322886057357054320568935707832900076860215247478135829937964196187422123774158699631847377825305557230262006729182248676155768076114864995694133601209131717684888115327795303175623784616571916443034815661275092655427560175266975055413263641867365491929462015629588328761758890410717463789118589713213474762168612366273892365952761134981671200343938216928355039930249364078856055681416566480450672453124714578677020165002185068705922335949855797874712125950400814965801116866861650353258029103759376491781441254758539310326667271623106446159409270015273628506838454103129567424086394537932268456024951958692873655194127665116839865351631885829481569554291459681685701967925851363170273191689384906480873336922365560385871407694143827302420579689580279338181163376554500289826318006570868651444997622961310248401063206700252676103604470945201614706763575730555574520528401128589115410371611799468541368356585993479684442777111147568102294907232081172510533132679806261697834101153577688569113020611964694194126152587568556360881950972594824213298615368392389942111021126731175476522406131088099778472618078133568524281482702294171078701322833394873075886026048983433425251674266435742683809380461029288277951251355754050223082307045553858213654234469828734812112532150409405800124969740849024248023668378288937298868965367355588997844839827797306946457426334823976498940585923276688876806559107928600205682541988964999606081905544885536131644596788220295902688222927392510893044307553918429200116037490052621261125465585959471899432300308623341668250587159748391833165949920916191821868487248425566864107183331050421849026553495523227300686717146854424888048743998953662866268490157134035028834842901060610293533933019664774503183406137527486062078392291452510977142819438036640658379058019065790620433093788911212653143495702502349099954795715902170148582976316090904866580030828676043025281716004232725053516077439447257193828249681300556217295159548817991012614204333674187938908255583995305904630468998592427667548645439312363017543034166219372695509441140464145894265661278037702604021711344903179324728317591718885149306250108641471698164101413544896292076214302643147607578759817084457916243244657591510790021526093891014956587290742703580683768273905870355128566920005385803417991312041664831307345121404246156893797182136790449586425848125114735993154081626403192239888577409760677036210914074839575891197767878963691041411829015597119479986357314731678881881960358207876877005332412022434463907746069394813398097027654753536586437120850617276743059349615671006873631647499394918749875857815110973813781975773132171953852567665252065941670887628415298044156264844523339541853485502814390587608296249116265683222385097421288900456997001986041073038831864831481768937293175700379204880662188196460896808270875195631346719163038868271352313074367743303325389729078637815176253381574151035346135974166120287791903566157921895609963670229182327069447648745358000359061113078250714667971619336331542960050370152301446830892869905563934200421260272851443004243365027319183055423761036281726835755934089154691039953142091553044842218694158442227336307306093333304383798884224106483330361186395863144236482655684166291426904820962433347116571931384787988653573051207195408221631302443505093879259189160225802288755458887937404927094855164503763187153837527792745798445463365578511587583510049098862840376502520972506707468344978115989173543217987919638621195035434418588925127805989907688401978135565409464276013438589182787181149982197273533397825504855323735669449456878744881034886775078538718482616627968957844000984735797041690605726337856249391478587754971830140409588485144963355379038931892708586667906036197477505118915930576533992248083008887407718097270237542799681379179674536307970855241757084086069145009679530045333237552032173773040472690119832110827010316602124256941472450827016398903428468410019177995591055515717936914577893416240277645398167106537717223537904534153112981723623753118695408085307756599951611849703170241673334383210603839095644774859610670210545605103417067976327571274232087003506769693304731732032155574613462303247221248159905681020551884295951856777988361745582487351199406626985523185174374896538845718574786605259631804693351920369818857893259040688660318685613230975656031586899952534648502736712945541256565796662781160716422197456881145605246951505290099264992574645873064965905988661680306619725154612208759282854569773483795618960656532579378115495158575239938109646275680722360107211815446624805717230920368586302777901085779901741928094624877122270229208890467923094305759667412638326955803791084202322219702182187475480055822472402479456629179343484438013427250268788199838089689925898123893772715308573088801925150519785423116493176538249010371106485366794524268718710979213429356562140237088463867625312792776882943426251804360559897360404210806555521157799067303785438198830432939383036049104073744853215024089335994119916595851056478428747801657563783999272360828696346468762408592590292019832775379961149307106106510429577016164470399088997647440732056773336933991934717172674359402475891747294177586879158055059179183836183774576492830259760539245219195556396447433659630983093270401612666454087931001464880900642030207169203779799384355294675383052116565208111120200985964086815078308339245134400018622054378561142306582516920599249503103836855424854626204683764219837962226466368087639014306737142458484568327057011151672316617301420880424757193073826673331092884467185363393009756520397675939104140305006506649518133399198662087266932988570243741716177526862482899798068223731536658297074135429616322587196931169478162712402624369381841837782259987793916009563966120291075418388937017742488100926820038207967499367352304961542339982496184997043618537636731716605222063306805463182235187013207882850017823828143455455151091088799835841803024649411322445142925701118125145710765195549271934230089262224642375024007171565305889362790336806792934731390030486728648032580040717932731483996577706497928270686902062481425053404607778257733407385606637874960553402867954284877017223564439889998370214402757583379914569760281769661357156134183217880698239981368765498842701592409175561510446188013437539846565464005754280232014384338248578329714659475860749441708966225878782405307288539307865280423770700269917122054475614169509626446841341195608644501960393810553508631030465950359753873703045654771842782212247612884723628129715225750457290932163277946545076306344784662451800466238063585912993187759758691607900113384246763077859437545460206438446833402718520576208320706201834553474080911699529870046770717699745853891329123817177458637142678157803186239686382127532713733637008673952591705909408478677577883135207746429898743316369626253118058589752026285322513027737837140992492144051673708478619961700594312608032444336232716123023223843110739376388818262510741769621544954278029303405131538514070973362951075657628100746812355665247032083954193730523701466862519252648780897780407211711699143286781265443587498450787076050752872813824295852869594196260628383558829707692566055386381591127401684259006992566611913695654443725366860342815806796786737186141917402625621697021542883957201642398751731816461041428144160990753681861242008702722509521184379665769648759368913220227354621580822587175390689113295100097506665931637147195691742226075332440097126869005917225290642623468487507057313793193286357313446250902565498512271621732725128459998646354358365956216464020274270726170840119791492868070705063043777497201860964567156250233307204016215146539043971471482375478166399413508567878618147245823625419467156839203571746565658437277909626997181825831997830518408282925788574633311695982805760089451056992678103368141278121227814848985418495511580948008246402536156960493203718428577192120557053151151489941273086454994693433039643030320168582833427241485563314964226324865598955687166427179450822355132284738951635755930542420584677380842326946817172363583953794021601666881749015833991952932556653895569506164147256876102915840392484967882069054533325172871464184217979143065726682668380329926046212518007251455729428528285525323786290969665085096921609952567855672583500054893649653059771631484756126524609630380501149069491840458327860622061214853463368128522771962946153751507633664055806805783061551401351736075081309740597613505759475295093973913308718574752426127096830621630715894636031620160024594604373339981948616735361453205293117801777227202561768813279295022307846293572599167574819495060436137100190987258059717524390967473155677151189660686722556195035641255129185326592637281023961161749523024537807595137828103183890110108640027903866677049990396395779745279527486121653454546586800252095956623348417576658648319133179140334491020832657769510045359200838993227678422262262328500959459987828005322976901953808439030629919074322065551309461616915247554795215786690401570535228510161067353351148827025666309651005149216882916137087341885084993792989737263536714401497565684294569357944758005845940825002752118800213587302439459545901477522913473640861309003341446180429955445196442790662953797424884738349055088829635844563444441698941101349934831500872899964204311224845162254961442102664153719603613739931543187044389617230892154124857536123277691211941899380977437929210427917706599241466282666744886733773085485749497704494301830148856402924224082319186471784881620928312491957277445509034308935777821428195628015681462221519619791964948008121766626988874546404916313177876431399727629143943592635082224973794866766913134327344380963404848663856017167815998898318097733590236461968626700442496376060836334641840879518717370970609630385076225427697756524683345055275758651887722624897885366281936580523650771677117829986466451178398276915427574039191439467040550027351226572163147255221886423945649341654214210899536706308407585470765188314402625993608070386947397782933932656273103412237490440963383883997544917196823076555697691599145588404262581525894954566109087091210280376917279110040669190260958916119537043531590896184453491654890958324276011050908655863068128458170534962277622172721494536619719218455225688085828456292780026364020627424123268699743028973263180219461802990158643523713446752684331088540572694124980286092432400945543628297610229637232277490509172738148766772798779211006991864078686588510305640721237848051433765418684070821876358929071401976697392801672987677875990991282472140367652657484719125654493408622712840567140361659457122427578600077743054783830615480344828257948183982024660286117945413682417356305312650733678680007108634423280220607026782412171937194688374401954404095159982549812092114826562688318845755519873718703126590789575987198615548700014763231426638551079721737850960897834032683994789934228163784826865024751549163783461910042412416663654845986179242509013639223763496345885871365793526607729523035805207610781589335192830046174131570727903428129278152834536625376588347841274573697814855669987247314510384039831829149125680835446752970133553247303157188097730245550063152894110805117822145947786176860024603549338771319581302838727934684485575076291654674556313232642161833106266911900370466709024798818778207386541256590514796421548977765060055617862319821451174749177660639158837522635874349571098574621563113652752536867201926082288876032314811052948759815034514048719954761092837494334599632028185553934111258124971702087307117922521752810982774157112682221642027432875501172272422247999062340617179946076468487957271650469147731355436630822933344729592237394421900839728640504788450473217177415443088903903865378381584318779252038720721289597337862565336331281687575078864922241365206816661139719581742235148963894960860723711768917430534651499646256635005972973592110273855430712245775103838236099103048730267779738030776666423779554159328595385785514330902412424377029003164391535068267238077945424344771022935354923798168396345094886063647037044166071916791359322407501268480924926907490087708878159920686657687206329031356475229271067989104449734003060337516749374440651195643714104580726371196802058071067673689397522138029909698359211559555154437934509907935580984783431768480788307769059252264503835283336087498362119906433592297811468818473452476084915269247235883011178277521945080140075132355089151704768657245306060605993483944992976027249716132557833319732609879473087776507282147304880078865979132058060934683948936834534398691621984081481787657859772880529901058960391770864344178116352476516607034455865240024326617047573379080512002280067754161321886358511056354467224012561353688806956849270678447258023527485380691916714574585013227984340247064386696678630824864315713764528781465355250315121984094097923660956537908333852014872880803845947315267118156978719626841593194119264104879683515441993918833466465855464808780275186753464364395323594693528240356731554220731616682950031509343605136125606241023257406007649725694288067714782647425330993686391216646782743704449500208999616081145156141616812929222038018526266267888011407057599007548157902146343585749479735150730060593457769211613605735499595904667888617971817968967103832176434506370135298375487391009101238361544562405614925175391391759855146746593199217166782401610657549702870983138517711601890572098352752898496707331865468549588948529299919084756967566376356200235783347294038317985779496302486227320253360922873448790412052145206934879302323892016835373621273226519535364336553027715664812619255846545019153382867567651727965546312282858216450568068301285312779678358338595686426997196369615504818552399028476261004519242808638669732426632098153764279387826316591609677140064514520521283521795343627440325266615097061148038336182126686348344694041252480197975121316458192165504506983608069742108688544669905664153630221821649725870970413696749062466677796225270469712907968791285866032053467733270847008443619164440890526970551967230491431627112658894658774247465296424813320909799902178386891355545876065589601262841463070739226611726978443540377492318272879650576201370778467516799884635867394950556990992737528225376866301265972479286252415925653066490329451115511619417722289345251324070996986667172951993924624297779306597918099289672822749427534673497863438461003315584506372278208570018376232658568551251836186788592928352125643555505718729411054628663610905889642551082108949593074172349220448882451599096980236532876416888774924732263110671729357670675801679678694169336451908881145649795667442375531717594903479854740247840954962995659726231450807793635914978553912894814565702055265007982161417272627194879352438935128499046263973074232202717384906839320646334098538958116716850099505713247497121544485920831268139777193129434989482349615095126013767295512612951900180187223675293157397176409552607481614138692830258910837609234467691108349425951715442803004042449693594250558546317164178352788359803641916539550676037029944124230433083342842597962219902018997418241127573411465453485163313889565428783993098069190332842342465012825618064523698808705270181021564441482987242156479624574615595530010045655338068504213378213961264428335458094420088640407296454658587174238586967196770947530211982673337085718449354596495915650118597569074335158332799938124905046687696859433033011635079301387002581797190928801737507635309896822845892224492036190880599874096389837013192952362984858159268693513294140332186113801785048418086415611241617088907412256695340821137295918176437737479285786262946443009773126797244981360221963356150690130406197499659493739622646048005356138527129225419834416589727656711433692655023703317131003448930853633540659732396034244185765942730259111755646164028720517418870332591968466044216343395240382271903926169079231792017680652944681198903505660724016996777425676831574928879631719618102586462464856769903577074144821753456735883733357507450690290666093320047087104896238044631611612334392231364806461212399443085694768889141685225390349194544738931405297962519047857499398176748270689797211111633154330390932458408049746724096928525707796383815522704591851456844284454390739691466996337498431940789151361714400488360845361452313354567730214436502941228828273972569868610647373457579171568714401637655798862412633824741378740137678577661831159540972028626028368939438416076881730007205863416138034908811706702655073643549480072607136267734543326741163071818395260826991771308846882199805964148799622761100067509844712918509203795201162654957529153153619585421725849976265844619196316238260709974539528836998372337078700565618802501389127416434481502491837481438265144717261823863610567195571036563854655066355463691568680503946537127985445700770884309868932998283584084576565331500615349819021885502236710383455616024924934203258379647194278616785754445985350624427108429339108026405646060901713917438017255960970036632191904796325719703396310720824686451146849160459777331674666274735624029299346926426883914950478118493933575255947143931784448576555478116877442948615839407227947585571319117884308694612460974585492375783315015536600735441955874963375399703623175347566459390299738167337713339014733427590806327080351992638962797546464356042920931377387452376129130458316047175760614326388045858223654831532914648349032575491881551506545181539959231224834289774328292425480431320441136373777215131440435867561931905007032791799851168120509527677256602339369283401349265960435123413347155288825069265892825059745523309500053379920178985103550858217270951178640131901012545935441344870588994464663112698376520754641439926761249584911981768048286017208531160914722643215867769277487359377365716923819249645434878688500230500090019347382277448169145456857505976989708865577308041681434638515091768194615804904004234850154281369424343806215887288846266912889297945411087216204235712866544093626445546793543971183357988162446646877496613778671116973324607165174769911004142642823440356217153126299879552437354175715664509927164619374195999401993420622750392412321811710793700538628437809798289392897381429925943770588476251033764971223588634371782047034572708849135209417865087571003188098229082779197022373376143771988418000067423450718885211143737331622228344551589379286964528241342711323206701622789150190425821361029368131695109342494869136083129524026630070586819566584631838740920418744365166991513545567891876203577973690220140929913417449942942758158312703574986369114927863825927050404886629822944335800640359880197747134012664397337709104667500717107557855661253805298095082458523685850035115263026065492377800740845342313866426751177912864344774487502067705293369396315637811568973056388989836327386506340865387972448239699874945206033560752910616945164142766258945219170508039875194365278837201540286805511563489920293512788770213463225694783067152981303964209942277024067187997238175484735403923020388225517347636773310308121757524065789335302763824716449477877869652359709571514369340307686754935318173676789268822188809347008606206398368601011217306323859058418560745213792410584558040077551287799304196968911595598389306265013257964404014892625710537120479374539482794946431218674215602363889885939485676244541989713784771350610492643287752669399414687912771736230886290074538152603991185599517390953567798052778195392781987757371422334507670982465228029750874119164645009316611963228223159662888070456149780950396420521230259007457793919785532480884399918227663789240140290574088934645143283166543173573596046580682157975334236531950792886672252477000967574704636028167657241418200260821735229557033324310453894184422318382472115809304126373906926178417435955931286833536716257132609780151673484903885815179960729192097757097939961599339433109153050552302486402384397411287343845593134012361985855134123596805206658912847304229170978416859167822920139141722131175154706997362983426957978775351077955537930064253793150040897451818351416142509184197476546402344401263071554814891553576512328481803639549184490451283073076257753663991015863270843293415663274709386368269911182130932816070034827513381371539173045011947937707751870576258507426877461257271303769248642623046161238252291073119669661088859969114801771007444938113510904759979265877976811876563941243645082271010296659725029027954287214258738654266960474949938493329824341574875900225055875523070206896400959592720434018702648316641532452555412983115798190831248729932724798802174242179610865831357973607354945565165857200764536250319522666045145088638248236582021242613294615389429041991611481983592275311213870893102079787478418176102930375587710177364967460613091150548372719860494669017521811012799668748534573943181635336337883382378460898612481196294728715894350169569106128475629439035222156613881360397284382944906252951351644282568011572124553358855258060489868188278284266212911336638045201508122236891175515055797883802491195965927366833315525568590262887777956174042823438461390944365757582800013025886312585320062791857881131097075071105590907956085783371728720958698416456564260538614876604078911255598150015195671143616548090389406995160762894366320859045009689643754062758230729500226785668722022923494313769195675331390807179824899212384782672293835747129750510940023068523220436027260704258408084846694451817364045398402876234059916128129799310440759750521136859990795295920076858747210250756389464499339749175906651094814530668280180032689953169682205050566090762674503476771297088410711158635352461929130841618629913575007871900567971909989637796245427362245641533613256189672740146460374095546776079805981264448161181231002777630254325440103980736658124532548832333407130852845870075550016656197962642095723384904685251136052701097768770269074375145465830813400413785494521790275602133883465175136512484451501911226200015912223388226250543261924363985353186073167066709788345258232377434199736482232097402101546700414199234861720995357459131750902908384588117822108218270104552958255416565806153339955754513703857312749820274106302817362413719573672254765441530876217551883943179288266869671650998006806087172216160923154441464632637633534905423302402682640638791887195355459683015645025589192636576080933258639608956394579940782338996276452655468464410090315929863873942783927360923416182776025741203346532461162830865098739907704833372554318192219493648129798948896878245897628475772143323785239228956580376646797870869415220895784674397097676930278332500101671036525134641904845980457288296933163632102417775104806174974925884544095376821425132662150354996547625931719760473436024511263209974612731383655098443097812636156948579270708168707879241205939755148800821854804117551896707778624648277025887904909714349031755354987117692338317021009726624421685703157141857892457476914205352774040782779223849134409388183557675664209200124422933056340617970805800232960136845984736602105316342763607637952375598096126461435984722380627384400656777134477640388941829035137130648757299479839238522851797977534207401049018596612807476195613234849004990830652060190201743133994032253035894776465213189609523361996701763368654772927172019926723962739386587397406410907819967964010067557028014460679835192068890469168625247728021533008802610140910093009632670598746180330752931680195349853649904238091403119072958796012392334459391078673318504054472298911178165496293448107038396971407031248523537366914279406055915457707423692587290181372030901758435418955610111632907548281607876866019190857772929476019987985947590631278503332357257168508807584280711119171106722466588411304621696754426539770859826507712137333325523441879529279257752823523167952478076608776305406798565238405567505537288256649828584886422098937880133143513355998475545052598320996835935221385220263343764879999876055079994399614429974863578359592624739450110089203537684881630460646532728486083107239166379091738634981521819692765059391971010354767130263016289653188174704241722860789790503586991293993063891478147182618208071565068109925492449892153162053715837929906566597199079265439141923505192487249667118017017903895600702948648454856192706880023060994754246737255148771263155839987863835849160379637260240422706880331863957936308162362613142169905865661116264654373082358023153196702725039743631472804463518705727128954617959737835327212048584076040881395352321970582367578670438021471902934543639974680438401544500257484545051089673761665697236139133713104046440952591292727870788905344364521726696787534430665441718763348879582731480093719376946700783360280440796778313157018536001209276142895637968831144783421191616679209227150833725854414669379259499518486179128723025451569756230400747484092219951089484681341293173703117731813126467797612555628606844335231742286265806093130161893005135898895013665001372641499577524162575538588390059227638430581136610899719266390453702074952854762805459731444182809275667743322853012043682988954191209395662216093434560842872693203570349808718569455079608457213802137049802025223681616838537109368297145963253957929124128731859767622347673661498111903144575516810930776767083968592757420251828867885243975196001862476371756284508189399761588557450893995211837970608310615529300359116335189181399431681462010367858357004772030235658126580423079200842462929914544690930951259777567928655983559458018140635299724768340119986037300754167899927651453149780639760275793849276957107166913161289113802295769299124199634407784798870782658600687743516713869280905737973342725810702712529874098075210571484219755031830275032653875990440390476733351286618826562959903983756809590484868313715036079484282887746342824297841725098836904420065247752864228775005810166252707194934481775601488233952302482439703975506153572973622053027591735010510143241061837873494808888341826715597981433236958499140808362473880447779725518256190063182138586359258870080919697721174907813392440090432944290254507875544339532683344761970468723228125376215923390046538263682058852314032181865494964606336774866600236464827119517675927665564044460585360887558423509231027825283406884276026071535242389177520921994793092316412541158643419918076708207214235319277243540420530538371277931024662566255807495257320986247847659834623221298635191764594460418237037094902228568042467604938313882501658204809849884976043603811682504068857288185752619160482128478821128361341191881481670345977598200849896166542939691170154546997462294312030870633396562988310188651164874051779404745488578373044745482034280850790806841052150415610402935455329379354942050775115525294488140299633486726721927052000427509218811975497352162922082934361293853680771045374149662436578458372672250563511049200134046621670758893462742692126574526137366007726653518983181780019010910008494079028892358464575676716349475491572543603934744629110591648073428128173600521967680610150663865547999616045159363162150990721780631752713539488395713622788132900988483652423787668317008101149449178746344403722695579949450387921758005258529267075728748767071587988773022821987672582985660217497828018110754827507801217878183319411950845365184080035310401462499758421885413104505139864067424905395908196504191066731921059393816054223285445506817815452652226318139551272717056809016135837165604303558162499976061254001750719462762746438392913807103730523243977574787290753534757045492942185399056650839653914224058262965472901815502952247497330290027434639795402638153439738196699752672980203151245979517492967872062087011823589044485172457710236700881100020473514567692175960197575007037067870742197688569182823857057602323106744564500206852793126825694644310462615834405742948153462871672442133436065571062998652326928723610708889442807209225679136674018310560378703313871808994367379084015341153019438382737332139670488291870469583387614130875595991356391654031461431867180746446055046958204881412852033775811090770572707628957122584178732060389380245403423203424108862805345264524523696502111411549945779321734735598461117036976211179112974859688827013669319194931644808313887633904157235137318539883032292935462281505875434306887182588990095445794340382341370187676326888664295282461142935022158510793838085349123887074814944484291961341784176534041296580699809706458854682244668181268929956749185651784019018079116937467559236177484821596791638915630108783504017422443658570533381806950930966665726175377787014149678655249318653455870886292280464271589228580577223577507677926042438815845446476395568808868834788893963122336423873161302285592727822822031643471016858995262585287815714209001657236210724001286998100047992923856739663444259578324992102068369025773741165691523804868614068896381408212636124908241351604704684640425643895580964310510941348757311522140971094559353906711571727410554470428014486403317948253676532850308445374133316845896700386008591665937665239139610089921031306067053436085957012881562233099751424075772699785668106859067884481565566589522327404902900163958380568386565725092012337930496278504901078816642364796803352936954658139334659666885594577985888823652810565619520838562630843573530237026875560617707389454901217142452490855255717616085031516309374834081238553307419822553173884187672847055679412980709151964966271730788586749934087743480095287291212695786001776809341078112608778430485445365652275998721541664220572722906185887036452798927949789136658583884919816911680160813631030552601052597813679949618717620154260400528185409981571744689890084134206647137619734009568585657873659018908532517835339065965937356297431251959684051852419521982242832000009754817900828996630735544412816298651714331223252321881758198482037638019347159313568778002352799725444160781499584056217622080664462929943124268875334281598427966189120331518859156993186944710201103011403477527094600124800593316480163743541349983812757175269145535108158061310705126416824606310192919810129138745021813313376769450453558906397040590383168516254272506959874594508078142277575629976039297603466586439213146444123469749048430839115417091310276975610076030303500853906773594046945123191570958175560832964691883249542510179741290628201925463377270440487170807686112742064910517529827853310073779845773327888892148502355660242217026532813159230556608932107343234350193200350232132674674583514522521028272824558247199907819786547789941410783974537716959413651154950484177753847270450962374007118549243440861001706169777425592530241532655480885206906509499136997949499092325622300760768413960220152029049504615347221602947380398418025911825062273889960807635819676560546402520874867788078128876423858323280262644421314168940314400376908408230716338459108871792023536898010024087311033851608032502665861831066413038807446584978481877744571051720029388968220037656134329245248358354101283024533827514739508105168661534534152720397033356703270060441077728743081638325423496966946919146018305444793232991333192538587358626526705509253263383104632367897675520772512058636957401456196801201327990005080660516471293458254962130810206080952575393111349984971667943224041032816502620802763396600465814697197859655968184223451471287819448526981355504420537540160829997946712564296852915545578163341877760761665447317475988629054798608807901886605872352035571985995074957332295678654851426705924711207150505019197111622399961146535636113273160722553074967557531726912078688292867190322555964446140820305604855321335023827777423762242915703254265149356181608921165165127035308502993308845097943464003272676640587713583602577175288124504507196797752721278023006557150301004289520820687643034132645813702511628136013331667506726568322124194441462586364116619494174997357210258165595252169732371758193531248818693433759353931537834151506890797321146481788375784829921383154299415574447452670855840409190948363207111940645414658006006617156696697454750329610400481211680277143923838498411075280531846463536335137125539149085345403343817803660493773453381932380384675365916946100010446710095694625271472663239746025607645338857286114424523275964431061630069571170760519249083372071553981635185572704972807332822396453897866145517511824114853387905406400350004202700311325456373182119992139792851954100452386816289728418523245306244116023001936656645377120078188976613664713048155114964088781710327809811653137305404886375301603856626665801383980547047783763196459809700396775192107360645071765550188312410575141194179158409234122237717914499609165083895026757355688117003856695408983495331731915561147991409668837107948854507316127754406813513827240356723936772613499076282196937153254758853944853246861523183928534667699691971255128912553175201055473391204542912455333051299240309848279004179440293026710469963666412413239065152639712524741802462492950134818007602773032366137528111955149981465297844382515332378416849950472153766709022722697312893535899868051810349983948568473848405714672038567721508892274234038187257863654371279764004453168858496173562473493403901794928330559389992478819395688890917183504444082126233850007763635522805032714626868745307793973607953651575354696707170416529758924579125666131182152878467569279610131782098985924744984247114309980749736209696783881995119556155918721504305873722710130627745163215596596457290361758150766762287730782579948501716692775385956079933126509808678384506533764252297822457805707526685800199318644656794915507443205990197324654288201482823304124760766940887110422758825854500089149443346359062028345015191160481192924607479330211117354669322811352870700123782743991385754003633474244134637039851888047290440368503030347264677843781925249405476719772550680186187472751273952660735872357877672147683299586604016053054233146064810595062285052027291135309418597996855191474604387070286151462708980143425590914827669860402319973571718693677117256020346513455823354072487177923981820424317478159780051802330532437803886021019945256260212217806924372653451392055285806246054151214064531441770403127762208446402938963849003930519145485718084481880950677996515059037940911776867631585808732454620466671563039246998318137880483846004184179733123735212982669778380355781761221002854329028462032078889506950128572566848464465979849463292962309224273483989817924986119182919346829192541471565440467871226373278036641917143677622326651262181842729490880120706026645122281179276201193670686865377669250092513958792354613749657401654546712027084504026411397753849452693022027394238050831437387593096816886363996974703391789810867382900934729004191923569604780851259155194978557648911420562844538423033313079601472526981466435234468502274652636022858113753353420171095280100599457168222921711424952307589780209638761625242525481284712450184489385613000591589583447223845420929565420673764316925049655369820169578317337843849426903235984650214487775270548032154531251361496735457705311359072839379798238922996128515541616445504642303973497858777529691227673873411279309512688344091493338196486483152934156146480847442628531638139579580042011910435624336836176286401959189551252396302580344605221989542553998707442870589129538824337035973608752843720364449075096481815524555967397048556656004068154359915911198749642093446055451656673467255025519945130296622875021482421715973904379572342070213539746607631425143395402784463554251958822727657141474271897763538482922007420383934793108140605923711874873046838429078415074060814046849922138822590204794173112889498454768462648176936527882117744729185050799524161267332091159940224188594932939787333588990666843898969002607612912969472069316030363499938579287414629286432584499052523889349831163553401129621548949556437488031916444643293300547839812387306983197893059771098573640799475026760963885682304684255321583554175776709486933139336431885265745724847368052483140740931785132681312455839075783876875193404970508569293302484495739103854479996080721116277957288566790228635050455852984518530043721205780913385846857854486357154001109322180116251742835154707647343621334179204250934191066286996941643597497856668696880857049137220284413220916280198402763116016700509913012971905549601517644511509411417761622644315526361778290357817984377607178498868222580759157899683928108240375085484123154568891928321093762070203432122541778666280713487314460653901615454238220588837338637793968549482755972734560272927249283161383104737387583982211786600881735861637403565163391778050115480930662603168062096668493175289030889926532831684798601457224117245693155610114465451425393985952218934309217065911984187384848064968976973886233130832162665035110190284012352519641458839882515385054318103999980523509315390675675035999360126403006458709115530895283332469134151089876824699748942108108038103908894351229070054839411053462925179167899991156092993218970358486869070207435606520365576797360461418248078534724968946958382124266924880310533183473436397358990130187395406554780290784627927187485705195015681491567428532806345158351018100125029563114588204144337008142017645637172228056702731052609155374050184265330245576793335693489805074161811212924328877986305850861697006541627092888166841609204297480437159960461192236566894024056633186320933204401321360961743775300373836595576361722537547739689353972818601673034278407514935693856964233636081465374929099796034253100418765756230006750535261242786366902900969881922464930719994760958757542089686964016180178887855525881812143800771454380973553451172553500588976501628226567078053089830784079528693556103985447213510249896712590423735166881170219219490899167700978751651204166936131038620415966167719735569757336651221569860439871759359267232799371488461914076720173627283488120525348202680732172317356810801430334073089932359752777762215420968828594860256334178411681138080700839419354005568315793640008238081419305765327762895428125218621808039227535332302705624167997940537044144256382108720649294063642702124095100075895312097297855662807849824070510714979601118209195142897737714231912109349019102536542383117787713449062732061554386510498568243365278377976065614583040032299313712034616451434113649462362961624784160625227277808148385027995647658226310455423065160487156336265789506024894790144666897942877767052705685387298838610533555417649040161718116581644525446024877655861325022189461702182017884952558804466510753484080207911805909164860749117572146026443612753779263306690175048570988460206054247738782927913314024745275582147757392495057121841983488079988606260469539958465616276235200394229432481486360818590783674142945471263069840397809542238627721240004239958902313169996684415982976041427871554395704458699119167413286314503820855037867015282537333709704702187107201415583094761056956525438319559694204848130492440400585851480754079719481928079334129106150554131906510135266258827211910971425344786929817077038951273522916614573019957172067317577487308577168644712078359380720937126091511551208138000574899576200351837248378261639604671926577198034458831326935129381063857781039971699175244677646488684000918002502257568641674626606276541150657522639625444222432764188062056872517086160660824530966239964345254332414475414349095116739433694788705553704758538747185344408394596705393605174149447323625237524519108161098599268068001975639316037636668213663723692422907170332698764188286354418401555420282828653577496168817358470059726170731908726201424327678207954266816409532682580260156729735302794902467852563796510720621710948842692339546413544003093027415480441721263292783545185100672578105539675609314725213597431264394993380417726259035149966498809424365442959473004927009373568054321417637617624811503819034085080071261152599367562526732756183070532251605227343378066279775464074451952625338216073684926187084951037261704116301022955649815499658089740460879112046247326575666863850351596176064184500248485344896692135565969203959133101743078672242345049084010740810880903641518055733718090729911077653771638932842429977392539398405021484638923460056808925606205744448809828413297059873348932739649012369833583657877741058281282866417908099911359177862867457278350137926356459960686381708523969899753903006193467717503740810984522441311301629578426635958309387902675067974518379105258977275098265538782195256227613418240365648021887291313119870555441842252886807662433615475336252940654924807113984583055335200661472965602793222918258452879280162633960028842952696561933843769405982584141490127520959524470733918346738555690520205082891301055415376580590518397617286323186805133763528693213521153343067642207268439996333055975535364902976420327959393612493092042660030896207128658965660260349071120716901232452841186326549713529773692731529670643808659803945107277026213639899741717694533473417896918790882952025733082460322177233416673494398827619257142382267644012692645005844807720182643239507319987179481524584243787484063160028628517171823091097681346404625285180076348907499912941685121071706545793197337873333846235651234296341485137973280496980606985587195099576685823908532581267651707957263495695204465330748695686452430269940912029724130684270908308383221742783896270201721100942467893435439039527047802444655443287537506988347736656010204853881416976181509162524985692395435914150106377731956678914068705579518281693433303196952453195622810078364767806139934722789101119305821479867882719423947981842400405472316194552761816667640412653279419264217121936859648693562208094421395462833512293274727301177915135286680101224644767583129726390111971916696448471389735323031561805838341868565997314509524567457242769722626811375865282868776881329269738996225669498649182849899792426989761786897630417754820287952825161483852303732351935713999632009402641132533579790539000419621210747770904340509733633116375721451135388007580666673716170727617174810173828572093639589190847375878401618771559581931245901147618349004630816006111071178709968957759462021373831395743995078966131210155537235727088216647627969950311429307162430948125350552314995317116505526214432387880130747967539023915720457488812188058826189837183382344719507386479688637098963274405559803562300847994033370179039849425426731189669749680350829647415111011305198984315881740970049710493658610324386760055243383150677814818726894086239491856395449536758531273986034715874613192751046819305822731442217378452745940835597395906893566402689967117018043082275984055375795627233825394378437341896644090360002702224900851583453741947506524513651643518612334996505459053171643078259720893015851227244342537143291229673794764818207525801525020330473403566996171670108619560183868611685960112060489621777707699897778435337859692360069833630161356699946499106595719629268701452429049810905181270864390847247827564097072965932395742748053773210483366323624059642290766888433037739708408005348328560091990495083268179852084546763100602418628787932302816148508540514451583426207116849112419503303472832204464498105293077872091601983553158895070394217309857493288768665359074649094749242011944389773650028593798178088901619372727950368468547467855245846777226188885066957192925391147572402692834179370880809878160612439726002028237387754653600940007657010939043765326571396815538540555577957854977323929349929604918351008448654183231279890611316409536891052766299374174277908304853760852012674911926858645606741399436202584736416378762364224431026551181086391611095897089392718258159891446455223618099201802657930400849155927265850554462978145624404035494514376350510504674061041549872382574879550841609317255826007106699966305755627362187439468825776673067685297526260001838740750659125543953637913058085215842092556108281886405861388223886062614091987806362029762209683122306025064738712630101297660101549395298205269216556034192330957786880372467731747907360794463052265517746181143199200588849219530065905506775964879395909112406502734577141678783747275536328059873727210953395616115633744006713584303971557696355755724069868184618518701150551093293381361598450350572270444513243179796045898389198392051868479769291711423730162190261092980763278104607396691655297404062188133422337717602864936977104673260472732094007783671239322331935141062401395430655630043885192614409704528898196610113437487160102441770688520964984391466539415433042446340783050512469336603054865824229537939740995443156208652156921569785532731479072748267269469078108805619367841043103358157686701361448694625051930221104634121558629700081211484807237661477172154500491220682107591548174578896036977288427238038496911883482529557165924541486629154665083741507299794155774646122000689239207322588148646708729425158133540187173088761098845545321063795507759027906763073459990042861417511293073111757874206664521116864182344677942711395998134768119897169866490634210214978538652755749555749170313915061811357509555910368865838282221288305592912802473789954548776568189143394682951275640569660570439975633468130085564321716316192390835553510205138314788673348726167229681673633804317576050690422693489677766264397218931256786671419070567705559062958663504008174969910363084131957497499532876954317230916488984263370772559505066660958427047639201320194256000594063883039883628634647457047868770981751818835288145113840428366700507882190165508441240951610133285890407746718884966784463919367266809186209614276368480686757486954830463150710550769669072689743647065892137753466109945971457058223230768749946843227566647299124461164114246777108356255927305780551841300765524160148366539676834946776428682792634266070632351834853176859744860454437655588291744060608658404085473490112894401661433399628689674465731625565083775310535884740183443236296306703453306283220389259682880659605580024879053743731847399858273232016278698388207645463310751135275666242263375644565107143135260346912335075464319084166559403147792036917803901686301421945300254833474914761500900093875923958075664899307381985521530450202998820925728948070104131392222202424088366250100377629278263326879378197549634675962911172830535248284577005977415694453358403198276905746702181750632647720836889033874295701625831454071900516364730851358931988191544646754526763500987869101622931895319662200822034652604326041943781658746449655724655979240166032467701377262027960084718000342436761110813067858716185870137575386592025426658535398182732388349236994067158614549714064739453512515880880956100269820971518661415741561338131625555956251867884957680115622188256078638138001598704020488909387637448774191664755206979106712290946155145306708990193558824775548984236332794087357789550421041180148287529546703792463753745338479081915221513854434551094285139632708849206398487158925003147724156811470807042215207775396945058052806229217905767335186308112035447259988595966269670588039490469936722772013792482123068394798643920701213429881922876268031547380902485401259207110541875588774003340209351758751703837160781216302855870584135503076480297234747309451459769691464773459561193156025061716295339430971480284136352153053399743633811683063221156959888274368387580406500222561002236719973231115057696275336841954369346569031987061977625640572083453402116573089190441009741175070924400344201612542255881565654194517627140395446539474918471285895168491422925163082566784190912890600180531229364462943448581479685555994788922410121514965047649133677125452874319730078742584850702905273829557564399040804650425319163186777388569438758433363619124565168348223644994087456560531273791986351936578979490355585660971577624411192978898712582800659426810172549798344979154284790995799882737267397281503084098994606772723738177546442563565744837760555353378451820326989052218513772521765082129552663587198224990586671471589355281895970891218029170489696660053710975275293261188958889662296285589076145875481628432767664611125404602019704736945905663030469278142501068393366101870354369717337654319982428383558923361929684028116840807436488752540302968533259578223495907716364763659116770755547028771611973958501946388872909762222760490994079922590311588686530440591611099045543833022260995240578609528245072902164234371042463210015983805632243597552333785148765043893992926221420101492906361004783187188645419402945756918893394798928431578062052320321678500566245480895164975492737438353853162385774260789386520133143320117269589888192181409774944987800845688492789714526858975435698965097520388221599797875967520858639652514148225297807223069870340111044989880156539101722555572834826180254468315099218591370898040399839739181186334008830204161043787750291523937227893012985777484467447718166914218779305887298730358757598724844516579242322301051324965136083906517459592452282639037210839158397076704922817136385873262994190892931687148149563877603664150033819617152138612415881864686417894029908264944114391980742475509026000572200909514612504797430215334315322675370540811988840428538151141362504578152626802060330444692937505342705164497321072371841976940779759249267463002672367512003416387395643185575527880402057830969195634046548822143441712320703847588610706282420927039141030956707302947591685768132925678305409241499255562515276145555509308415792430475528678344197518597135329869615913938594110395878350830742764976271502316643475081182563808033187572055062113372652039857254205009411658758908289737253513424025995209210412295107053898725833652603186953514575427572784188726142426122148272454063326476917804943350962782449128028679801124667701316897772492651379696536674926139791720408503515975996074011437976792701993292955122326668870091843763438783123305501201466672566941671005966123560871668519740843449250817377376796927733543909143123416024686701911762581658299783495594993932188648483649435738221474991350019625250223382394125706456642669371627662610512104418854744394658730378607241151490600981319663760066379920955658996881700866573343670716130076586130385260714159889093433776434842345267613069218610392051733159240309564346097217133873663367410408493400828479429015358659653864706508733288444904353771337234085624715522484069955027504048494843441411112079187644460079977743137860416041317207126642354079894834959996044075097698186477132488321982833080705408307758447529436311442432040163618986096514246499835792717562919392148699705867131563540963877592052239573979067764131679459155474879078975945254676678688397394620609348535371986390889857570653219384172725351569768494685217968778203369077267664328745608383687949205153132633368660662240123346770250924673431498252329607332597596305856635547915268336066937669802987339978283470364036004210846376800091622689234323074306720156682553783449261608542023576260284213339025212040678425916196517497415753259493327035961384653197588227143701526340774108041828984903227321765799279407318367350318887278247620075243942289861004476518880229218381483922186528029735230724728691395915196968814578222205506555136049447147973816549215010629411567112150891766609153897799960625574358859590163520344637182705384125023274433132660940962332513974908164929066207802638644763988093771401808552002583090516487822876586619514490304031601368950266353957269644922068939046698997515713018271035115515119316152802975877795762330198995399697061512610650910029166276638182445359764840687480874943755248575347878234908153844393238029750442753726582059015109940879679336080624653256724574276439743022386765897590273378950573876844845935125500312064623742499616192032888408410492165685305807277765465408075172347934661105463552055823750128751064979856159133992841098537312246443830345043571503529792728268441772812736542094054794762078292024029919300664448999266983227418614947118092939518766817925005283339578551384893469901977815547718883168415495837424929660858755817154233433990864444477147088645125252197039639370119890532523648862181924577276898643482031158986331047698594390722508791497127796102201061230317019582317760860996286398919875717502987134861220679903650256420802499061676281377288680659063158042641252325433399121297576432781505306879704276535133857395680255379064527194552042907964080698789349486851866120687173306658454484771596525088832082878692599776662349149671824994940002110330272601523632560108466494529011696220409005325786476021262811314309831737418030739219176186280220168736270181361173575972794786075296597266313149562760246155506347841380205919572374693167281373849720064989337797980378217151418317619126085132991370823559074601788731879241272082067273043730136105737487016941254529032560707008481044650032738812318283852308131134945010293966627254261491104629602993366778698312415063655184515390902503106329963585705541378936857891502003885578492962353015370487178908812840869787863044607067092773519291051799252112070103971412896978036739289910460617078977625228649849374474741199507589879986849063962580292185466224433970962065913123953127296853978065146170419740834150157161623652137460701971359738685291212354516682393750632673828783669206522736328684034289347175104982942206030101597832372065337440046615259275954360478998765360133248824865351209019823210046991808587147905329430017695589188028205757140045457148134039925871432955804782284933379660532853040338085586286386329049180432484910121900584490706189881809509947553630545503052830719148464771886780893015052533740908297891308088091882440803986962575574702086819416023646044410794824223941690218134324262110717219177055942786950471736591539989786226989823597815681869248939665941874963669250238521829816450995683467256070602061907613908747304676001701246545683505590699809163915977430168451917063108345398191860009920662862204381180657718907254188591263480064550005544982350569011885842261405227985448079961428665196308466910766172396132245594822400083166968892872346051999645920632838827994920175041572568732048849815295487755466272199028117831558202317266450468674662201409764520933242400468229719376466491421359227417370877034114020394782644211631706137390285132641964313661477899543417669013746599122133402724530415273188836500716300808533987427817097612356961187096094630398833702511264874425896616749440185552062782788439869173732087190776861250555355727556547603993537474564507359744875600818322066966611855562604884511147835483934195189767264121448411021468996124270422599841304828856079560198025784741613878588876112363618703164815549502764879633476218833099161577698135378719241711391259552477607052042190404287895002929287328851315306551411236272290126903472785749123772946820867674537718107215777539532106012316512772736160415006919224816834351332980942987324064879148655973942267831383299144648751119626641294732951357306453005648220033590946180981786992430328125291970440238276246166644107332403400959205437293592287087686991274132588138951387009551177182289390199526982155290110273265771093181882050993543122216125335911686082000740264308691117166773196660147934966256559553561998282923646565306980203030082253018454461918615107861086934951290254521623827060283980699909166235276576864337928715007364321156702150028320453513636238100992886591730057750757606839790373538441093728972652281279505063065061828981711173707636992382655672983208946756458923879719714492444206005577237954812085092392680924703499356772913572605759601451992154160850503072751781154020680327910338330785512051198657730172514785856811170359975492066116286753565818020416114495961097957426896678615313930202599434791901722534584838149472751514777931641644450431598139692337057784216972805245881188923268524965534625270784879739801455000249090537940857139116098063075473532281522170041415759268027677981745978879776649696341826264891910943263053083405290246550691081627638424308543986370748910780945873949021476486974837453989671083657323729588844607555193609026432839641655457593326976640767116784113832403014222884314889123585226596549766391931464934420754202312876962100053862124442120950218193368123307921510383734698874560297652169198707590609814027996356394396135255044995694913825436502275079523554529419926634776276698410494313815923697704872578559936203111642933200370098269353435899210276410536964635208792406416786434427230770609510411781559870954294793658190469638863899329445135113113666595675152412421643703822497751646251106826590414889899313773240340674364220870105034088583924881663627716288178425754595132188014590369162479730269982129637675320685739951303609953707038426741047773540296478125768616426460616724072450547904563221687921688587562115263135724593211486933212058299490848779199859886318919627609165064359600336044632883024779162703187611776612220579517234042666535299635853988520688210628135670737773448194666263388985761859468374634049023273015747001881261773585728275261354519789918882144084299033469952720153235623128930896784856908256511124582405119987210126211000806181322575230445080563076231803831541187845150338969605788778690208570197932266737681087547140377241410611669509205251124051902206441219594516981017502749957493843840778015874095164304488993968738598456888582489169019517034598555323631617082611866941368897811851118692438285136644336610280880318308164161939157849003602545011559465256551750103155000536714865718730055706332203924436028354246395063643127273418430348123770207598974167578487463888395225201950333210691166844040185727675066550502468014055233739110134290687143881849342026460031628454499311856985503996302234974482432651367392457809282228638652408327704147005611885188596487293419561276004190694159389734066711563039100613406185440955408368564214285657043274106880883058485739330410262396581977744047884228837303282974507117286660607783922706256272193223247914472544323485221438101321173509793270613911566196578328869729145210818812244097858126114693261512479503719661747686205916791739493646367472213704022570805098011356359330455796661205751005214479685735553607639516137239213927305091369920107068853329052585857532785885103147794033894105288633285720466411751368083479923887174864211998128226544700322289872749769269204145224856856738823693994372205479801202420223373152421599152453822779387115113453501153288163955833263866241274896280235301213602615371313449625736910670201772521132402182594220189969344422055210913121852766500859772302591979656194401770835916309135191476654714604967336375963401433791969486733556479213497298000389593076153916586994961140773466899812844976742344793020635721009539260575878675724498886830432906852905362343778779911971415585060755960404766440925888138310991535854882863791760318773980800086277192052192674678367542151881299719960304187794956374898562169793869089802800283840472959697557231411787499919612214756660680166488606844045293116948795853331836318886244660084464487298843987966305349965453067584457941039056585534051974394056496962509957213983378540380228444636590410727236682667791243877592492729776138520180854308926416660737407555459274513332138223512789358824570133721081876958153093859005683310913178813829319143179265592790679612049919038034018744390991394865389452295760062796741486751329537145054790565623339244190584444946433293766570750055878980501660065276847069733206157458377679968037237266835731722707318406453423954805321997549689925203474645230418502694537613520528278862057548176818247738008027985035088984477302089043480108055278966595431354779174230510275380413782745298215902304124808991209654467257501090693024880845998742693134726694503422464590948833489548061554662372476539598802214882821498958683472710362258891749972286829235931061883732718275363493053401449998192005967579015503235042842432080184507681456593776133575481142713421252555516424348224870552598994115924931481075724761028105880137418850583942464555398194637439477308099477753464588941407031332592782845866181641113324659486519898715476269031986908552510324498386752591793126342758992663263306158655333743478786195590763288632125482862596626566115214645454226725251944219853835434482622254973526544276523553133048826978039899123487575232600892467782953287901272610143739019406587985885707039635604094821854915018288842164956348392416523537501347012767855855736483909526252929162621895608470395289832292031137387996337302583922472184137652257475922034885160131370700152406104647547104476387231111235130668096682630330514259943932995633529641164379033318128542885776872726068869355373940305501364812493638017517609395472933166046358716459496626915141894260062832485700964895821675796446969869711362830256993454529486567528172875132536211593612066570365065083135944255330088332558010452749261401200710222645643831599761002979525880628161334188735176331076147381251314945046034982131194030702114399033381219762224752142563545428770921767277737407047384759892453420159054033864651003648380313930390712490329709687526595667448784266903448621159396814595381554540418362206165252577404997166069259912752036283695318242874182809950769307248994312020995731973747213226554529284257227075384762022274549122862068610683680316849785764230849943110347336224587499513452125222426897364738784521604630576959990209224957587933283741593596204715131017770471346305885416235715594040883050721650094077278115519129310638690859614002103020113980572015546953341898206384819984425864703977020222050171869492728323073659954076753857935692209368055849094869765884205657640665124741438284103461889587721134123444099436840942651552343238551469366340480184363376986350413070709873615168963827269527981119377941761030513072872014764002609136773560479734489047674203295689030744440646440874654683038951825137475857862320523067971236161725852319474248395590338854158247587547204864683512212412656389304766573340763254238581241571338895955319503167492256416883230016640047591365631814955534949470210868434366767712479479777847705847410761588943893315577653601162718277948833542920657354319157270154071244303074546240061544325965643288770092370306978292035606196441590172304013431019507839579609702510346585910737046266889317195816862716323172740496771184993461842288435171361965627526552348010832850813314419935201600165167974816614796089109440853588499744921296103938129742848323402133123451455598352436436588780955375099495358302639106999818171896467161199596963040586330560369935659212973850286678939407051398003810610909643500639445195730626576396227442912224840988160720926302463024192284920062576038143312797197182010212295936946540899231534364610994649053132537842079345058141075160414417283437879958678267927647600902862327340811123996138154536893832965525309955222727424825417189775469346049460477179813741976781929161845559405597889932124187264309050183292557726886360223267774762140853132526309419484117745323200463444494776254349737371843661135727624864767117812069872698181233217877591210927120126342591552795513116426550126896534495584946185838976416168097981938836407942925870233727809227174402801862937640883311122982275962689647019732968894454032783497930744145159459801959328695195288423106212992938248796239620309030737410924485138203055542780337740839348865766946406265370439877236546216064742125279326569102803898284170300952391875624697085529709910978291177248838227265464829075541942785678564808312027193291514687126630156871377208911468333802581878944488071606016315750096141911032022779931555715319461729018440007938456959597208182529367827171018197946335903796841895521071529039164838681018965652465905833359254567753754578360765088068741408155681250441283892819190615903898756783290313468452614250572977172805161388140948164070393903771302473921812962850855144851595886663008703470843616830160376827474465864592946796147585436802294699815807578629050669604604323119598975928165121371317672457253018094622750730889758998739742459859176619608564298700906201689820039551076345933959089725917604489344912730515250931127449458791369819830098217243802186115392067755532163575428206934515172416010311895652844997311202090951822600241981903173365028482864636152044614894473455962972114199829725279022297877532013464310370291258242897336523978062069799659038964597008717100296626098984795640976995212466086736415607208324990653766607649034388135639868832973688663048430757810758781260353389196730902281067303650665273836399297334554271859717781757263102160743719557587581125704748484121645010034147565243070381050047730308202426117902723197799656944626715197241241218793799294828212946960208594377573090943240331057576226161965361600102517972292381814444622818081673843187530173138187509712723771430148407399169491737135968633954053570027527560540577375358003635688244681064227069481748558410555832604802534912309739249443051376537305618767342118489909323662403406799088704519145160084219884611732293696244688056931050383144953506989700481074831844758497986824673227591940207446123382026314070474436501450126777860365623527346635938792671676698685266359117454023620970414176456221721529653978152306211937945230152735496752136267586545523341684098509126925659442000068488477467485327887811702970632187692440975213057733101369640731913015076183351022294361974547761388639201915121956232306921854992424053164535681802760324337555994637501126304738349549459062372498342107545884223734161341220941736499682706862542855450931146525063745862614932017780030172815594772311195412059096889975571545401128939964281299712180711655574103709688103410757842398664211153755958581922768388812762990174019538076096688464909808591326523339976383008790104205887061817628835051437731656619684319848194781522115988670177073863350193661447536189134854577080188509764402226437629300114003766958641956450408034998840336534730948175524333890316094729816131842699194056230996218002873867368371354353353348560345193595707363549700648196792998610349075013649479557271621262055953038415943447809319961629290857214680553271244266302673210224496973712816374375661149884246525133547790282454916648595848760700725487164109307161403475138291432334583780308835993222012758650679169009265361727179285521704833936854738944234298224657282085340619300618383418261563384002369121802429593875091151727202325638890580131906418443528582319095360630055106451449321912078015286139285971836398619260001343515355764884355021170564930201313692848513468270883655839305298333977833879329041805034798075766904985731389065309036360258207917254699109228027617968135487612965518486815432912455385694034156458944944416297447278254553642828019151999265905561563029423348975359517380606907021360056349779475823245648904683256027430963128400649461109850196359266327070972978099395151244486473385299213860454686983808262112290489995579851850080703898834858246945123193218449171779206278833431392537952147099587309070251652723476375470130268821993141780876856436755202972058791712541578285190810315579091508494598346312946428574337251230331699944018580596763815922710698592992874726291974963183792624472768386345717022166444188172295598000106321236615173646169263731808840865576513251580972701824440412744691571228044865307931349326720162157805514951430879266071023903464592462500239471397266627456750400833286787875763270526192714353504343609957476435707806058359342612377918246309051873141894601241987646315749455706433080365490174940710483061930656205794173353438396024438935077286702042835278090022605285837616959419173995948788174146715521223768908848004388486484573685716356314205609937537797147159338643352598352356962418677637662315659295171602260746356405690028786137421483590315495018764396801449578615626941147478569865209444425735833575958839593954198267170791626077051388070695361413768510270197813532771185519401805045453490792959368968419602741710097282628935709875282146838939001737927077538040947551182874690246363765161886438400822389256809834111984508438468315706026882295757638428738355187923440985117594381040839287740827811007688844682483213267456436912101370040491238301036569483847055937292150963752055721710933081516245891858229217277146615055975900508428713689185022332399945463471286663232422311998963258539222403884972065450515702652652199103138755698668608879463655759138615268273180792493375889762074151386576871785529898429533851337000143346342227020689125823769561867749463418533114914066006841526651682938311259929450001189189309173299373895691079217647873079640579319801773347513987585138150395037447859683202060791882651267412795550098898434523144158957878559932892930375034329422157153724150346402494558177586321794132103574917758419960317511529061205644290182044138788369588572605719158208518595014908336188382958733881183199417080371634707693455219811403050872125299616671385481502991417351648980625156440164496358807837032687334616670843991020016458523704528545672107851042075092924492890220725765900994207532223209916009410789949386276696273560422146455813629210825290862810098333306589214966582822975911715440055208769421782525520491080425124265298522029977815486096669364294928598213779221348699297684551314200640593346524790079386304481615903242104333636785864616547978459001126521632402143639769281008364063543312815938566359982545667425908919474323153898818566472476770821015481031676737219066650521371836182584032783224657870249549436334854745803698805664510096118579476286577663810618818404801405185294096071867605065405178245415493390333955668944112459383059730895161586151944916866504046408334557899435490614172971001910065315699944656565518624345583651907591551208465276005613834101526848527857012792744663174485554259644805535312044225546177996129257115805352865638749671227034821468661095385688682110282142457816076025730151211208310613048650742764098143691915867789668422369597522675380829591503926596448572965312619968469206499373596767924306256076028602173293152095615830153801119933279325504938526051413759092212507934765414603373938702626314590344123894147330560456469044028580496573462348168616768357300292935969949719839431535646492535972135676777387348067491899921903581282220771876711957022650086736427268171882737631329606257088820919719461877849571178550646170648423933310310535465256520753697294035456735525553341232678273506321394037125806131052040456529250128666649525619759103773205945395362251087944950356349402599849691021870009167926435927604562152410518447942064852819931832529324893305969466176275458410177476232488565206260738672514790512238735079008154970991288735154397679373105489002397119359422781594221666357522487700486062042096433285579204985981366998405795487103540336466151683955484774689232597793102240868569298494491116581391487367279930506734576104667289870863243864316496915962913349430162758420736971429982708859953961573602179168403346039193076298301241260082612935919020038630103324444973402985565621582073195647499195359813900376556880817433541463243979998409702258057579159584378801541466008720448733858968404457948420950819304912236546832087955876316476316421111971344470542691567240758079260840358995055635117902981183550551081502524205279078343256495882501101680878721498113874560551868311241550258498489895019715106340665934656063632988957201578328989892046202498476246966520746011695890100193593857061001140596934581490594970429158956541609212930554027840600783858442680629606427704965273472738704492370985157145380985759803941386784637364996083196556397079266921300580150483806581376131366606725240593700904771690213679779575991268233146408546979738272619257236742707374153363175480510223465137349376094542824027308557438855361990531266411076857284750271347849322497765825332293555109918360149652598667616333576169981777989144050299223565593419377257137488960540562601437485556311778196983792863838788354205461798031464181832237435935705236278713057984286250821192790445204358892939513397855675576095132298772980562608880090617885312978398514054341583199085562464810544939437417768975956781268413573480913546618210266230155490319746519862807193343989499213244698108096463871148852181709189511881794983383898981231475136318269499705187198325764343841244125478586945912825942997726583679980369692480976340271449340485028696188397912651677331255474328910344318621210368736358302252224804597489904030628096280731809628399556321971987756840276283390697644984239887314628180868513220451549316125134926826376805645549430503990877138147519997881631898203241588921812728626766956958889645188096568524152546037880778431479892614643815241256722155003881488744770033461004208313927872554321981831310723453550824375839698609374151254271214869159389818732793935035371874097736874665904287930819913632906232863938004592392146912219649646403342174353928197656439196395507013035748735019660566541481646870641160777123714625803519732273909339464836348936308176209736288859876261784936908076454519610488212288572421372547753000956502013627122483831280481171992184215554350902273291756593349097718686686731252585725839294905996965208196693106778645650260229625930638209060256528977256969481770280339151983216663223112264516785530007817861734570264587152928048516860109474229579521668767835034378496506580218961415157067347356737219277075977448700578157800174094566541312261596207697126337464180432059595709849919910315048881230363668195554814545561210707033236812799706228115969160347958034259130547550139433435780096552656382078347955629618945219941241715623279119358517139047866754012852649205459346504820067070832714084026228099393986645680953740711697997790542642494075167130881518618972165099696874654624498606663633293251163052731644601000309347467359426866094071022650996000661851588249652361394758755143184455210679790896543210630210214270478959403067326463167945730818424304912225657416499245564907568185824162518417985903469621207111478156834525537164706672056830149153562472441215678535720360345685891471134785691528770101567032851035767977030626989035375220883039254937204464914116726478915157316411232309093328871405617284960076122951584402690353651313607807881509449488627556710367127144857161389917872487174005609985089675230101324927780695462125788301765739665000092219095017432065172216772880379784440085205993178262578988972427040265047397999838620323780969400637680617595884207698515994473454288921889504696468779672583829451730783264958312217781021784794310894537917658764013743538063335326230645186798257406841077651622421673803183842438546881866333190418130900305458809843554266433179506069690941796437201320141350671229701555905319733501435012912799382820135905832967228314624212975489335541490500657342238391713161117676528061068354316190209997267427876815864313306470267544334925093321100676663090714358099519134494619722334052662130822696329770606316600425515260729470007423034913727035087045541397192879682324871000667296763768905926852186763875274414680512433049758532442392959408184650772469003887829719164087023956155748694604271903883332670735547042096749397301682589082226507190926653366442011919583964429873273506289811528182427494020498119105679982411536690656458601033371078653503355150406178351449198499613974517817286201904519250930852224122938382566220062130162544150310434025059949096267596891590211948842554272856350179830375097313731726307020239162010761669131100087870770834902008631322822569765290023072961616085798315987740262281683204158125224342714020465083601253335802974781963131711026310276014732145001171129794418844670877005069382431805269221685056879364065365614860159363084346596931765185717859021279705232203795913480803936062128907696135003451669660802329500159217920484883069411413797419062902368760925444380302839520861171800017128144748314514406355508926614906178674744188607837302360447478708130865363012059592541673450629119187547748508821187266279928164795864295618270628852632570884278056262803880212719901054995540996872241784753409194225885828804025176652073489774412841959723779944957929540885129383755847880214125967867439594053065592110347005860274223352688690038616548337539350846710961306754807427510427567994739984185458823465148135949477205110083292958102581169418188844484133727055772418703598386730634258611563574766096246532495652696651054508960569884722421098290982373523743131290973371693977542517292260433892977913953493943428265218820075969874064225634959608398056139220254386572623392367076374902125310876962132168658004221312678937895827484738126756338887222337104394891288601999351845734571685502411333639941401144205915078805067037998749993909530542231880923973113041840610781947510744637919861601678406641037302784799077203180191730289325768180725662382143753886364299875506141243949585152776031563762152036941618352387246378357735061509295123589308835920745003204553414871584776006633830709555644822374986016951846368648885441803116128035757463230274140762917663799062058601478143018148209888081188034685691468255535284235480867865150159736403057682724289762821221016320735173257945170113990929228872098326423983478378089734536559979993409757256493466131121149709082456448338749394659032832837860152795891686159808509322316704236612124890034986100838088916685551528868606171556609466525177501237544900835413297642086607270270561355416659088986689147019847312475630927870746590888299013477260501935772208843449416068965362959905064507491461116599237072704560119459927094870251708665290261771476186239685517556507475945460081398473060523542321210201296303232049445690995234905897033214226751181554525764254602537501703460292195121045613124789135254464898576186631354351052616644916954583363527816716500025164499920374847181990511886820206899370442992172816958635775940789650156958681041334321265927315709326258307098872128615681957175589467139060059531930899253436519817921333317858906778740081322423136896709116010198275095482904757153867934935078632328068852771616244401786140671460433802023293783646954783401336292393604156360277889712941339603154532006599053710895669551638637879504409426900653971483343363455523111492076031516512758688232198035701553178817241536560059317365021985000525226554890484838362628162302325559977541976286988342139134003854103856160415119387141535622675691484642134438844334379888788474943963921939146631939998743255960550688749848088271920010444450252769094123892469092323653471018729415905829742913011668053855296336672272962534197532260466811222954648084424584713742806343920339527237901399170634222243316783997018844137570277452040655518739852809035000537460758934896516738767393377487532447656297717710742493947655085600107715689325821184314090996002649072067847177190499657259942855443319018636659314753022083443367317623381157246104883196571674037272349180517971931332809001571738687902570541607508087652548795025161992637426292084673516691335995572670329410996560764320344284844072168768916443998274914287091976659224002811082867008823014001820195402666258590666525188904388977695112157614227305380809010454821207158402406747587913995724355352594195291118226392224820827440840972939127676378457817726052082447778650677481788883086882744802176859181758772142773166244423226811795208458120858793488453033401760019278893337701406161571643216295937521282010579903986514989964769896268626162947033054689378693955593784248662336856547052176427259760272897622602842763582260237250769609995474689303211714242964551886366581425322918085356841421730150859748825875719376255123439507820069939278392232018939022523353418357754690556574416306216413705709846808733362649717586478441334130072748875855976637711891752317978591466554429468831396303362987710381070360252858479210637455517088037292195216437646652116517140822986749336971084531603867745412880817850348040634918178513157779829980181757912131050007834460020675854241739716454935786958155056950623637226646888987753740426815026387093424020889220397712385613590321261430317612926548494931353235350009266122391480895012511561558338910324440581933836069777396179662244303330736703020725675954549261801767518939653751987931868866687266951103814744757871969115562569024998055548385170231187012053047290877453793893565942331772325791170720206634234388678497634424300802726012958114281933714001134687464411504049796521870468716102225725237501168226361209608510842335086739404508543777277036778944844424756654624657508047663966238266270196790250855399228294033807120035411134639530982136504735688174051594177616052608018885485689808666339107741064478908461627548265623414373480586390223751043550789702315287727886925041350769129196362296063727016531137185747254897989024629361189881084435475279307392472176929172484225688928307037160633414226192806259068281159682479248143649793859521794730913941452537756697778588149653372083398310931322815767215504384720909301054733494395249464880648421111402377693503820436052320499802893974548261337379585248757354001390076905121517709408863099316763944234572339442639719183553336480911907922753659334190452181639254467352289988984476867880312096210904106414782901520478140205003691997389854132439265478120875615628053492919809632250605599893009316048026215622997832307605648242119708662178651419818493604776255154246836331172454464096300871940930214803847624875982586453522791985363600167511108687112129913832168696786647589375780472565519653755671519509729072996190726985776473818223460932469169557799296406133007181517296195768357973475351716334198074061082336507701320557360565150780131862678458026953541565885411170824161551820808567548784535309452945957213476157383150989955648998123641792589936280165380037744198861395905183271651391047304609024698938198993685177089588173486052849930850900793995782210128212279966456237101785617295446509394230425479061695656050156298248902303593573614212400115066276048217907277989842353679837865461300935265420955899042942707197020905359422654452866185238326601137784625331454467718012473337500829110721053265251573844337895001980818313723645842226849992281993143646876381257489114441874072083449878995487891874858308123166537392296258181602875946116933753179228603679657581089808605455973680993485602459789072656054306808991399549547779357886959935499955073307874983118956522934277531344811435692781022577295602323078274069876353476319760180296433006005953141237801881315180125615170080166283113811412404475472901998600369335748614097950490318726104505927942921195987664542376950481049421493377631257307963075432320575492626423228081612586883988482731668787740919088347958262011925402769506238297722457038480954621060756073656346228043498879777915369766812710306350425860427299029134192856806323751071223526290978001887104455230926771352069472675438604482857804404386503387808859162970479938115840721620991191915777891197510607804983104040158002992921327622738187202717704466026121920799663826194638126514675787557594463073937031757375569498712283206809344037923796350663563670057244697661453528363663845115813592495827215019509055336517848152429171261256917914451916914861168989087079323815246397334289942738480252947785345751237917364462713711043065931142464406580261639356515808770723401576461233563076953387123690693851504005703456999616150019853545766245592356070789465079326664879192138142367179536997234367073216094049443339863182230742289573331516465310492079207673748737134580650150141789144402736446792125519019614769578202550815382790057788303315886409791182522126226721192324689441925624237126367335982106098362357367576273729640859538852593559584876979350816581004261377987890302631071925556927220062573353500216688095319426988402921240593702140060038887869336544049040017628900781523692987849568172764636208696060393606134251577135035664892417778021667738521321978951170567316347662122207067559005208475364050963408077961127719274803151454870198988648662102455559202546670243984359735318365906465569869006119757108391262618964034831722290188866440890378736075430101695963579707438126524843637999233256076658626838716367031680082895735402634538573396459514381352205228013186611591231511109152666834656715867734323062285339395622239240887258856382003868923406338604436939654850356790833745591705834857802082383004638718616199495814824358684035079760601875966778389507635437472803640624373467977561872667116583794721511593331933940589634591641682666301223156777109857562598555769855154668247476559960119965814556132416742179296822971284853354365814590983106933983167920695825663435404381091384080937054896243547204905618446584148720129483102505180723385196752168763987522364249290418314378899827583584479417287283971727956760658392264345134871530505185485635230275729152589647533786461178442916132166291468712503546355313652368607331887101470333944075562913611310338559742634971173109299608433251044139884357727778689201139013580278708735071582665009433107517297550125676023768340155492061782804977291919418443881406435322906879992083288202735187678449288036442727937865136988898106748235706268733006765538157828568331868707078748442189557001476870892389518889792393253540741698541003527621458459884267026369296648482222412448243108568738071861894071465428681292371021908666610353740917680691236022319838109415691966978778167260389970346706013280831144649448971074199316362137617189409608694358948426071744857603068667387985793009849783058171557438447087984757333550125211742564319408976058578913769716900545700502899021809842202473352863172660114141227397001114169055739819576083084577396470647777210675280033382716716785606092676335595058678816949431683540795516754429475514076579697454751135706518948824141126194726921075139055778386362190206597869500826228400816600008753163822570845067117927742487576061004987513376111666460583756065708617651354717676577618617066641486988656264892197450779685132945212967433634333521716781333023928580484726543924162823904897304919044220601868649182025089720151661202488842473622168701123318648252766079139206994983338530635038399079175687990430522280714774546199466133786296573527513053832407512703519126521436382253097326915007337228013008308537643663239222306989263114708769502983866825047687762150910769793192099781021862711227492968305254680859713236802640766062560584081791878703986688364235753345759417469626868513015785196668268037749861671008782597311155779206794725091164240989811824915302550935472879244978308230223258969942926956728959415017312066935707153048225536509453931290112246873245505252528410133344416855399283174877757591629077905525441850766694436879057735101378581670802397171355369682774348926324034625654887174808895632164622885429860987945175558951701139317183278163204725333483601361732991125551189903789360687740082691526521723865182718833669458668687359644252815529983396766514559433242147695284002378490038816757340840158266041451511167280880594495399358968416059302826562174113160389501911380607638328350198606935431375165540083573897002794334069282760318192224278782377129436582248203832325283764256825877889827740921005366786301320601033065235726392813589744417649496899179621383992719551170159012857950062496159272417455941168163189964917241696692281332380432256923101925218771543440578049937843931188496035395411250312852798832654351132321700023139247586698809746743345891578206878747688960245716744169126621192631097440711173670548351508220796105922594546100611184253794979791480291113320250465543411676307163688818389248447472685151735160096836531126969264359733575268816031844139940662740241645572119823162337533527595361947208681137417751664312367379218218397024568084463126291919398934916419714182627063418242225711296802033406064220873776878766887580368626338988405766792323076629093095222046806668835642799818854925528087645902325538610180414921353127811193905585603407849129912200420067956041171751493212459830763372877841737568862016491654792317219282538280330894744853262329540475860743781530536982567968770491627682809926611470897892006375043469819201445353308640515910934974399802094519407709791388881845552822691628270570772687309808119539782013280477691387241259549681026924790367694902563903702371096198042968212750152156306482226428774143766984452706042873552081018522903743961707490802311835810010715503011867739504737852524849738432224448741571131255482542634116777485689593125592523901653982974708411007874992320333807323618206298937892410991526765647760875448795917899683236676623888099777584716713332385959334772706409489756359320347565413207834509526922226647035306823879062397842191869476241423529583699322257195988599911295510688802357361775039921086326590575903777841539428708258331102092435235733948506251919274072313533457585273808828000552112955690177155523519512875729147303036041990814871798185005181686103902735101276494945729721086816939469631159361821012021417182738793786324733096614977747126255647651057178906598572906646248538527296603844585777434500846709603809494443783739675711991971356738641424829263605270810312033359261207807279455801630765949464779312475726642767399410322903266489365844091321687003929251997252715467825402389472700831436170282515694079994554468790367378423609380219163898705457166249334054625853601115343660673610966230004474508136090571174612112068099186952978524515188499620404126602311436541386264697723345328426206130291153560309791049648865836949555010287970862548044856206902966969991688367077585212121054817516691824155488975390008483209895911837125830848958391414289593071670817128478271308601859144363248348178953621181320757390787549555187508948903438126697611163578579672804400408552479344473366733133751478331063501139138711913674848422772457299538695608138136853460457731770289392623960127264219660792475914574349425714572874789586613634680191164953805724425900311862660924713372441053207752401193287332890418573899513155369534730486534946955156161164164854260793065870248456738494047248149694876993846197535298898515880427133018558274995607505302651900166089526403854237210700384864466096448372234823920855417454760197596524939658703558877512790854580278440292364035179086316593252387605749459392962458035133491948356990112437797948774986353708482008514030672774675823809574277641345446714596108300971202930883296788432029913706201641186882582820423693472653387631796623169502570090466483852667783685238035409421200217800614586145022069458425552211959514363959321384761916068820415335063606856543296695331429129357069848970635607982837790361250035432292972134242410286311447884915604291495325249068584530266020442749479727385758063259963109330568584043388544548367199962781079997935353427442233022396695855261921364825098891561467720700991922186288692763773885004232534593307201824800418168490604473429014278198785419023602706794474953892287274592922907410080444234010119117895496352579221899574718569669223185607988648557017497255652052632201976377929160844950017368577282483422525355777259264936740962037900688194397474693266555996900539151039225953308232451902375489257177949104684862065970944805825553631208451300023139792913020994784098348564507159782306316760347375114154627072123178717133135828615755385676470383337808226604830408655173302877515599766243628307342934094102124795498037282998928100402571298956693814371745872226483491115582549734383406074233986151456914298038141518955884335213812933621541850580062066383638217207659504826262959604774616356862929878097095025665033754905676708300421379190194528090781160448756195453257791469802718492725946540807169997919378779822690676822371698159689771600175098039098242218260666541958521132334454293559141997192564915781873513582360125322095096283308220804195596949271869338033511939010963380597084227248499666231996698030907631919265631164562521888167567780943607214380763541133909038472061045420656771131313331912820713770636216749755769675038016057801080154930725635269251057316555693101408646162667085059360444936310690224024975038631537634791460781510647793815161769387771502856543193706567696296969566699600776903727111498147409574340141710834820121931788896209131821511041958701811144327318141549679737900091421112887576194500377727035957482440891679458685993314009204298382363014729815454157260606826199016194072444717884485660057991587403649144209045712527882455365505132647441338433047747817060678480220215174372202417451641649201174617537944550807219422320571229168169692628246461486521665340853586669564319118657330070381258857321568425723242447096204995664440615580190923429278519396106702900280421892939001691850278121201153641631071134989596633240815339135455516853131489487348401269884188869589507554849107880477456117535266005280287048394621585218318165654110446313955272522678971080185366000088730091621179969726997514083083281739643697670990930717441797932213305185889413624946031713757490732481926206128520003480255010463901486702619030792499127822903969243891055453150747589655493450295655256181539950092323796674735137865877124240844790943350122942630549125977521771623759524307645304343050205141051543526650755088072304261926711573337757877206236091303473101689473494626911955633786690119435664262456022884155610079166736838713454641886470311194783988405341154881729555630230388479461513340233694816803912795197130358539968030081802191235855982861971129313202697338763123413712180444996642089573343065343466396575621954616983653273876858259337050766949306742451021720716624904479771053226397178676375810801919948098621642242294932233706091680595039891630649918945452503712001721225902028341878665326120058095493039817649377618956659451772269637365402683227608185965567987167226318402732673453956112105142318916199190274053374844562368638807809221831034933143858919495348164356069019429560228579255311283662681824185948475469433675527932559393485013868640171509189662574349588246594389529110820623690807446805937240082067198590207946039691080332465096144804219966339198955904523072272821183612342183749087599037996007617129979049974490975121776617895959504527087692474546998749713031177197116514204423809833191051797142983093196516180837221591705548444484972332364123387732495081291006971784466082509757783498496481756961621845784575694752292258373484275998200696014336126212282935573680882072131314983856052979279031560490605627692019452129847805375615397694299538274137207600296014697685827921348115638313189760212935643980399706358079923753759917415089424639392010425580024566258163739769149590459424003495373666068512177464334276289119672536729693896665052831751840722064429324875900638032762437617810315513587415496429956105719559468589182138112043652184210274344309373124640299588772243643758133327394468205086324458104079863568131715888842367066860281491754341546712996092557961161473099825174923909793120653199841517006166534151557625812852108231969040944022425113332368996029020848929872897697850728385551580591448602635991319413638134477339593177392382714669707106957254713969604958204021317616358830159780144809405098843440346987623973291392363170854178590178071817840991009700038548806123892904517457283403088972896209419516546648712731752967198190143323212652772110569533416739961566160748996600625673366345682042008948269475529547222362985562864557377954918108554711785740851015889073746948137421855337854464575606161939970309542495196079037075152930500150892712030935837984065110537433350208406615525402960631674157964530277125507303882823436690353946390968064389770045630380269651688569167297253300998151971618358643127689379113936574082782829316574366801891959304787821881525059106518986419412918205606161233537738512127166294759849998324535294468176802047596107329729308326791006015806022921942205651979396504237456556372304331135434240689823692443460771125824179950204296249468713740268260073180137206349016666252830109096663976792343863319621358790855893029602042660526733106286249112146011599095159132919947446542863812712198950116435133009359851929251805608773134439130555460765228177847079888920482307037903703699035002446301691991481912042933603130012952995647184419980239871797506454276445411640444260491791909197405317555926609684541400295809731873449942063928674498578088683535987937350264069086777406100506511910054103595372628101818469189467982121088910892213104897737385065762632910608888942451455050606315493354021258697412500237049165024202049751256294183077642062886825844635761850921639763133572715018860521124309565387657310619340642295355751952896047830463735723585099888294879315513405455255568501550841735054425966015574900368210234668868255118154993609080508204119538455530859776144279159521425817725155742461909264515322284745968517349245927297345085253259744964300435677260411551507895249083593040756844404938843645999938739086445838768511519130992701815461338532379304119305500911989210687836249753827420985215269387734315519531217895580460394085017554330051385710023600295789837756309308426448159979443695782338295409597380747560646633663783629348918886326687358580998483398140024364070068854518915272622588600035675820720055461369607917018331516893857575122899995458946112055563336891259973601759777227665147060634461491298352748346224302729738973783455892774297161936555460784375595884070654137662093567138024067227092290817865692430060325971730476654837260210187433670180161891892776051797805293597280372454802057091287975837716614540312591607384397204986112950975306762046369780806289880594996821901439237877463840320843748255113668165191813489711788731642388538355099852083823506039778904268398610312014263611023616179419415172953187615741161389359587384848934348478303596176496073842571087276982499419643170912821282768519658239163590632178394555248558547362920741429104741352730595461235479797986771712657975840756500272389024198522142153231255111753410473065036556039827069627121286301132517548996120601454056305298377039718168079976984893033956941317410652036178798283540635579753352266160534330544076469077669988897815363479094186794024827176245640169308235737989754847817593558571963508569147016426616318294488932545018658512376181513845584371543930847191756392375921976974550617509570713775907314325306367726136716261025865183828595740679901025787371061577054566914736362055764833706649766180982143539061921105313607192586198217844464717985964531575841765151602289001171696080314587736458843338435791799918811633600754232355508725440408551254629361289263240237604681943925884098097961931013945265784804544782319901810976575535725514435329462882418683920372293928532678422233541404434363883925785923477992324097355194549356896339716564303079465645426355322885418162109588896814472660348394869932150521493999149653214490789755798744260227168120517908478973266684730161340912670710103801039551782397146642885599695531579264654838163875906841282074847898532216770970535679964034821714149299892786003455094701637157607554775382133578533554986722817233895974829334919992632253150220883627866012271850843704934448185884270909574784388262864224983714374549737360898066354917953522194534284720714281998264269006192529279673231427971713686479858635999434916995951897833404187169310707495762698231780602535045948453611039787816105417419268268228003744849929326209158646419585980062622975359259220188536866916203205220734090787034461134166253175104747224317266771153336112718418260091512047749656191092082115023857412472684980247750313305894567615711460352582814640239250879061242727307918128347359928202209231678160058235438509939544747362186316604695107983237737889245056779839017541674458053597370854118939835776747555790049456445679217390753612428863108641926142484650632032035522522281881828856198936236165957127812561128650648125097242950227723260357448646653145637179517450934704683895546330128962146230231426457648360108645087305291014727205397327997319589603427504020052322105812136347739575198786498158160809246365254534971189730112722764157223770757772629284696427886927479345407933601891583889641628820561073620787181182891375114208616401531093503978434785726766688036257993013190989703367331521274038058290035571783613968509432829029339441532142654909480741714246559486896112600086873035727357149854717528220601232145872555864269044452673480687054961490054555312198657522589634462231557850024679424817267977657930111006211077579163336983830386340766432996884866397099268929979062954596163428551641592759118517060990471282652252789648830033270657959991781946525441562598368182384216428541133095391346479976428897463047681384407067586908917828165150602043618690446472149370815638337056093697488713482758442630996409442279181653777044756618787805795192067103930382328375775475166421176544856636165333700917943084052711792438802552055942112939461989758590138815616464307874865850215365548424722646911351833746261974939414848658901109665561545439920050497248744680972750897242764105360026690157363252035224646410035859082663643229587135932861758362602225007560640434103855522405916401530264089054342521145114109990891136586860630518884018349195370966667543607094753675351872544592746048610222696060317508105256385751411945255196565248779232407640453516306693210725387387627546717184850732374791709519922140958461344747101655061776444103018991403026096838188730870771491758016331741754317108785499999341942922066620652401797064024543957743089366307884309678799103892569228154446211251739959220162369802994372483358189832523955902228452138045727875844393207012113789566710675807556837017495751888818833879672719783704149811432729240784638514859419869801312110958543696836581502835739462051817544549625418706984447100285180814006386820429575151108080089126636518841217730509857847830664081679841064545851670569594174890168628609987741879131192509153428326549604911629965296942179495425628906988964757792523696859304936386113266723192539578897561934667910196594585297965142403758920332997385044255284076437077838390454628063507693510763984183840300028865475745380610715012202123878818691150055120610549183140597701416900796130927949229262441950720508065900695699228430260186064027101095096192464027283301200803759520859785823345415348279968829269002394975405019018652019443151521347660234986262099387163659026632428191072749507813740083998046101597493645926024853875129287884731857412062851113174156666489087057382178518311686874582878996846421738557370550862716011541295312361350907510686876427275375264714040904623766838551344883307329314986448759678849257560411986923395788035902613269286853418541396455455217044134189046883563428766132232147722895504563038303823296675383715196464250343666124977500758481792330136765036424863780708017786986980984331839219645849665627212422283831590186640582660117157533556678741294860464434099030430025412101678911176196039489978820489174617596316101352182754614014091971986262085142300490710056918003227778533254650615826686507993035676870396399827287076707974404437885917653078121608411643649469143694417306688854995572601811217381790840309448558232282216863074198109500237440376585236157923733234445692365199386941995191636322257501053430398921271661194777677135828571806313930767481749133975733239885011190819886596017308012260615235365258760102427347016926170918353401378296188438256417030762074183411175028091668723900786965374748311635646183011044340159876096122462241938505384823498674362348321185555378968219478697991818017608993231261639249647824118245887225418975789752830764713489925623992814052698483283252443237292929937776977187588405337038344455734925355823409925618960726366155606032638892699571319679862929632876263728202462123984526932988386738194244370822842819141895154899476831094008747014799433101063864744998722615220037862093691850755836979863776794335351279507815391299939399736944368935765269217494743441273093031766851663549944446735645428198954515978286682957190705118538810866480163626439702398121474286851551006773144432142937337996882614921884233504170495743722473909036808639188136998026815993757406186212499221602181545918752299355004294331089643903638258499837103875073377011981889775409322294724837087738959165010417189204813330920969149294523155326274272939950920943824575908162496287529361989823073052312988064249244434123010016600987832304599205576565052558909375954535961331922052039948858533140731226652965012708687330824290042266150621793575612363483929755058834834119560986559034045304701667824245733443401958807841853863268865394458232055710751519222694764629332475275542610999347959629687390858651073234398752082923847486163437680242772492612403547557994475810454906163024418460330517918826573675118619364927395900467165226403039691189142675754878544567328677118135926343835386850755048524750913439217675745881297599119391229760511389090659109481860522332561033806247648304820287464379806096517317378519823499549090778218157097527168552511657713710028194723462193954887409507308750446415167911440106562520751597358272863318324125024903781787732990780553728508681996477893316105159723621354486192026484635318483892901121990018778752460659107778269446866240261983427756499955567083449801484118849149747607374786933128596169195386626858646206886184608184024291728731816528490504574485263990789977419899422440258140504829248434796379861411727373556328776148972161091375240196428410234546537199362289507104542963623641413119115464618332758834948337396598146976771306117898872526225576505520423254310712232538333212234271095905995914585902432242168552582387127737516696117878563286493381074747710917357170134519133718163305880934225578855121403936185654930266335294289410063040365453873015559635298080790447780603100965292482476977409247899649692559323968333686502479993705865487144610981499330809087343242221125322912594814884108267443831871092874570687626380825122904184408683803899019636208492865304917028579620684905485593109697887975013502222455614264506489669046877121031444962950367591761027774230597979263644309646458307864991348456990243954029400182244252545351752195787744085950081543680229272091267593376446411953020915173621534041028326419395185829385367646497765032952937369747334917357224251509041505979319302881082640395871335251983900101582992856970983816192652646796829418012470018329165490745656696585807586294305429376250336035126324843924124933684402005656755069929783467510470829286883484565927800724079319604388927471987698394609320804328224995726414948843365300770595379761440320946359955914266950393899288073344163442458525768973927703151236367747717701928350579836334719307586046503328416605697940884993760478771308457165912188755804965554173694778674964575699397192152174234303916740457531564051922522138885521030416262771011051508126840392978413291576684181688988305367420224958271354678436906571699684446340702052145794024100931308578592418103850261720126877599556638003353347669111916455743720009350975341511422261827338266882165702611474949959146145294664081823227133011012731429018092570923371178875122932421597740179851194605244775597711964648225201907118402653841287567440067367924977632957217329128120816005706764081700440198939684179615727206104431034268296437913731062536214022591637460525794993425540254922577844943250786023345278894515965904925468658529887792261445266148180247193626926912507002531011139528925184610053308261223034991087217294147687288600600420410850201593927640055882266451621902407835918373425783086700315057716011616359573518315534612533486397586651939676297710568126705929337813424629781967397456450703899838273824402880933916917865898308431279087258985966339285834700844615247522181154593812175199692852401383910516286133696829345138992140066448356807796831032475567095480191169333266066716543307496194946376212641929078533632081439209998369586580126553054105005742777446712197153453437832488184614455081819245361968841672696050954821204587173727702897650899447325422641010478549042364792218396739336324498236851830877820825157986911968061057833361432226658385304612309299859684586517528149916261694810139826573810903862883229748015860632917107052128451062533226717289744678444138826228547885708786326962476811529142126137134499164920962219576406558389677101114978725116773294749898590404834224533439751097303119846425563171001797153780073598681147098725333656744900911432092358092292518528243057454496924528219222569230368339925287546870390215802995258003417134637855317615644865905687997316999304938147351844526026579486438370030590205531820719062730737209879576370684471039088716477941703289362595950296041274755974413065810208414963917036104071299828183080604494732391669672967413360156948284990718235024067086373373834085640464926962953608566666050978244539385387745959246288492384829897718945920908109915404436921231355125987680547495604098339719574848464251283486068194545650185572833728058919477619129871994797408851279679783259026896696237342359151934915020346904464489798266250187339669310142601575165424925255738969806485671110242012741059042512085225990180180257396615434389561908168148083877125295293971259333677080826036094407079300309396694263784940269680276657806420360828398605884935858320694438073482039686915765357379775648609181633891233046025156923975522856283426233281209985692136552655615219808425319133966863964086208926092713836849947647773733442808190690924184326669334916230129653162117382207115320009382011412490445166380459776354334986275684195436113549911289079328138907335340996637865033813365707632736373420476483771195132771224971249524248116386760750408946766634649225484055012400824421866742586102658954716489214510929391125973559300264550279780975533875254667709686635344762280229804273701664507560930861832545515797328012834386570788797148026798598572616106005035040714489979091405695541428954168155546078531396465957103771560906994411826043144750750658603651680370826141214374641742994912453976331550541988211687031626968431630651358928180815884554795417979257888165656657901517199255688485431429220679209495890954970445735820721351718216651435904534393261695812114288839178855184896847298845074694379881136614004809336374835441524128629637133267896847753030645926976807251644339333214870157125290069519843765287740511163604216767925393907334031954425407865910451872404536155678152980427316177756153678184437589491431815398533727848967289699547979415405139011367596471145685225726979886255925450445945562866486572154554394758398851989354442616167859254496473729648026558051736031200009168612629248891436384571380487404479919799684556310025011938907596434884725131553438502784292127872163300289157172017543754747634747137001476614902742088211236419580512885223687354066674074985241030124747591869944959605163445939367391628076712471244034851931737723245309190648414756532966034745350676177344577814262641639741402526740594502877602184006556640997584411656892508604037564406059651233591915453991075934612841926429097542095159160251862209356359261844694365416196936893846417955278289354662600913991486606616353514921421169457511121099627529285876681467609293797546657893120154363792208951876107344309391018588298574724698576435601224828307405144900843681912038030590510805214256183340396065957780543999801676980734278939673609908984882557752405051830385693512161000897640091610643457525386633830178584203448532625624380288233907120153917012068259002902178405513967755234404277987105862706061633266638968186371799206664518049175019617647658149950564682999435281947378953499364630386299480440896997969067098865003044188876599651765082424674493208841665909696765573218973333900876953086176566580026856202199744024937304493508719486299228143728742474267157100658176598078369037850089493333327748700292683589775517913497760079215676934371563646377140804815422187324831951209063143152165131234018051658345230069251114819622384839377063316795332338063839269379527337987418809093820958985029955009494354888986725751062742857240560811710279809558997486808632183305036500854236308243295433984453274009549490367912530134957652279089883607690689676781225779481888564288087342116390055414097667109560874702974690153359935336676963318249107696988727925174394089889466737463309324445393192454302862813367079767385097534030968067877250803605085377150220445241752032382653704470454291014868480713008401502458483868132691662627132558994949742222806293467612481019147743981821815709412685812411532692886119546777094214401735828072573394627527746669199587761953505221942378432672322599803389636784885570632872499502366082940037234254323312704565009230272358271946400381188414220291503363366352364276744182504357792421824897440978590438242232134503554984130809090594382597138054397223896348655284671581559963567870944419607061196417814219127214526456902314231525152814612832477327179741810551819433542512933989848668167849872739331146753545429795410917271872646473653855415895663673017570781191692917313901001042582179068894652640126902966892197082119293032122638050405023688724933661205007501922230850759542134090422003693622296504354941308686718991108325565202977108037738866312058634289237303251182430660544206681272994105236544064441717123638831284369205893726938098918230028394387609782334617805614711989194094075120158916449110325824714673844202130385529330399458080810537572431475888111872849483823744750753594396575083894330887116203725410548634399871846759379741358225899514802455440377909144907227140981151022761271216281291591654094107618664307518529399268495662404313040180108190629396613620381137044642651511620047863600978540022408531589518702567694841696747868744122383947004143490160278573318564563217048092443620702730628395206667803921445829625771086820866553501743083059550221904000008404433035558075780830411540362961365523656676701632233694043722352632035585039739505524579434042179612111237232120812652188600011780183666553741557326605223509157061368925680566889746873239777718936409686559851600562485783551859751384317578836299961963349148134509264505696618392074785632088038122253735649826193221320974933618367625596325100130425493135872907396729861021721602197482035278386457481335868497602830435900707414970403880325590217643580318662292688652292184716881245783313526893548019323819794201991635443829754634293913864110946147216252886992175546987313589985976455034015011724379099181868813128787736307938549626440562037905475545541483682467561948432706226211492290018879735115154838806432639887328732180943094046172777316450922414933550230310449484838704927215121681208281074886746066158005198977563316791743289952829895567322014627511788404644323969610683580548262469609219168108566985116329245838642625660943476387166020343571183930695746486966183545282217381345078544453919005585630689690282341462967591775197926439209211722005430704446470892704660397786861584536274939045435315431188723203880465824766861930818560299046023960177383273295938593373290473378637799516465055260751330134343636373219285407672805320115653617305112050528028226544781253891428506725915720771397773337050882260862449158430149572384456715881882528243282684597265736950259678177576196179948746483634970833349001360863021563435121789559352640443777176918363175168936285933483273730097310997790399120890162056418632526515797141032856537804154340702222422197337957209587559422369347479014557653529602738514341685384454426834092247656138804408737448245737496591671505219342935868018900743995691307273317700091665835950632596271309262520986865304060954932694054096906087139622756265239393663962233975387795792551038655086159281585073545375612835071977217401882017511004786211397505551768129928315503589183772328741117313019179022587905098220422000121701166474258841300639295138173812661301041919284977945451609198704711859797536698720149125456576010953825429509722095208548554586963231585212989641389097194818867029798912337583820571765607653412760590505470038102371122618910456260604132288912147405181266969397981760510600996036711159264171519563023636695098985224790594615080294579372375090137595772424818394163798989942029050046903639724759385817408266328157542057740119909513338709601677046003087790438236355640949318998128463134122508754080111568538985438438262997320461651061842193251089108798727846524987671411706756754331247883341766601512101635993422266390819527976284231372949725485704616752942757314443144037938444150959164109037459353183876903013916540733321103455645311428635943604342054079598417373672850287526752110369728567069218457936608112411240360510467771485724141843891373476182755667175105210852612147259483854486674500818623869944168497200747795490168329558640698284205125600017003581327273686982884038900388295625410210500673159526224967759637676938915102412059190528844355615883017451818395772986607441054505903835388791722615800694445239354456280268836239037383951394144882977060697457505225795496140618912712253807388670014432384618510097882928847126451864711882120405883844174817691031427394555522067255585245464078917984134098874200246346261617328428697846123677439479711828824928710706849050007484258767154235091313490740496708025572626588396127097672356097188103156924674000628042172136934002175296661906644613770483814653248402675159863651980228248710457673251899004654426736889313385207512948051454082693200681109340805537049764986697955578115334172337258452251083906052200860673725533186494671556225416371455561060698617236363473971326418986206290979014038227444631168269501778045792247291414667435435089315503123454191030571258219655067734108014345746637568956660670535233876000925031909241443016068754597570482513097436297387835620155594143293410140607547491259544689681141837530528730896245628228022622106740611150425878819199467978670975436244202805229154659356920725299534818742206702227233317764118949382190458744136482289890156989100348085433643399054522552984856311276736174647804727963103851638830789746569201365414755667087856591227748127085775073372561282077793794873533076358129117149176785656803903819788154115538052398954490252427147999671771194849699053083153030989904265305738067878828128383677587921114688552109522649312551926444436209724442977581958262722068700513831633461481678527363134997353204688342196710901839415811969439354618780288290632568296672330068318211832614931087644366992005052006245112877822310285345762785389064694884036774720081498221510248935938827817144203782475353942343913674258206108198210435338166309146206159886713765728334966378022669677477423634046654921567287927555348373980949763454498545442813155118564949606850596806426926149920305267104647310885178948793077064975788092555661699352421980292487640626713840111776981906163675657380352538590961724454556893185416708392568643539887469004606501434936168636597498120571644826411318472297226419096102371140837508455734513737441939758514783862072499484226042815656701137018486577729803010896403984824131112804328532211119339811329828589001080353963744168480258870780425771002689127921081686369131248607492908854751980249682504043482634239264670336685055308005909140601358582613159778600677444354323547807842146774505884841535251473107901109516767250708120237485567132348772226163880213139210708237163925788618384985841559447199799849897712753665603954997781907020149910838014886305635174889696143533632473922002343377476206778486969950879175183909726353128748856623553818963782587448411601751274547557824514458318568040055523812055618318249297981034874329708279608822491149573524559709326245896453491679842651570821225052923625790520507764873891429981981077663520925382973055633766728015330919428135360220519249544352788521945326553279116269240270590703389831191173746951596520805819702950620361195937820378167059586381305514344256966964873928929233580466410339623963734748224235385735967341625023765885753748977963604907606886668029089432346684318197875403271122004311899575031901782919247030224244852688242845390507310927732494608316965567516889751374534287587198479079035145640653711999758735754357259288877508402432081908659514560641582302455875580480408947511729829675546436064255879268821448958107588552012189071525445499159596206310115614752681465398239479595014718241312393978055178359704256261143491907834853499025253122082440050332298014409103584573588879640592862314129601937395242525318246482670936184694105185471627970074151683472551159437104218109888966166060498531058684302224932839675916156898086537758369307703692990183824025395278087083991518739928095107300139089876822912841023692601922129561611793744387441094451681674619332954399805971232666150909510258646915377035670519427027141442747746674123617775459842511301451437985720710330253283389509372098318859655081545168388106126958092244148561689725370417686885119426344202547096281847866587005238052130883709380059073101914051535720806985727264140543676595695361200236363201807652936440420202294763839820328047121839156053903116075427519665075758615190907143551887952683770219735720580305604979287926960268145245898151541443326821839116253001993477729640795211048242971285645231369387256218661669949029002311613109858788507563790408451084798207937401088301447564517201473153382761562346711656674692326994007808034211067603046036748782908611047840330108907177149369761189916015623768423339508424433750835090941874751488184928671043287273247068478442071498371816829496251590963598136341812696326170174638587233219525718856168520049662316491394495213948227723178195496581054335973427465519982422047020035543107089913920940493861503634354932923984146366640365090593948077687401674264782524022565562864731612366672277928871009397361390454582213578783530396053435842888677969374241486735311821131653622531311674781384135164877835973868165537278178986271307779816849377743252319234065540502580867723579972861646271640090558894302479601686050020568417831987121189919905500733947640988737808819527864724903938130894880194249834345940818722421828346854028455123781839080284084846755364592063692655683188673617122275450610580672104730756493603731005761396821007627624696531523540941150452576755314314483193353204750152172478689824627053876617083078450417046531313479988399626930678967218016971760129893742563011847689788442193314198401596120086729352644268105724541022990072022827396262752511136828837876861499472658518476168578778264703816909797787223764319849516283841718285684546543804008301942942354307497756592602421937761873264250003872153571862026948274531031523419868197598456817424054784332248296374990588763682573267027279811213880491637474483017471169618434191064538312216236914283829503603968067444352716827986326492700006157689283679352606325742134104695229084004073963881817940218815690955184571547011900220697450447412994974325706075754162698373370293195697637407906437283942740469226646974756920290447798614637389992638804637392593391607783815282416452817771251675636183526204068711456597637349614995246770417223261899738360880922139786547791000591837075755266252225383904673649845450412912462629674855750143027562897919354142471730610489160135120969424270415691362507028190178016496064063658241253342976288010075505203612385000175779090142575245922055229012399954778534490577342640227240664800860783984190934036719038739283965004529895052524057812241725586188844573528961666271241555621579456803161680701190889945064631116530310564711964053015693061012707192704393962642860918753294045043824238388596438743867566702924252400942857098808732431896783871968308357063773712270404457933558917543418068297551638122884047427049408180589088435730079029618473982397446760627684201818668372618040168387258150337333327436576541013303477857874458521842185588842886709200373308061066410860564605220990412394275271852436004004367507858533642748176485167059400953037435334016474688213736773759206459552638233893641096608478381460032390176398851285586249703960873585669160757359168823444214799925159427156555479165546139880834928548709789932691418606856662258049443578729653179414588859940915299227432887620344832165062582642445373448901750836703362422379299557205568826621111375810324377825833275998816980259659960378558052385789802950004673508555753168696897286829952004704430342972174336231056393457627745112307782436360588031914235450235741085904356819956393090196845959168408800527400753236751153147907324046378398055708489885737232651822530321818863669261044001430217692758258500727244100616916679132918504728032718367757976849131197607234834371995900128252862117817383716535866584540766902256202384786709888012481664611928545045173123749784595386004941550973764868301153984929475396840015100153528093806202739509217139833095462851737261815550240021492412657889166145613378423798424897281236534550108268595676999611999800623922298398114956436228727801294514369668128184773033340694327865509762982361623503357871391031167659753349675038989133479458585013865493989256422324235708639955824053766148887752404710891834720114955789367178800310071007323090917708002362447364771634230288140158153638762045359695116829423445361618381326522016498828421793459919178649088712793794442106707064734389532778598597542701019960710578796996086287884839667430723147146792054634962860097068500327575423491497955611501296333421835195976427187185348032580026137398638258319477502803403533939961702039838352415114377563421921634205589371068289222539851032951830722856729125480709392928444880187320461391215164732331682272881790559861648171360813756028859366521710471168878016038446069802763476367110600627382512127018804352325862189464958678147006221973448302119561839955258243178269085133653754380583904118873148955107503626291925538195608304692972651444864037741073225890426876734965478694111266181356893904820051121755161354417434236272849485101341776330835293468629264802819108969315101937281267437756247439159726493548402664559089116046351023124046154994177609634631867682648412676901196217694313480884789671562832390757741633142892643805966042196395559990362952738396699021848659922916618990997780376216499102503420536883449026732755141148091943767287191672635496763719516687287902004464163350335352546997418437553969673303023571791863303737324158052046312906688869707387263772906952784365784863642763627619454055743416076286652503435338601688571527427134261699282767653920938119882651724094733692385148950016374497729723199204892788805211842862150588428000471890986248497796972587112502275871075950492879056862682768697220592636639475303082537325209964370411824703439826978304382730837233180144903785240207702166767937613250725554749878934557150901503622703512093872991639326503128392348517466919633707450317025050595228100323677870471591156347206943221247751961084860843353432730467298556137642671155863290651103561414013965741163549578583447536452004132066349834769111958682542927368043183107282376793309712268991858571132853269819998411677656017379482610543135834234813044466991657896964678520890905352033148281726665932815977083274526687315169319281622914697481999817373179903299823473863866901579613224185283450213003940499222725152509656931262119980756795721434920619126385533653982017862686534039424710927121485047417531979149919487470694971799922550058399506366861708200361186444132545134238057246892622956971072506664614750003154783796183500037213398217774565023904037005669387936492582335621262630149177761103278845327466009716118873111804411219612436162039483341832107665469214379983481658014275156157381516792988622064223115856071635832255824448133654706783905017872858609473037606653964158271942344385534759669301405495419539406520288520934111395138721980791935767566952398523246755904716318404713598252760652964644859302763841888551501547209312313553448464828001989685165999542337602074371162706190534149677265693329812532340163839432194077743346728904790732025413135377780892755455047695593153229272079819304147517443300675374264064764232883118565734540884716855778274782465542673191489134760915250857132887273389325734034238311655816480897059749243476456739332212228472095338683349165052555050584816363785617713136179723210921048069472468908840020138919405557740720736590074722841155779128270392577984387607119492417068879103252225455196620856258396016121112513852124137341825275520079349975358794712608606225604175951036963765799906467105265764173183394403681299977203062858479318123657619723701559555262663186511001633254238284983275872282198934101082082799718893391331740812137060223595969143061672285746196238130111334295884876927747499513507269688763531549889383151997706087397528876126801123059278938769835830748928501068805791115754606301971748311578914998927810393990818832643199236062259563184544913502929354448978305498233348739641740658387244863663926020203619712700120733149053441757774659249304569938836482606599949417603256480651671522350901500733680875758869887198932965588631822444619488248600381220357571131852912871252793419735249036508746759300351500515142700633048077375968933994123632422819787335724373682481303236025832961422105600214759013907838466609211698216105218958077074613336712595066071705559119882862977082545090085681369505637214958083476805854977944490769708484365122807304044926998728079707508251890673476416797960241879140310926771466805558963721863077803352229074902254537456493553627101005672528919595746185858688502966627830606320874168873636509395631788549374013290970948825826250575261903704868991413890154155666460537523973425618881069392376890520696789237061052970981670683866150494116288854343291084855447031871723850747105191823129435901614851053333526000651400434920236298967379448620171821568695176019700719749484940320460581361263814177428689082392790516082652821156751884543113701504243228074832672366902835435101940105450330117116607283225420682093170505061036272424159452083456225485538677754080245067028730614321311461494491152839075069154621873407735692918208757778087208854449875811303812402045215796391830242790700668644336149971791799961248321631839953173963503329938402625482916968173863264167853843109990494624149040501632308203315905233545206880525615993876915938853552139670208277632164974756909428580053588049080610444085284138902143373306378428502019380432298361308795617872894637746102538402491438821020376799027310243294129530055683707995567397739950635246691075233173954884520191673826078374685283666489438102392742627148457937614610020448841089081332635180720620005261195731607414297255852473125376868677834502536749219345328259662770255815336827304889567589219360588709674036936676754889776102908923350697000047169781507685677704921692853422312690438946981164180542863223728374283590818357120307353457527012068265103776306179180291159597276242830795905975399530361075315714373403240221639438399750383202199602518710420393414157530722612053260564146350560748442320283221530245271149436733367377364116087325594856436414852050848640824682614152793207486158709119247344505530292633822636317903962908485261927108543353926734969473401381601639276057202122516257609337826755004400381355094132338961118624862052287393950312067845645404176902255724923089236237803632503746778418642024893869750307648596228542469694965940361959961670567493294040312871384322590880858443090372357012353852738821992063554064307346170249482535786678202103764927458601128079344675415596914362363652561444263668588256460550310204099286273586016467999897362168866614137596797612686528847342700138569393200905359010741712778848558922931760125384184451445455931780566786840978876614136731919014731227309377777613568155266281357940604147591140313271635474257719385655813722837429374486585318212961522018330921827138806468915240752884790703357963551235391001134572409716244964858596548632782668778273026108362377375063309846229630899862592324649208518651439935540261707296590862461548758323286978553795932785524913404801143430027883322446285755271687096228301445259511091630812755740679312856373010010829559364893110097136609908248586697561436260961597577777836909950965851739130645516035320832754259270960861387907598049708405753343426523169802307314268428328170095111391939223407939974259016983637842493051752633661288825987119023248904046567615564945836641437396996112973426210061979562956777130305142171542664935449617195179465420263662191497169822152566836475310109541460164122964486340289772542597803794307913139274635611565144757453684094418837802068779205328365586611171335984266043429069420188562904328196634833476267674687374401479282414800636254540695232085152183938308435759896135037165391024437133114969893510058303400660074360047164602655368402123739715064034835904900769528432158144960464699116372412456892475279026295054949791703358602840400224196175207924465911691015215287658376769049424307648531359717060754719905732652321254080135518420802980599364702300009204428405846733926169673189782707127107278245918053548869233405178658343223934637247055938526081980621095457656687416280543641377880576678765225243043510598774712966046163613794461306544950889242029426547019584667168779047367266343167510633808008487904767260000802902658556175656085371600659066683665440980335138521866018860586406343546599326244601854663286853715036238551307642413683353499697275919721043518167792915096581886797457471616408359440484457779498563184208257570235671988553837668540724640995450765822493488003886621218455410126714655176873683932779633127596909211422366537928556754477105340372248104758175163922441254935944820486884365784494122989161330270956255244684870983495614619443584032780790133637775605507022100894068776481095461730782024717702254979015071595261112448995078344410084857645954024880577411698095004489777480432346913762539834973659149942073136964268158421589009165146358923815949118107973758946052927119729271432092842452715440610390878264368892037148038121938954107784119941568745428234566708029551190140054462854002008751939248728725241586465991600757245536714367133964971734325888195093305687501907823391064252917079358986174216027754235176109157335714108412235028092446898929890111352089184838218355773924525217897439518911582281529822553160257983224489554701871592915632056424096321450987977633025785490612472647164999479492134007354089563928277934777509845584654061012699097030510877290783438287845315138689531294739515666228982084684198865428649467251542547850405491163972951869937166303809591211767948776638619208302338822208542271793127779654851785481573624722747039307456037837792883210555136828957433425363576041931569479418263226686191436734437311681900160310207665238736052518069156811682402385703854626128761264680612567955734236187342107007793190087069421824999261429270876023891811750475336711930875204749853387122093891045979631667168002390892463479180103955537542461040777392370909038605988281927779940790917261770666645190933306989764480784534424182411244574990892289536840248739676444173475772553006346547467451740856903659162815094553441572878038002497100658205446580322657601262193169909073531310961103059514434377073858685344356600612589793502369217400015834263800826748093169153220217273439120003831550437919022761478435518431658945629297804151100464940271054015066815494533642946264510880354386255574839523543581915408172464920308772983377693320122691166702823612146970563537769704241395133818349179295833677603483491128282336855678458744491359792198634857204145174397065953330410798049850368231445924069192450798530484952926753446705508525687123954540553544599580771366209540154290647113641232018295781974563107029630805605825959952427784789566667649928681060747602024415400622802438231242001126826053032223739558369543620814334590463560625622914681170538729944324525932184967318473078443017668078159646897959201728456556856501242422439683923793581754367264691486974556473159167379568222197712132002105954848643668881235733775088351361493943851781018953335309710664559289570045946024877050176548409187041869663789156124974806730342193320220810547686874551321592907998413642198369506156645084711405813673275963899934979993273200722137215025542106871406982237692534860075737424623033811067157000002500978128264315893408461983626334424695513890998691024100347684411231658612110866235741273576304697652024589866554751167113117853035006155037675726625036422286330536723057891231927071948083321207061337751160818122236066421900751054481277110618899345107435324665926583945500960730669333383906798174893753192475430857589433319769499852620260240893542436343333000721061983869787174047762101549045462375810380071030558298304318775395493503774146694151951095245747302397372654345563299810388912980396821963366854745458842758357598773868874225047476973100107533160796043879738575421267848337629914128082607556758958543624197987481414805935691121800095414719868580163270756781441078759486536659459316671973610728628684700543592331083497291807588107427900696834037751280832064030585360949824829348449747217027887901227345767672293613166618580104227244963116871217511338589214329036972390146746806738089390899254298733902397174669503724726215502622878606089405150407731424935873132309055116132661841142129730996057587668007787078216953294891661331772439394201264179807499115461468650590325739859804310581571483661881906509412069397246536398266571225327834647860109800101211515460207653386598809006407840878154018319984248101413098422445679924731547171683907191752618229416919250421506124380093925716038560750016808379062198636622347272710437459862278675221657600113975778282061933486233360587226878134253515474598421689893993042258992667077266572162239489941700092902523110133365416846163532237410710406692381886801226435322780336595098846434735158323694195599182565926491401200291582078189828308547510517012779428115675165045117072190313161331090351469133420601721971901458446739258147908886173680802229327571765890260433939359198952772438356329233043267441581040136845135599820800052482723576262504348222166483525264404829097211209432488469458994415172751554470481436105543366170929711563429878671884423512055710277072809601321569962434610817805834384223142607254134649596896942324739638926157886803053762433293987336452406242174769545275419324012538944324298714599956718580723092103640662175389357722270006835693762980867674840471752218282302957030294132061571726802671768686374244515131209914955527899989134590536651351092085545303489204782157011426365137096881738202908501823578386312255101714796519622903937707159279675919613798625873949049321581316709717728608269395964438084547163011107716846333521803481905845710712782077398371427917197544994816453742726561037943334651651965136629821659334958240300324460383513747065379434138242386224029375412298934746538497572965563538158761792480965075072384257857036393165577201179237615489295686034368410280812617148706452078962948392261995084553703273098972828765055099261245979514071501004017018555550450356567943233213219208940025762632490600699141491220504288432728722570181203205013203929559654120582054469993443106703776537794380947563500447978735458079669020046026165256668240686666138478713125829068386947862701757532344462667984197710503574482913480742451899928413900355735099875535734865373341610598180078000868123648867508943220868002113828190221957560924899420524790271104910202681788040143643463293994144181141911748988156962244326078758446847417365578023869142680252153258485843864425841974683271564806381842216939000096663141334712147900283766576372610418933519550992744086019397266331207443166687435070669974262884061332143887865445244764053937018978995893131841266948603302097695502250943374002536334943618429181333401416064505035530782687903043430568475728646787572753789581274109046167118574564803581006713321565350564491554849398261634211975781526558949375187454012774717629645085500764581212123883817982973332330222089081882082614716001498314412607274943873906684954798171553354792972403319818353473063478561825371804476958533867011567903294163560823701743007573229467300623502186930817456461099693229778786212515993589100583948858545494381370667460281829727373904270585344286944874225944812933565838126265116247931501689173480095501990264818883338064688536372600458312363870038999705850165853913859997987053378188747798937672043762237714978751360001083353557933966352327352323402974226539897435939262279982886838790156357826688161953460089744450575631999052358668935799930549564725002340596597846476380509289748609241132706564732467362462675503592317808101537521539101828971112227176457638437873197444281749450286908226311779715560324609355251142918901676673694786284320882004820825784792758972698586708200463154495858829149148900864210048022904548894680580417373018054121940985854350635207805720596058777502931283965911077266643389042231430773523566265870381785617739209015185456055672952756868590416663580723967925561983164594580640825631608017251061053221731498172033848498939458434433866567940830960514465731103711445193086424220410997489406396890858919847876219857473985858751160138526318362624644916430168944079694604716535089838299430520600001835420540416574374719486192647279520578808733899724629661994829548644374722460042393737136029829676173485863089942834113965053664043924359453911449133600906308882974137309724780741492291339097537180037558950487531228326599798662520230543925586397324427662527204899095107537895532525513514728057712546563416830462557839059643882317327386443088905633246412470532278633177669503988868134851418236879863878650356306576215312538364203292116679197122360779560610964890120751804954835354636307829244039408608820697141825283069455101301005307625665718487379521126919235524372517584269701744034583385199458432175982628535987229917076886538514860843134155039215259129709440805756113931396949729085704312145949186398122874689590055194014825873080081401423906845406501176633613262157925948848221419930913146828905706905144318534542309326176917782851799704218361741515778624091220554452947812719879039869404677231074866011932926146004691431511095532987801538915224516155807431317481469092829133409008297809264009780011713505639057374817973825913508428787691960042718832372277049366411493394964463141749346548725276169959897599212451422188181487692267464654744921296551047727051013134768742966638102494359229222775716018023437369762087405503859234598046050926768797946560884063933679052825332659085414236739642828172059601705537931216899502140392969335710620610742190191813619451317311696074639867959015556341204580247555116910486407329132175018005859094640786782624205370536218050850174796102359079280369281550614620700149568705191355112689851502820744803743766661949251593070430480504448436510884704155078107548119432266644991748336387349802864510549906047216985934085866549286275011833813044979317518198329938591576903960844589246853810081619222945706678937935300695907759918335969564997368901099321866229254689112425525508906216745794722873423913146326647176906970135508694002152163466409826684735125583427243159436617740710296377553599678276757465945007228845489236003765600671562237212650927983624548433181931436126995076943625839314197091828766749813929334582543171846823111312329298815380478366021375430336358488991667664498668421896599306305260338314331583929317999843393068785572121296875523189517305889585663688740364637456958593076797757930319428113109157138390715041104935892442328969026976672649212176905956519881484499969555892302751560662050295906945422536371775483320723071799057482590814742492851082118590409068389657369084747980165001606621248339944924672893185076808648343307702408676411974810731510970569734998764720093126780029806841212316070479463828303313699737165148772649722051022934304785963020697995462241877277419110227015093045662085105598463966433116841412124313002700583885326127986731113958024557146158206286402713871004926745227447431247905058583319349479877509680494527907787084985841222541357876399193683073851066896123956734511870858295408343322386440860060076087735374368316408667344942098883899102891456887903197259060754466479068164287594003692243269747840650357768163679730869274056221979507881513011334691405628188413247599066687909331265208128296556267601417952606627625559226038064120089217757893901263377583959502252644626700985560139206408593930708697830790964369677313844201812815276805066777989665159709398810091533539679096192691931318607902605989290471911475934034367909719579017868037439428616255188413441139459181117616012961434567865920710935225712262271843268004833934788311033672213348132267828086418122576594373903835433881476475707967130358035469839710887697131583715027210678284745288642871357901958155580684927060399537169475038439328232994294258154133966794832935376730418251553999619874582259666263653480938288076271857299063950096018494715747369778759820680375419741864310011176297581952125062023149877196902147664174185549194869700287117891041674475863449253494256051709042222728899575033901669718553301973502492937301520632019337885625944782023467305306442189857573398127550532159620461989311734979866275724211174342195032722035014608311799663163937804978562013284280649872918463059428651279797064812856808244252142210425112383297633848018052417166891299210904998584678850547017548743871198686203724478186236429148394532619520288005871782968632890249114481702508785307494788528739468165266859427262137188120778905693909539276442789513917132748731519758571604924874716388314402835495041565293981627012559431467395767652669871738958662972336052422487291651026538264341866927093640812528850552063465569578574296518746399779172399224917143789082819443577353820617466584056866604567911926276348171671237959146582394502545064681418356624587805510233491820036619581050378358735949103453630417355282805119575336562329946178734575508702284536592951859761261093726592537144564292146466431660025924601932805484449466575109336371571327532076426038749466041486361905861524070169636999140549744563280497153782941544092054377121942516703602004157298823255686514055490090803735343579055286592184418098309076406027110925665262594717604280235597584260039097924190098791824565249748907642786045524047866625122046295636666961267862007653176168391893553335268186527272096506531969680354678405141388515021593706464784599090437865108685803810616609069322000468480956018904364172066237263764026038238386289595028823809431433774110726932425021644707357278181026736070407880357912078852058643968951406822176013081057315497433591352864582206064004014850911476196498996664550962428468596129109033909977802879346457286481321131448971744128628939226793039145201151074713693867367085241981346324569858443853496699004967451229352605035779639096438297098217751173329726559917589666954236519875891084064515913090531835668165226392258978269683052431015642998186191390869803440116634513508022302599458371805900395661292021950081145794545764087638202248989053936268389851868850441223678944774523113964806533807079160915844542610844085170766315972790482485044506936942021649090938611988299113584448733120904567070263943365396072238470569438750866659163454351517800691312532654568812907214696184399458225949742356515938593880449723260385141820221982736372975620226184700730185022802932530426023314922749861786181356588458433120792868616570477566198683997188212061892267822423924017429717839844086985130922806950396053153878996013612869418890580042356009845849946611706977694995541613785688273443514363518129578293195796569950751643790945345852555255536957643314539994127661536933175126503905636188251648926389704681178975386139347840392173108568318803069283675078983030235035474885835068508647777041349705393537024870424469460642499090461984185723498423214156470405232311187376679461658100648264679639013291684298912543134807508148360068344580562029761606928779788251718441470314918146939698036043372729817229243858936168816841176765348216885758046138065724828517129231073648791711129399274742097947669554711427206754178547779448124947933740728240281373324123054095496858736643353677409087620137312192284851335781986549151975182148993038713288679371831220473581319556957193914084216010713935400082610852804907795611171441979442597649437173296292550972730492557451816373221308817501526554652736301295076591347047511978552801647628285829311127178549959799056639218991907167634444163499447813818321166825412727594919842861205472234879521527968949129297992894056791897482071018025638434879567652396973381395531106417088907391358332777293462278431446743325433599013511387289378007229547315462790295958848937268707385688893501857113666848704334597180656337616132180039043271410770104536924830967840711095510637378339593402324599476308295064315372781971943665407045708982840183002605844730552939544277799864407681891218086826049427150004779548968851439471370103931909422929615600908012327161240225764315009861943050453698080994789136792990888936897794940501867451367515391284694522829154729201740115960554342271214410558789091884182864426363345622538926647822144867726801534374320367765641127258616082295380013910676536621993425745929530027651635826767086787050346590535967859348066962802872158725335375318177187554489540514029674087947135627531764905894147241116940028105022149549124322088689300783558909194894300178952512617905889576513191904856258561378331763579701655722850959983828357043725478593868319453672793729714908792433771696631211094883946313050150740068983705518370219570320753275067828668412686548591360786140758320261611375467030819606504943422284424596943323293064994632953392566861231890350509643919225184828213902179669852263975858396964233162735944344592946909569682303514739587664712810968573525212638045786990359296483178144686299229392584903183208944438768019202197244659536599223397779542263646315087047353381002733311793229582976419311298227881366710826399620603465605249322675162338604191282524989953046124712049727973659242270082641862255260945683970282839571195538156540508932185826893086930947233370398463458984988797919605702899741230423907275619068766476971156191333718508010572771150808468436420888392700587857790375858765003069071779401841142161553039620948117636043551956197494368832754206506959981813907992234323269876369060200006533257372945669828224612424560736255891014488866708414819213248032485432561385717681207720332139441383645791804173774584903304269908084503398227879973091554333955673025087306255926159562399927896177228123107762989500213434870859512926628541287974433656358487165413453295435074565741296594388395074868992657309016776575344207272923035160442930367822191572153992967221832695283080806419206024860645057704339133277061389324026449888556562027890697810329579575231012537770461057831497259962574410211824359685047554967519908193041495794470225659676124779079738369817018913890391242820731444481161170539311755848659725554912635517531319339275803556037035353663971640907074862445520365569387256528048783294841463399735267131938444909211456278946614143084432517583288707210119480694311950062091989102618394737195718672151058809195475181451466587997595237189806793213605678179842069050500911796309325507642443015355080613128882910572036656697258937145565177592622531067024480605287898793495038642513407668121009198646303259172937963031514223467415245271147194331312858214932807070520509134263227118577009477915331455000631376578243668095804383851860621692813554336214961532154005821999993403728070389598638479867330154563418483837142133957448285490110653510954016219613560706179076934060196974498714215183344841311807487818314168587237165062137762666486543487109379968267619137713994910038455196792521500522658706892722399782729954178526755540097738897598444618522866351839042661123853042226245110569043282602179261564999191150011106736359490718422313025707461146541001599438753312048244520951359033692291894805078086437377145024248699758521426724298858374239435936988369178947386061031899268862641878883386465927352334501257234621688266076170358717691733511176456270518352375651071239627251353534122437889967874912461038632733060379524191662512569628578002977760676616090777601525483616137340239723604312147116581137891842937979570741560933530625008246459597874002639138687812423777232955205575425869053559100227971237731192927993831499268382601175895724385575096205833755479619487462020517168489055329373296381061835032894245704050761220653394339747885083101461652595958727284948527711498508842726209778722114005531371847855413606339914184183965493480214006265035055676533201262786771874246018587625672788814789426693231339264890696815120390003491102917372156447761536209575604684058055109442606670274044581969117656228856463385131331467625295757613299643048195555786116292302410058788495808543317168005483268303593985761733544630138298265862665232409667402998586335189650140533569872945892639202147499429967929941400049810799625551930562448571960336120456551397213722852085268449214904495117980367054821646929594797379130251840831888359043335737559247029125132716832777236946808419382359983604591958081572988621760935604973553791442033806115547118492871102136820518535353874457261761932941677015409214232173981730730354512606347638055435114591858005373068851248766467629524344013035263711592146906234186549883416166587010254019363141241950817792092395376945416983484447031894093965631040995891143198612464520640908344704562071534958485738850488216084591462598227752280663830630938892097521553247892490861058424584053175213286711321314171049344986680729108335042598516149352780359903462776486702075946897051280550364865060425873247485844229745767998038724652188730651094242245639104575182535260312578273481659459320289302845234343952962214466288627737095696360963245335516067501478140615728783849591112745517159500590032671782714992091170184771225183280311889478293750532396139511208939862438477575444177444395029011783253485149694605926357677366832945446069562370280658641094581402134756828689160969248939802896603371402948004592475586097755170381576409871861191812726236029639173622948421046457817355956838390354362104708001043640573273350325960593676362092116856048242684742483968560934021999282758515307831488673567221672843345449339006067651050226201320370168408159503678547417404556125183433237405306266755186173382631715033256109064150743487275203202364251465686434426926447542117644944947262712246584449816982043789548807093673927729098592407455847581243410233516598573893461502926708614278408477899427340921562952468751559172215986913187547944047260931217412214538069350443015226928802178856457990357246142483966788141817796695274669056752789386093460792472861616690991416246593536554059174335781566414673426349059312478503587860205605331786831962624443302375526359882717052352112279364951734447092890587337515232904258251143823144263883802983175725542884296530309545851862974450380909930464777412274306664096068074563955856844289856110561882857731991226825200633404186417409414893109141610075134425773191822850240170283913746525800292438795114439358285436829020069943324495961571331509361589961434867453543795404984688687565763061040578479534524717501967614126344830761820577221039868829302196769365861942407814074992075113544718585897099288230647925942135409798432177810047744557009520515045599319296374006228405339418547855059752803126175659728167881586426523306590491534850342818606840071671841307254979979458053213178969749442663307441464669083244380554885501002631629903113619363557551936007849012635905344803598619519244379733378983482235087152022630725083126865608826867450248624101031243281619714978592520247150365709510479134836553838899878370427023783390949536865951595241231024013748323607433370011871988559799336390741695574037101376771566164985425629809773166330759877859112643923895380503869670724096426372470869087484893268587003032463598440796770088943552351208801599360682251251816596522581544906414125733109491355559902952273381010391000353859085550547492978904948115649701735979424187252836101360921508300820777316292068278722421798618941164190875505347172548807041974317470399804918988407266585474691402762743098321334404117156362133485765256110878291919331192993640925618512342129176354162310961102475202952396501928234032198502676024463892561452737855610696128290301092902386208582964699354202347766682586931904567498284482242995290591030803894907873119190677598152507861811702522665496546415970763092445128523127547022065710846911843916965086896014944964934700338665477172122996458254194378935027414406658307575007965501448374120385766799655244414636471979504883012528970031220140004010147535105707899884529647474114434178575778508583902160173746861773311145448078268979395822106514173507244745764919429560507946218648048307730697692185716248825413532897942508415347936421254195211201926144746820187139363839854847579882717493960057414625866601601629508113022603702042979476759274080242387332963480496658291499848121490598063893145994930197614881006947170618784516700874383910333727788534905437220165729555977869184666136577253537762975066707548242542492265468505059997320345369674578455037835071154142757465558087761448911155741526722778815469351028373704796567899887971031467802330937994853635280653760692198041336404718580513724826831850420701034431614768322694268505698291736167672617507894469684981924880865418971147625647296901918399793012900528632411124313653950990467480308548913337211149307963417589484939008083004652437868036316156628496597425995705742030393545561524817828191386690760914471257005644067497845639319324190440625553020330709858454763330293435312817641661383823823622396345044655820119303613874086723146040690132386675680192049731201305863327804491782386956717736703844433186516829587242194614146076322317712158606154913118652528752493338192399643179884231541313006668067573211448803488185742276658937613792803286507970782219455803754136448585066681183260416789571187076524918370636986080624272600550046995257845694611669052782910700494405775471507759057235241991759372150685344589357711780712876645861609578262275712944774025637424970675585323834019559993431131672231212922496289207958026082725254358784825130140033773236091984714051677340268391018754850992372307770424227162944238471113028449808579687823058835986342313915529660214083749147611504790283018119734577905897614696670650495072124936664244271032361596189728001864061185250335095405390765362069134848227355493072428448541132724125176086150575690076547539399852167888505572404329479473771879106920297144013722192218570499050663572747512741017717983400405600005444506127212956228304373425872991902078652542882397390958503377137242227402831407609691712000456105603999809510091639359013436896583660980873946346716743455830491588899154763315041263904508587566800300649130598647196867911274429696891660321715265646596816268703083803581656232788239985870462823269927275727764992367984050543801574870556375693867372801372905058598225271071075504677245951311851840553623609002215245540583853818315692481578532237371188429077054982053648184019250348658708192059088890585149233137632433413279874090141411778216821023720623016345735439267428618790378428993319145783970356745221109553531824834526255376120290407368293447237397665221301706422189406606601916445354562372026166709325058509726840716338175867896309066894082616850535660197229570085672752804454307463774104839951630353519077739457149666343046552939419299534767960873583032936132204440593174128207067028127588524144392507271340878426200424873689981640555339860209915426535838643513440393686194701736898556096707425624010259660401024442527234114096300912446992804833441531977246943208534021282425186732564849184200327365566629944594937198817455776703843788271072708266482462025550286753796297066874880046264425300664036667904024913283494602017374461790340575640376585057442502976201243339912875675032519909894362316244144509093482446851142502037337024259720247934924738611144990409600299019060538261578008771584411533021886416093657476463460427029328938183759204167883236145099589872072724999014362042427671663887237557857827028539300691424160108201772510460033263307952980943151734389312898124631220979018212635035085755857936336305733127281895839287806618915280149510640780203359085426912560652330517609571237480770967501164207398304421158596114911678744930034664171915820845379128571999170188095550065204435148952788505373993065095664804224484907092419604805353307677388438746540588273768619592354491192812513954946886015204289584674462506053612352468224640769961641044378815965659154929205198422522772503943888700477741046676697923794430315833171763818087822853805383040142294085365378930490663618530932726569092671595679774352581694348245563282964276296954550044646847557816218697924875776992087110440006155366320904612382299580611954606903874507791000995310031903739785861354949999306074237915732559983668781100227747288594016046403765892892234121833750996560096796476881022703649590930527689089493760447771516478903827172996034339403225932782804679878512950080088636748328609608079908042096442323851474418391739740865668374521801789326233680664367902971597300994872334793217042948262765657641182032039530535830088752373817973292923500021545589002944056394873051112544455574737088463217686945031411687726272136333163188351357384451458283471763228640666036773031316283670321765811215225200802296116933906577238064766174010310729181280938462739654951244368089012489707369585517227845858819276729206780553281518571137350804694089385302177321501876602352634726209695905191317289286333057389743349614869674477589754634712172538394851255967258738493557464915107625031902399444132798015983308307497541193682925212776537299981087885977892058776355089467155382788707883842325022699627943398410832007621953955217900187688036338657040586410006886042916801979281614610345706322931214970224309114954574873826373988730428545083303878156206401299925008903115877816134223066990537919127972371724574120067492889633918708692219206673257891135987890312865059113622093909376581471756328697901812540755016904527465165657721284026528526944669339416291650464532491924517062862984299157358032544472823255050087101318917539147163159674380184271922371229385220746767624132792510016878930066640742051060394288501745314114438756962317175510162789553353692653074816475986468829836297564093593282735602681781988563751429979363019815817330054155791027763205317765175232024971792018980050575997532247148614377416733776658592966669909926898768404574220015140937769929947108461182317104792453495512111793209611054560777697170253688634697132511287723231759494242567212225493505993854026372502904109783144613485548905428792024711078235916390079434933831512563184185017429764243037710322481129109795198204995196204056952269314969070251464325566899025974990904609917155817510103264876176499197629397069353618971943848298149471303941727008594391656966012322407495455870890885391728444879816910179229368796597956371262803543508043725320914080243540506121862232735716351021699929521290766683451815254442194892409394132018118088540561072899071528535028093748825740687330446638995382905465064996241334548185482342572001711027236318665084725815209273954572527459457652930597313207977377798919826239190258399654346674227161507336436182936774607653733380590908548113425734592007786126961245249909827000254080098681821706267334892853430749418201823238599629527310138094476047508331592032491923887087282688779737853078989214707366006831564633014782694019535504444566606161550224506283728222034554609808254565983516716243437158148349898471980048802075062262484317479923225720440161936753944961713837184603659613446286108097479295305610166489778798503655346623416994413408126685828372270162008424956902299002957832878108099923602168400579939577587866811778694557470586672466940423398804046010244358241322658737580000527687356112497588925003457515770095464062072274117182278708564347457964531937487881242729579220718142253346292501623117262817737210528453324291142784779718739642594807829556138219601817029558137773061518109464703146760554696794083499242484929884600836115371021192982734316191895798877738313782272562530783418722346034087645588601256466566551846799147009557626869576871151406389286344538341273141335396392157936609214514040903910413719226702321735555131147845180771625319107543752989381105218279681860024225271865824444676648273332760606465719015281277931233790904108823308168905121136194139604231623181293593067041365853602177419487866025728211132897419137530383888133941033126709989450025389433067493042039748374487856640075473371239750920915171029381239294466969259740784284938004803958949150969904896816329297707019264205984015477990226115701845982394861392950061042563400163071076655357852169325190377485135223475155563916647367172869093248220082190210612310081789218864332773966627930209582789157221792994328984584202328892540468584201515210050139181774954704496424816331555228417339903045829519746681961840204512233771142882527546974483163985740766475528005060474947531477421086847345708777654474705670097501197961294356202061772284873862350782703759050979999064657441978285569088647901449028749898003002795566738052375067028048390847883303302716045112783725127224715277802191748801262631913437750207959741619098400137938254974975794701569192570350891528693892244664582258268144018704550129257673539022328113798745993767930680836558947430281388875245563039316955246715852010359980367706606401909299421025277714226233687603829838950147658842064964961047736825029932001731118553106528558688947000043399975996203515275949059461892549194875323180771543025494638784682563358972581986703099447606161996527859719700034594204600060052674615318898660385270192084059588911789880616636348686122705246827357063334094573793039644069304385694269746300521021874062146282568427728897737371313625578414892549844490611126094798616866669638897310256625133694282723176789383290774020333906253141470239420317272946196448759611643459623319172288038303856889926967841521176578022675506652616817991728037478892793567272883525035400472618122968001563779823339361257068346070158708104145674564580163782062950721444497718890050553118389275454850307747543603142309672364101693898578819297973847734060624609247894798324534548353494844966286110066751744308740326021287054269616117106476071677699882266830594576110675436234932848704826791411551751549254417042040767361253832693630574891977720215577892343551488690777014412023493178800195542058373495891762549752413328285907115320453735449578526846858194623492928782313462161057097209398782369032980526099932479376345813532341827442424569318141108288422542406533027689967211088158562968441028335949321559028883239742945588816092794855030572037406316315266545662716256257773296801724866045461954857690664082370205523043163915133801098078945086483105960502669204208542907268048427351005000749814355924090373536297927380886712011513130280299191688639747933814089729141622616375971387177704225974124532458763306340824888615294725369242594281670330299022115958346507378354533212748622241462634171934730476120282126484988287070398411027051409218407339788949309566566760457241789463616491044646078561441425414079656607699775047663039906558367923556759530212129629110416971523513817561811167409800175450468375735071616287998557735126659379843505774523881870588247921468490365390416331486533940882101998890721358486486956869109682025305450188066231429669715195059851013808393076102616929788477663810027649473285225248719503857190199156723777341087451518347821400116934229302259642129461532229051225003330293289582756179853248389760856806034218329804868162651213789777674159657820044892111140725401351989727928540574880211762879258466309870413296693106788954483976698908895679994293298540240179151959836977634915739120453247462655608076654286166725492068954949839487164356484747329747279916573911065357268654212416410994793582378319122593682303596832225120520744407929917603256315903222058725362860926363785851975168580944347104451232437498933418589264813769578904946635426476029732167671497880081021309180487557782161699071744353306786350612324444939237120726806727628357645073843791871104546948632230639117345964005912546075614496699573363959018888177777531583159103864035118912782548495479171096948122135238158835948771347301083480217793173416082886264195094832718299977798163542986618609327022911051287152095324771759825356021728526966881526889560689228576162855760108571404172838555790341004607362926398927924605666504639172459849542827658458764532488250670315209589329485554231780030304420588752967934064727143596460401409544959023943662630152774597440910317320848022609732923979881629605473058718542530846612265366138839179521127120080288982613933922401649213507227126230132712743197422821146074597815962245607486291773246528164556483268065692484704645343210015920067347484512237345663371530081550658378149197773119525334105295641060786445681848024350145126262285539694053313125777641459368123858824705959815507855332271813767707992358933286096904221749188238783913015102544171045852490888074875371162891396769837885099566760479070115746563609178706170661366087715767947975104187840495889895563899377242184051636291653590067410636801754723171559922416692275158947096692417034075072283734859003177633717424835581959201915534063162169347235150298367010495777323554876954824372183716513598573201793321391543432832670274874279699353781081543036737067259469961195739331426242215505295670280915166219641779655187351729382522292019681870684181165760869969940554469077180728010181787525699976233083941337838367596882412844583190573566992489644682964751544302942940063647797343116477578599673255196055456130386045763125390807982075133902137921171543220191554819980289818259266156423310788515820472996223342246879445657959760227519842399124598969009268134246851352972449511264764990835555492980645318704669721813990467460249389553082613303906802357412785004907532021550214139478290483843477267873493463759818324929141250774075188346803700942642351962008442260373283698862548063635221664200543581885051871127663039708843635724610951992304965576221445242163188664053167827054094738378439841841536823473898308907196142963330672388268769588561160092371508507195679707890712373453129944240890411799170632649904653793126802092194823470146378669772145166574980754363057770021450013202703962208495223777666109112071968418682486507011527095483374680002836976266280089263199931342180899771936457559507542784490897077843968468152825689877035390659555767484343908117078397454745226015553006704324495893570984174758931347249878247346132278191826746621258541699389281684511405882940787988076313896151970630117816865450184719093432875793095690801708115571703486978102205428251101306100827030532064371924206476939856117633029721258532328371222910110063571395952379007247028009512479611757189474572072707646022538123619977895824146001794625420464399290450944961752995116075481159737692516484985124431340491112845377127306396292919614288685589858855210448426844389982828413548956958951478790927254264823789060171674868996244714488785240733191582885094294122670729947196750312312243116926157421602829766242978204027889356795950524834430466981602314222343297589810252373883140416518520880448255486284930934568799576794236093417128480179040941917128216489953941092746509511847739900150744540629026977178336174421260897141013716111231710553723160552246645839079982040397394584268316361641364704365455584950759604531828858174567674502697516672308264758555679744364257582517251131615605999027563147581132895878637266639579605796543232512881793108585422805947342311576927504326733759776845965155566832455417669445750712282809182520267525470489699343020065280967389186853444620540082325811548547191007620949571619922687669443635861933547672203820078418852614869914355909214622031625537460710560938343002086163819010150146565157076173334709644494525907345041591701450863106326150284328811698760740961106807251292514632278927256728993238347110495215750099445115221011278166550564126136862277450349679507623890824198820313089943049438621471142233943321833726343727840242881449663067817623184525684998049648787779511069044751535463241018306980468587715808961054609699892346337707107036632944029111223517959166715094521202528951104802908715668054221519270055341271439830361790290462993483508681214608037675760411828190283161896721313473840318839258244800582148828613748242904304322734318735659317170615976613270625947441233761521916377193408941882443523798591058869010816524464132974932429594045022312819086937538557705646705786554948701815989821088697728758892542873138211125120709443998208763463977920246548715158652778908596578735556774537061059873168370941267691803915762658645690731499319869628798312232412203463262245741356850604184689672840070031254466678423261714027050481195591296714795349801478258276967158434127423105060125256720848086660624196334296198138877008874843052325878542262452607971015213887273527183195883021553613911889428483429716385624818246963726302410637158596753084990184816281609731627965902950587860061281273890862892992672275420692450077381923044046562649097933882195116771007796198075834951686147529341489634702375491421421173827851978826087689078242999796695382397122392336682631946324122877654099970566769001569804363901519721261115812121562144176495283508942561487876816637250236910563233825281327662081050544506743694720069452902698399180371019948485874247939595489456049413455197195889837575450087074566474516418030384026452380062739404253992766126337929792903000985763643710029353986445488046644551781510163773608567587820515667279246454662882051380764795000946389828844870969102237931103720243082871660892741215921983989625636295249146697167478963839122205131219897909878283765812072690662821777078706168757653281999999581714068761837234190879391426445171745103542319020348900609015383372824783552805853131117117913159743763677885922753209289501078239060149970762724776424553939914725401251222881057585395925457517009515373400723422032702799885795342518242195566992809823007194494822418546397251267777851826649038084814065773760561031437209571806700194721597902219743617325441342492748139649570308724696276511735784026988016943761834209247859132683236909186170040058087045949096503961713583520272057938146589774856362807250192287825873230570179732565752258423904909447357468717349104949763401219069917462314652117315964952911014239959307133648102078239788000027010776542440343705983282846574542361035057350303155178055143068152684689817950725960239218213749254419555483745516929194995818886686195204652187934635376463197605766006750741675678358942818595372756158899431528274424975812613285062342261126663743827065378168073759649917498726640694122075393059599302071248154620970798093372064061367347323974234119640764662158877768652831548209952231719863203202511090974395586060908090916571444239764153059973687368753832686671914679169210474708354893844550093514254335464613669267738869603451750357444573965727075737309159439346806473360767080188450960739219046096584974829620445384259893562190307832529810130443029325707422953768439703538533886893657026985400495792343777321578665902696377671426885856129729676518146018578844871246040512208264158974000793655646806389009407555049288192867835509611661559748018048786305642922066996525064995566967843919946030678039672132312085870446360963889271457312473753046559961515137255740119476630799631343387209207921370039827707691197440258672001712611905314592070548916677090046189103278461310964166162220737974201914817108048202418815318842538201508320430284363191590351835725155378272085299089135504473728422820711016143600871716496590005363319296181741458985036279364957787646004472892013141438930571934075552698304563411822107117222751802932769257137804258493021215872495512031106694789829109616200454380907111045750186061499947954689333384806897869950317202397591360899674399391124891262179043445309216024841738660859987973479479092404938551692495952795599167147685202080433712760748329490290254190526169226798291924933193126369953223871068810030605749090075906071093814930497027999377973900663216033759749344228107475339418114568019821360579935109052714824656302665863163420115500686751041372568585378452052034242805057160279373479846344983464449479722850182526961300275335689774381427464332178573748828947970712400684948237402121943818986198722123216985757344303452607324355183122942334829459039636652440524102422890080840441057770139928815963546420099600885650953797814594567241803127534805432510958054621519872701503119674538534001116533671339637423789555112196224723803951779193331883072660876332327781473211378937065218341248409254120289810925455204147425936469429472794165822935509090669231100287703019514653205387941738400015149441147385915764453147898620264752112810547851508459514158946922987505436860656524866094549478652620263508606443718678731420159930835244038103274787254968050059005810257740149960570026682079650794215820091413811160086441651511241151339466655767383231633887499149383965501532609757425422862073813721164435432292074247748752954574795956126798932962583268754721989468297365684094146736403465628899380971692756358343372802073941595463438962108097620314022332908592827517636158832934530630901368908566724119183782422189347600467250086427053854952277569073980346091443051417701157872732955193056886344329446055106624504906725919985103668171984395670411999224147099986418957735735427181614837581470667406356454495141073833014304126935915424568202981020831200484232334819178226540910057077394306875698213419302158795881041758940723495963324467873325404567085403066768601293183988526022782114061791329340897545708863614488635842051179313284560276913925452101031482475770467068466053974134530870936854476179303463507046526799221525661068935072292043139365716893549808143738709698984075580277457059915749984149378327449857610215170462668533812336573193940424095015905129285107019776936674351347263351289338497041951997426132655330885268960390177733445410878254175714973982123058652038594552011948178121884623478545489688291215156795536083794473304204750627721916512021330705085247075156156256990620030146328148355506814750150824524406056305671255803022290463456635807819952252533119161037905504856072337005596313297956002747105481884809964983538287201361676110370496999490518190103354129988749589383193747448090008440745519764113042191559186728563878568385556584907623018546318459597338301784874934654145843338456543561340305542808532898749391303716721569159817726702377589653149536019047948774474034346578841171789454906205314332613741577275923564487450777818149188630511346826404497803011206976164479964692238969043020092560972175016044933432476553103289438437355073387737156542154420179266888392274242179562987700546964620040478533852992102871889687079221071470055714623011506684347510408167995903578862914478386254535008710458853493806660783507474359799422029771752313060587423789081485808522840048677741405007845784793487459638076148117158859764960465252498072541792083492311993463324777241430457010322575759928343138983422229425225541063785691478820180313626170134007092726456779192404152432970741266290445717647052204956025101149347591989461763529656229088468934285369667357538543207325395337282614716582702277741191090037352642475750243036562619422186490973784210332271781807418271982561040727032143940000667704259776813601958487439179946943859673380177271695905838928896906981135606963352745773704597896897290028663934755454801402474583144998991059643096792281737928937042189650731046740374455326333991603599703185301756052462582655845233423477201640193144965350313866904842246037812816605126349365395755644226630578564196052636891832890891712201950855431448889597088091851286241332103051718879987297705949620331274739032494683096008266922073038873500294145917508657367798369988887008563118239824814004356471000992567931192755974978661677602552236829135927356078279037840338027680591018870299442471690049951905895483546964453333859119277210575510832680480667329739105315167926126795787952956372036064501411244704065778232888954541515604612667832584549670384834510776577527557068161828843227632366410015834835036113377925609827992480035519700681294049896355943130397070323586992117334541308540220517351603510459944034541453109324819995978475971307415362986102522497017393431622437877937299372458110019032327863426022420705948352019605527826793017450154736397360152891870722688820337009365120003967491976502799574078786857003904191358464550235135834429583134522728436325481796822827353725165513243721761705623167709082366201907932278077779114287714676105382311034228875039588106033931249495417624546405191344249314967320684995169786111726893982774095519176574877459354838324891491607157055368525070316399709816176019511977731608945358386860520623382266695095803084388819664071716206354780166814941373210589296302311590396168549796215940059362683053268850993721285405776041430355529467238744040582192061395517180545255196476805116114135939830067935000663069692996235488465567783663893276949015546645542543502608393198304080896751719841202615355108713557502649146138629781541395669137249913556937945108295600318816139530213829500745961362573045222478873258622253513537109172052456158948157651058936200195062443151056574037860403017599577752123787984053648596872213261164387098136196225382502156185701181792172146203324363904026211163480101038623820102258944489656110757584462930934991042402235184856904931984902944398196599604586083630335033453114613614485061433606295274491353216325810172561122072004137800257724592104187210152803673256411559763075604136224356567746049668910877949216824519771722505554454717368411623175326948804357169287443167138347617273587396094499892513114726013418879822830790460467639594565434043952824444998675563799016778718750028490385719030778234292725228593422785578001812429556229844441349643297291458191340300541126612451157289141415490072324494230575460414446824158096473352307866599854988848740587173284986074562146054443830709582153608862017169376244543617078028296572541377685105631588413221259024345356700690417510352616788929586186342569893912830599394680406733639637668869370012215623427853457510490013107817211390411239963200670872197262052735380262967088182539718336726568047474540558793820768634718543999905154645722310834737876319992476112165493478226102850144517163174774312578175938162203578183855010996611622341593157908767416107873229457091539446848024893661102858325279994615738120496322980469388101889506709726797340164432582735709459873583345883441283329050191347489101271191394288551060803790408128329894789155360428372210236673774241384603945655519801762885787169028432841243223101821710822099493068303192273934395416503529163339067012264261760905510256966668551805980018522452554250333842287641918170666508483504089696197324680641293949536124226068444727261541421732524073751516572425931465346307857193778432634292012733650060054434727622285789717039749431609479080566318913892016943114430197571218512774291950324352948365530327036692125940652407142923916916936527525201424778202817771911551539825836036311599887294547201760373558007519017420384232058081170086311981936605657087053739759135749124221870650734575998325281978818751833723872781892414460827993595877529201593420161190003168760736015823502177146764036469441522431713596362914676248544348907114508191192721967324535846043877341482631139766395578011133068653785120682400575401851204067545638950996284427401932250329595640267881889181866600653923706150803291461402160082324061872091449250011257079421966771871609557312083694285597915639228952049428587245245178904380226562081892078649512900491062360737669054005052911254357110649815886466024757617333240483566689228121292675241024012023705593585727577980483652202526613387412790841517401314530552294399979035039578093459074740149277615777447195614724544370221242269346567201807992721264025408147199042972323835581947693522711492460456658043221919028114420211540437139855498655243726004258584411999288364216856458794870341070928930348284477192488672706544856761154494286716786372823548749053773842746481062899903947499547339547692152542366006419488294482947446127563288951969632677535529887445119713631377515961946602493296363336214070863167306684418265439143391712576725020232569189108906352810184962234567061425948283639299262848331153639060280984565622898995085646117172066388428848965011041695327475216334450794005683412681154092421998914327859563145368245271959365682266238502241084253532947910878657163317075892848930570569962023048697789418461789443981674762668532526610003047215513426595911018845952269400424331356611303983664110272477197241902894666974292503543790268176266627089164261141721480665987641236324564377461274407170079806845596214278447099430646405829854817924169146526690625157525242462335607989268562166827532732767165126420236746017083077209728573305166275913024138927288445976025512216418166682443588787678878017059828771542344803208421713279400920364964047487301823396654208905186132080038579195026076837726711925087764671062364910972638665028718755841053641857605634809819307136669890148394462000027471453018485018809049344158474341237727065754074550455584977123976100534020756692815033172864857715645300113245822769147827673944767260230146480227538186841001949447988062950740422908131897267930431557083912135317402120128485707891496913994138137277590258534759978018357154360637335545451387145773360696838601997834732371177612041302232466196075349091261584914914369037403581050853549552219095312955678237751307602844405214760210326192301900261917428843175970714176805787652355158148010776334129633970056851813822395372323150779314373539473907608417767673997370852089747541015910157115681850174940831091740248205442857852330633494770457526278562235469486434071935923972629531293512601411360488972629923584384793379763585592582601133950012001722327939929577335531610085985460838978209107373494079523861502249303930338474653494217254065857934472573319844622930372730095804920480958235925879419308303085710397361221227443798929900909541299484630951228147380282572789928588142452838572918524114755885626810280404310052009076001327803839600782546703375104531983110612456717584123193671581046557487783262244296221477519316203109491440253217591820873259755841331102309928766070750001110226567901086878591293923000278180575634639868536904802763129204467934813436370444554626161373924234440727518397797201108085688580317161372855702634019113462910982510462465405677267506052263140503290612210879867001017245669861223411756114289103654772632514696679616938500458025203878731973387626791069999157595712209047247412420043631065386320168245197265654122439722532368975350845936720074823747449403910016177993785978726734675817714511927694747957203857824741473914951056564132703391948681522716752880830677601992850661944745259085856497763201550186857838944803604541294905334399373298224467641081980518117231303946930159350950574333882964773668263042455825555593572714337143950007574747172956410330056136737076565580861602371567640431206678950510209998904730444925967079048187912392922229853244386267734389654630512330314756891198412727514170452082830591462218197163391817897572409629655034480630107458492686272122961955856799396894016062549413462460275341273041249146890021367826019845425762221943498537907359102239381005881794953040989832997226255352299249862623619900801746931596670272865229154322029646134518172426616948858194792172862807470005014459846786515851141909909935504304058949173979905468858500044287138280044930145823240965830018377470343011491120626200265962397166667254097124312791559729665993207606123951997107051534800257298042108278675922526570352501100618602483836624257683870232280859290612539992053817893808092304934450610460828047355517348576533921166885445580850296052725662062509182295011971136660362308134229581614236498434216423940251800608699219114135818387209650332555937591400950422324107497967738287707551826065103773067564220018540042323024367423628277472597720533294529054346207723875394045637932648201178686266465015775382812076389490820290469482610065480580727152845355307597262280618569195024654366433522486810082831912298932371105430999000453009514767063354723111533966617539718663235157399088576066300766044931874907088543717274083839245068069132619148092187233748848851801973300916346259626236839562668444727377500932521623317905493347801159118652036049173196531172584386057730160060145979054572718398283508266252486191567743302339100311337529248975015085981425947085333124395352998205963212339615271909016176544646320718255708709188742673470134025101157072210143282714459434080975028891405492272353708046713122838777230993263233907163845457028776072051333641672548114955878092758595475780956941550015974258420665587624841383512672304862379452693285393877740476921214803052652591179295085650497384887118669007437651750614276562411435596171799780650430794079492004213237387439630718886891231268598960201248965085849456266931694797784055666916925416044218813755229605927475778942252638110269803648360740131172686852133438558031265985623888366128602595213374382773262277239746001429438097564636271840065702644081647898534916850301627961361734962291443119192800293493921491461824986226082808137976105842797967941935471758979313036832936905628493883871756171721806275195883050323353922398030631780754788154523329183202616382391706948327644907941720471305429337216548049086011600710615532606332866426321837633783274631340598804230074494536802959082767657197053755944256884764047641018430243667316974472329060355413772884692501345950936725182687987482433024261353501220387359321293749691133895825741980922651165350574275644256394306020594551841166809539128911879476626738361678801427721311553248069373099714154966625484712961976110929445441787845441526032455265228581007764687085052520578293727453724958679228923509968876111246625242916807230266613953858306097047123252224393160494671983443086353755452291376116403860521446973357636716864008567744239932955560698940764138278786899486602628964247722267435622963667055065474353898627936109195913321393258260633158892590417830732515575911007324821840386157876883079775663917451648842457885805393843970028460514703200113848493330331092674373550288304064852861821299504195264578733675268393448233428359408860400547373437928450011605781875972610644371991692177706330283524138207229070843854079523425174548318882950605094866938289137476862305733968629762124092922639127286177768097232644246961108282555801765502582989333249385938988764428629533875209249892892945831470142103784325571843170185787862175899604663022252235475564500911672220736170352547644154524892100485588393803239752511661038977996918320358065943758997567740328518016871354126320552402488260729344581018011576701305598584934439253089490077651736674242732666654534037876154567604621662044281891472726239562880970159551974520065593389277370143182305557290749613034466024948447042645311774828671890689948147913430803081737096476948404268884969948323978702829337029636614337983794714246081813497810360815880639960275949810479520897427022208501262070022396993283192326106169730319771081800961856743194003656021368197847319238966032368403462595202915289129928554407426121326831159770802810609589342929873788566515630964082210274011210287544560647926773600568487052060824852765822489700849405662142485458585678860075232516006019588947865953648157402254942703352510742911691534199564963880321465277271081149668021744526785198623760658687988736058110575211207937864827354856899884660858991096547575649426677083992742015487486546476809610120735031575423396930081623169833477523857404922827004976389768171645116985673956409767350304770435591004522364246710657591633937612850245958121505023000711586663713105174252983157783470615716130397827854026671479517023566274119768943775814397841165078534188157336777780195276706469631558457124773619226186461776869452587940418736145799548498052282098504098270415644309411261980768190324733316153695709860888960652578112330055994472636508400125119152604227218718989409657209573078221616382174304394445501693350099762223261737263483245744044220306765792312162440228464136116112811666594106252353937049291419796614983121980087408004019932399992044245462656577840401157014977374550163969816089272412343281449396937782039782163037611334717826284379487068589977057603505918392287381580133900361553794093721849954806686120776707251312454351626969653421013788220612533216043593597336116249722021161848162150364848748878119663608817847746789945669309820071231698918600959469779821080937866315705646397194282497706350179130291438272998866846004008321677339807071638987166210957453133652740052166392722993677608752513672367509411962766092342388795513966698912377139543298640633273698225844951158475951120569859667563231353979503103170568056365880174147412581526053995624604955154776992452642563172455051625588765754672793245563583499150777396115733523714674297332088680824328878106466845894280508001658217572958281129886209714925527900468335027227839622562029721317347449202201429814171675737512991838693264313934069278289380615101959654077501500982936156728556499199009308170187489410829977137930623634124249123118335556289377817585707119091187692027041800844000662880433789749053672301952063720300334234222218529585596413489552647854373382383116693754430538683610612210483915068996967761840249637534575133414898320605016008795918791231686593630840318469111167403689829435696315707956461660724823744055887556020629789273576122204942648582068950451997750953694777861515822847232354795089280519456686733706640768045690745205872297865407502206766487753800930107488372836136381099129342645969518762675022182614578168095410580325915253264815146240573753017005059041324768514386013442924606944265444696734998078304457929053401131317402572165615172759178846862235079170256749863712548925796540270702491348480200638276099821595948189053341844076179013165436134647468090923660158339232834112820948286682117415439935544696745296670763119786574379934557218607171379281239990796215010060718805807446054432784021137477139251354103090283681406811323381753932008753992270444703558731301407677619435971395177349836427730415872408998226300369237879151069001175507926825958894601737281245360308033628946527792351442677561591629264750970383506249506767928526238968238777724157769837078603598370483348837068587460762881567619275676695294341345483977205006514884866545326602908921309178469929551796209805992085903518493404374562363056429452940778454436472166845625102849443783131952176105605648980600855992330486439302111084781143601336124633089087389114636309983536966181897249482189460317962840393628911347519719982706283438542260323079132177610962351441597668712476380054532427321190381678751671728235199982766919935513842235580224664884934185361711146203563606697119934053737461880660420283508748029555428775332228967279099257353581788259251619545247773817483254317945172063282031244310747247149915644591988975144068195554050048071810317693421584284756643218748841050081662378095189298011961910896972433970543144108124007612208994214948587584062157451869223946694098384481235690668324166984710673706985804732289883717377363395230653314444888844136998963281323018221357815519936831341495899237786383331330868105064494809250049621311023851150854290351460709435321556545923720758023597327700256430365445065579861820341558515417544521165341597791738917525861361156633706062417646123801074218547891405818732557653328636042232063399683637150906336492424802254637897985321516664026031593304503994564486989205075124909293416686191039666924258336452902161916144896969936321928138741578672408034206136027089940809591145948893290739387755646955635759083500189519903790593128264621865745872245315230272754590577636782091965144668652318126543940466038866915312897276886575377446179340382517625337483305172388795130119557945576163231789728504442649326566493586572584318881684071881793485758365200717721812320647390793063166257901389541151567322430546989065349094310995364382917023501808837398235350078406427468176910339645436896366097525514764451238077802649443372224071599285789597657665240713981383843398877926926771748813292330269929705662784885989067705794088351890748186262696578824337129952540783468381187605999484504213092845985875907118266504069399755288463111890157475630080451216247126826048159633778718668335551471640622423822133901367243528758457650527147396100964821743295057973202318357561738060070490879619093838087950773367795201513614544782803149166798092048431590207924667730593315708483639509301457341251964952096843406035162957085958920852383427538444091115297307651026709033937026115579092231569084098801658283740420098371159543307894545603439510427448040914372187864171089521291024157625989771592855791601432573092254484007227316990058998946711628254259393150251860661847481943065715869186803687988487554298354594044007347715759439816893145058732041811560015077235685967981756949481070855385209441967484695137269941485603505110929929014031987943836324588196112380460473895961070964487311701699532716688011983710214396991147568198890507689840749088714890928109511768137601249374431891608507037860802573260893398016044869502221148197714689096721494379950887136614836155376785844338947105658463974013802231788793440053066603809661254984067156375249661345152148631884779020889964542288576071353235026665549190811742059545737341000726092093954339474067901896138822826489324389354342311124262314416938216317765729854242188926603258865568491077640023243946226174255263964651990245772837650722581221231675054672815737270895041508190076787916428287064558153955515279248027841128825588630928801464276047861738281170270457209871938750715905700553881188915005533800735818792018243048345196320801375460871676343723548407815531207391978170969019267453574947861477951757871085514742401275952778202302261019478340779795602589999530261809001059071187431696274412998882993410775063561939801919476768865000939324081941145681394864382790325431404056303530305541348281488691254770305679494270901970263689640972477370584579692326238520944729929588862392554835726131753714853846459727867395675173265719300494429362935159664539474797959874231116608777258963046842387632412756729940167557662639550418081884347406423144482145916520190966870203877184774337030666736390226535017070312546441225351788921824797854025585785426160890269356187376176504616569048588911847594338722891645062923298057263703859792960228045393418317851248076348367451813791587536278754103969136227027730896860640861670120586625882904422217912588369751270292470997495968093302438099323810374358939163437057593883911527491753568652602369881433659204176247716662725300318462093224152304146200747206648805736503213883889082066569023892698111060690762634969142766262322324189927129448689625490396246181432011372026318532324193526417734767197212875802883841306859741732543667829108027442580837240463037983750472363207314652575026200190097847715222074584339192627242412634071522393545190992285392551987539427735753634530743750419227266097657655288382520973222153080097383124361199914534369380767122060066546990542639507730064380844845945807916882320469845005153713476097648960479451915386519251591317830524736518371451276858820439923988342079769309161956941558219668176744182407418499941462001615038450330901309888213615888869008018126182510683203299518188688039180970529303046651705787611325770286338296919347089412223197578961282634111565196207795297984330066563760594234248857220545901512473837355348862263179963689388834779828445191114958743114788045873809410073193485820279521414462415288808050228594221425255286645869075737335517536776718487546484718607428197082283262946294779026403820671437040003639507123816105647746663860369099252761978579981806154095003568718722295712339383868505240322704564892762429966586419230759574274182795480863284883988170550499825535709266536805177531393732954644761168351365302128967186527197530462713032429737424803873989394916655642519880948524036290596325444124210144996052897322484587072278063318281691553985112459487598048483671398557752654493444496675226321381921779117891345049961751686213523412672409003343208004437822351817288804767947104440045831317983855218592057398195952013479866729385463119665737928893382963518370682960355464224693125566768069703429139156361673869020022469955954852516731827397589657586076707190239878472782685447396735875079065302442395093959672161256267222444234648040307177329678236554601634439708471559425010048986524115363698056427610374719563186323136615807687960068803769733663409599073547547055507188849507684362845258698216418556621769066535019657959647244626590704796307796787479285907796487583696796496077035772804422614387371897064059189208606940509614783571339236038148869555904239970478144163273781213538774181139571839926057499005901980863768211730164501415315082623288042104627884331246851379613867180913420841636067657277251168699755546602718711752881810044168785854520592400575421376564290304890562895875113846313089257773471436608469472140899473923857439468775623685960191123172359290980740047937373225304062613937686298070848388025878852895817832819740038662031800107542945958099369466732742391403954601203325010069096777230901617386185285938946663692278205259102473805621475873891491324217927922597831083090468953610962537913721376172015889557108567141233617225743935035160067012118054600076738053631122647358201142003344623611378732533017070718857147834989678210687824741472024026802761636351221225525963784897569476746828216642435887743907357013090311909261394413811026629991111766493238066005968773244876962484635366052321969915873633017495318002262805596442200189423358108532852528688078359790182736674249922529754489236144198691243417937856072993264192113542107700204984465982005913903854190311702290564348637542819927706860107930948593040434496894214475828677535869952708570118782414811177777393066761824091499519063837409313616450426699143415925957322036001380640010516699449536075794071957479373962711384880697882063693491984224503565979949556934655914300818701286997399385638209821970429128528402603219078589618494916714510428979578260771290707380444138775800621049753572223610795010472363663908329107720025385350398200389694843890219956131670284033521345874147356385658661981689077188257157379994208170859332036591698837614433791846329684216293484052443099422260654821105035509936611702631303858993339500871408062059683171758301687755408239171053480933919754121432262029343112353481926996800047067618832768892977072425939573991748525454028470510100074155363503384814184119232758743555309871013714240054144392885357898247528130442973902217256973331184147359383698767793929468397845589705730291719404278186282408906447124903841015366989841869980441621102622863116638233016241037931177521398223299475707715977477759053194486799282629463046996138375283442605331471329203686519344814217863875341815299106029008616879216362029139483409409410710374622072564119367212615718386118595468617525646081650359706613253364823763211403400682479714699962204388125992198383808441788558143613466416855311067885204147439395388111355348272518220037119399726430538777386774679652149333452620742999337905043392052278423111655210351602213169942068392373635348171955453881041441748229011656121807444458536937815009355696784329736527843384421888086567087707664598845072394627359937023521703226950821938718789327752258246856328533433170340974872150950078715010851521464091125517209160018337735892190181129858479055622787720920901840628083973393755300030485996802015376126463518597858172983012825838853304824683641557954161433194253506785126427780592058997077397464175751461530667719531199399880059508003631649460465448518031291708572806991644951257291940607245821025223654554990260019749398900316592692320788018094470645846384576387089670792761288561104095473426722527955780478253206951554526679109403150115617037437172908494856518023795669097971333880943103144268268929177382614345462912315106229607115529545323956870311695507657070689731040013076698284034394694248770732142809944281705867256441082522493078325038481665534034721316688921389008786374181493813334465964302158839067114706665197016804156261117824925590594081920994307747987845735989063294400008106071289789147027918243251540584436988775453608289245414745724838204295826702401085583467913413547634499782113105108262927251328467646930084568795954696210275154396260421511985283539361279910283422424713663594114821754107802342820132502450005768615369992914637176700206621947447207662315583057316290018503967032357377490573368756197985330253546183279133329114325699534940679271389813011400894681569068844950469485874017660565984988242551489645436273911698688347934407161586937423152649963411056472209139987493489858857627471285432428386135827190753890382652590991762936319957447635869298550212278795360439082074815764412172141655956840199404899068129485088455882062340662454755713225673965158702026976751042451533720230740138670429044760289728602628129312898548414817034204981578313807670553698562804711929369868674938104033688452324352163601004917803141532256358152690247551599308541199517227837297026280381079409976363128653879124930843731675972469032812464804741254077868290540190894294174507002055135310792916941846394381185565027454159704153054272459623622257171418640673352490353234553752968949255095098011434689601020041575398906810693223449612289645535423822251854494677288040008068958644977194031742720043934790865752552505994610231472099134604543446839417824373105584633800796553783700416563807271412210268679897540203851103186061961016430678783919702892779737748342391340061422341864237324890319858692161467353811447378737922262189314793258457505820543474059549910845121321394722982962762711178272876152714997614622518161409794397061729566654195245889323347870615880910268879688269738538227715633691893495764607338933652522551450673218240360112219517075510793299920736282043519501166783327253941965285832635987038509355320082565890495487874886237530136757525935527723526446610526758208871086541241443111225814998272459939910097329177482553689802134254337808848292903446305355396372496027788646405331316936747522474871382210465681647648412213436768011372646471650175830059379893697998199530644180344480807170965902376142375393555442858843837935931647032225115373179261363784584614045899167232257092778167673614350854115583900646536554937540942001767088021643495660666094976727595748283584957945127100165690568396264180188868225132907457298185841146631935582008795999126147395192106832937106996835163104552097215518177990702902320900793050413292886798712916823756129713592778224728132790129839436777084209965230057279502434646922884206641784129159629273811460838214118061775711268283341314962647062778784219069916861350513666494248083592076929693131761231280479593139985829194118198295456219767849605442650525221121481189141220180416482990661601786765066333129028152892380377168855011551859612179444342860607695663325761194452269937498192595513463863146565987438616635052826980843397394049713001864948601242564890580480210809752974551886670802503797960489040180837265200018653503810378198873743988689279014308223011520268836125826333446102876343642052967175454188853847920009744566616882776214122833071175233070052415470370712680011874286373346443486922166728597889731734689518574928111011193978771387766422181662686689319524585480052125482007874732537933308202437175048295042019342281575490869185931288178504377716650629559591630292652961089118980232355762207928763491488084367014704057333975414397012217002358916716853687117339609526656621918535857272653695313799021414038180037897747475161662941509042205130125230509788204559739350081604647609153027092575427549829309861881596856997473826322390135508037298379722632060567127297466056996119502876380534285992185829188085153136464619155609208150751295207343383377001710359533525679328983337981221282482505196737114314865420700772649337384084192447955616247495126725901267250090623653357943050351548900669494179889427460004194461772287766205652424954721980193544930676727408828310932346314527003377213676999184895976153885626305643923492793050113552205366851723796802870193233995548750390253059577762035173646927774976257559598884165820591473231942737422444101398346488717374106793479084650688222565449630906700926080825092659934704949981878935205416821715869414425846770178596051033828384908422116949811054309261045491521283976143904585423748765262204583702973156140173155588118312921776735250874029257437915137587530842919482474434055941284940300127729675349024876904788509927168429290193891257206427754231868165037121371141564456725079845221935437453705817685078680823543891537412968634585307742413986109134553557203285753572798313213969903354323752595350954371365776949221123501856172857206496181138816637513556966720810997830418580915036354349929760811498135530891950350554550673584302432401155099406279966867204642439771290003620801563544706584365578050350415879556000074673194290297642672510061730051416489291065767594327302722132927642052594183356364765194398732782886111775461071777456324118335928208276676946839527088939235002851915389802097466751955265690575911516945076455501380864886327943580864030278823911473770448802243745252332312134232249273937403759070076655474334780359548176413216907433637893220925455437458738824754775178846065076945311092520027263932379020833806634418408408047264123403385300211299416664059144124368274437977329627484009283818393266602635757044971399133240400478800849817774385767407708674626326262005484719215970825224642033711058835999560921169975110525683053678938575972631064526424379714733213499791299902157283292513880203208820291145822877152290527986142109349803693383910441191973969730811979942410637731542340556084766065704420522831296474205547090448245069692239175115025444136681403275151928445168200576070044892410406222416435630701879989573723273034116591233722423369874478769079688380306021473891910604412649884021530447857808178695233019173133938002637493167670782239100825150986170406207532632584235220748925539315217627421176049064264823690853644237512781478188364044278436300149131900441079118409947569853382400105752563969092038479224661279023463893444639028741015962676226598488493040638458323726166178988052284266744632113131086435324656177242970517276246711102077958453431565272711549852482906324764762973833987131765883501031871295349927842915020013742435344072859428197264636797202172170029393831016575306174163002053614508637617135337545213408542256899558648544504501099539989092751931027331384793669292845673249262997750860350067671079874197963955375983010383183418715360981466233425286619266997952501433410519370257189195778161049839384161077845638530732646578274603979027940858977719195843141420538749132216127464286566110042789550369986317214251647591208647263489512248447183333070524757600048099297168653094882964944684560792575873496107024929175367230374180293623342635355494311292918193848897641438139733241839432831144524967791997638786948543520719238618965993591648824306573902800687255407570855218732251038136039129300605416451098399047566702280242822589991087076618643678785782437882495094071303710700659185752083182934238839119896907183522543576290371655958176155026601600405609864190090192797043482110643764000828594388327025588457426644361474696022706953153099566812016873233501829161588519615475585094108352413729348573529555958085498811002284593857732932496371185075662406017241262250649943945668218243048244369176764830353688073486666116412115377018511751684903200216358536749171431831328271316072014540719048478398961520913665472335033657003864148757297350358707366841334144686382047748316390920946600151406845538511148490767319480867825045908940799143240048658659155488747618214535353876476827617792037931784034627056980993174471160654770353161110748860288354334447987869326548942459668052284393449605260130097799549045775283012626857714552064964433957318365468239232539787455018662631728356371142536420724797878800306046612253955229987878005407860932335009320701161460563656108114195944035426996060516107964835130199817215208141985667977025129262732924514387888601658978280355775310818468216981642006963354584575157073175244089873725950742438711290696910203832540471415411394864237285611645416800140774491942535850098417682764278505097115418335495821944025363663167521683545903568679010250721131485908201496650403487366225600610515212023994710944913301561640274491654473322502753055453465414633030489529672519953536716952344646978272483110690710306025591342883456989334767114723440021483075465630733799111489926627349464685227404402556122268106400501167454335469698738353751597388679761306694846270095814927360438860657812924175309093147101634142240823753995300766188416235628087953249448357560078424275267722479181335768375452170974791590575569869715659311608726356953284705702852362947900327846988434048776663311492683966335512114872155063210372343476409402124603894995130769708104204634945003474597109773835586512942590066877116905978268155086769788886576224671312909648461454261766130598056261843165595407313212541929601957880397591054340086268810086555260569293608874114630650213882705760471350900110357917345712916881657485203467679372589343357810044409068341621795214729236370929680524829638044385682880367635570487420573621651607730070527564371272850336651759455733221797225929686048664136363188135406987016458422607391452787915820390231517634665213214808113844271847240921199625199583395616494500899395635097755576761811262938497632059457615112847157871829468734769983647666154435631317527538150851684547650946605718161017875800145898690782837012652532199847994593616590306440020537976998922502568449010535241165998260380998705999191871731864950003124173724410604596764549166475140659851002403320140921739299743064061425254290642011104801666514996568756805750691976191081616341831695043235210586475243996039037495428923304208118513323083935021985908567124217109081563781296008125883351722447629558683951766724065748796426920740659450393786500013695402284820699015151299652651132546729972219906860297783343445837535553899799244573106102941608282441782480811947919081865947887818240698418457319990308097264881433207153133657872782873766418408652201172650083241060599117049561361868827953688028029008113948450278959662495530996819679922481888108030264867835553091143368038565918166700695548183432569616468969750027443867772411906392973433172020480429619153926035533310073335944177858804671717234947834308352197426727456840765443631520587539983382101195335237446606818538755301917869567030936818138924114253457399420674659480271749000322161954747505112979949858299473199231119180145756595829218097195298152263912236585915759438746906494823643976537969507356188162024765100050783057892005054933354962113519045312156062033106497388896012218032828612934289229731997697613967949839881450548939148228892323892136137454524620077947416169287317034764363894107896747234440585243554447442234557554155257855765166650647044932164016638260577364429026063530525262738370859453532263188289444740268092088115609420599146438568750244056645980984577901812841666298014365178284439931243374660642843450412140450749098982727954233920163203327105251257042535610846660620166135292646475485599291429917504392782585737865157243172060244747233347671288047427059433215616385947765637678071092657488073472807820867868213489645913937078570239978335900440368672113651473509626520833171635541573252934803533687583785522064639482298955750940660526203393625481757292503873473936992520355928654359215122470104110546785839602268607850552492481609618124888068726279618481026183408220263220220363048763431184212045143103189726388825407846213277454527804490210796454219652538876305174588241710917040805509135844108392940173531689216435027563507321655928849637162286851837883437144002562432619883939760838266183808607147610230357894831394689340530561785265953798100937474833835297100959932937317375612058488973744243350205426473904150409524124364262157617000994379276220042080921197323491044100930441222879519287457677923025707244895807950006288733405098995933787964485849082095576493051060871146180792432768374638650473010852360627388685553989420617932858003852620585426137706766241702005137295352431687968179108007650605911670477703985175914353350602809109904742879790696740949916906283164493277818106875659882524129956165071659816948317437506077355404455861726539317910274819093209559663393417024333353347987291602066861174309099037712563079694899953727949239341814794544809111367982971475099806470281566772479289582937241214381487592179452674458220584153876928657256284615646472882663809576600366421661816694647313756007148164392806690400363443323089456289191411279826084224702013798816388711570007357354712279319896836510041634677834000615507787350914302725121981165288174095766399615330594858184207550357650702201668710053553103311794885684584457144928468798607061571137733301938536024076616075958404898358627112199542472470379492943496896195621754887442055660134644441288628753297618518644828663884668844169980236412604605138056614926587728019337215210088027336402567692328400818287875352722603808525694873453374048640963619031204400241275184863601238059789300824703155161868049585655965039136382576292019370920092838848965996498338885736806439779692582159448578106280211979821006384653215323208813733389052423792784416811156862772955278701497457493993405182525821887259209358509653394880000008032933224851595605691334940580906973676096361549793472441087124137938801445825277750535147280157256248039471406254315948312920968606294924358815388460301952338502428251278914556200281534433573551076257165696457605603534461386699239189713501317759169240414672956404062369857647329319915318436991717313612977556932011525846252221180729694026266461937191438207572015753585054945955356338290682520618418464252399989711229554843095128462244314709330780357871108020974459354872688511647115020530191148009727432133896819802719707464431430795716432700987649181468947699391331750407916580012819334293530879649756753030279465315316601278861846592890283005166319236768424382984871773572551066180201978726894175546260013976338754781365330915132311870406991422677870474641782502611586227148110926312645851235390820598321156083916965291862710852417503149173890084587943739426009429417092017736593290679586646243095680830084037989903320243932213115422038737274197121522691626886547503829233821729389540430898151629246966460139163346195356918420792960325911939697584929025682961354430783589495164344184772929637950090091062586808761950442660488087507381088383422562160800740542904663101859981520664393826342272082629941974459229663120712817139558677288326384249646373942290847945650862979410389183014928159109299589910637334091123857530976236662244921085315600210790348688257394552364116853169015062597588341697467043881851211531887927338931764461018362943233056701146430163293818206521881048643191535325213865262772545429887559614369044276325987997124922970440325646087637497396877826485191868524085095526493696999404280996777700928501511069537883752806288044691958324658796185097986819272103160195942674033334510643251044355626107926257672349594190066046400594436102227027249175107507258915616851513283976889901501341061626042463756780644003698149839795464041979307269500401652198914335347324876919574316635663831879389069229894765942818248058966361399736589190405221419671526021273423334769994811665301163106343991525622572434236200833805677537254150757059290570482163923453319082970208591750967487539391808012661677820332095079362678833390345223754750663849437817210277985879097692521207032371515625554118100708318108177970200562324780025053655712318755160062164867674154950892682391333852501762228524420054563850398178024780047758966014615095570738257925031805481276980850560857181891322481252596535658430393786327772226840303104282678152474366569841787831925949464947128936037280657299592608962477738315716293734047725291424344461238164399168929180222150727358356032098421660499411800749123340580505040763699384328535415071721866256651894869203729367421043490892628585732173363014329996356697923234605103495912442616443619836525263892409902013897416331726642224297278846199060413750803509059548594540383741224085242196132218840841018921614269279343383131538151762428237146144210625444930560432073289740111958642147515093322183123696853350283770085520883621041263408299073366042786000174795750186355147898989370348075180992887881450571917201294832703567022532957085510670643681102074049634729048340879745908455939227482827674246242215997297971018807778352863793605299244473688226176166714394878643240138652867258398503174044328526106658057040624968818752910767652816104392712495122423511488437437233607326317966791508263413643989465829207344224089760269813346708530846301061486351735980038073691910942732810891793158130585884716557361665194292914359924109419480291267174531345826968454179326482452515549782730771043456798323534452418263983707437853074789193142698438499607681679968472562183817168030942024895750517216108615732757009910839062241574505639105278181132566053429578494193296171868408119256666020799762412260317015170219392299921037586427226798427748277765576348695101590855834986215890687246856030340845532426701983248672242205469300307175434499677323136653445055814552827066370258444056034754548833375685803618929785116693783212643319098838314350181805050461956162700339985125784284003727421719301425086149160675985204629303589151730349482879827377310709084573632783363675719839544302942644684905869997230255329488962942143609111690798692160764005107797931821268243337038770167104070209774446103088598451822318676246542515847998638962755779105378917282952436143290158242433576414996750969087646012500463420376149341862828457743852853719527092435701692122873232150165802335553383725125551314652116844172748086735440332377747719613400474921059457878915682210493381303448136390493278941680075578402323898386569835020460833523919960020848026383794723915899541098416495852983493637520738464619614236777421317165028976115512983403000456022183851891545489492470496911930410436440414999646297561055980603975623958874062642722785963589581757673756268126583712750060591862995631880945137252651529038982933545183130204745839874010192643641201570112051406076529040848883410950297821875309241061129017072922124789236340895122293471281996243583488185461972363078677726843236086802322542173592110212870760897985988924923106164680678765516502042817934674592671215113967764516134222769009445854922239278940192241348239437157116810366919623956023053801579850381030306457369328831141572085549171362749511932686448338890183915834139349000281331140945836188739720750708648844550341229118093720720130444809832338557414753187840777811745545213319518093276494163231585058643323974884690384485761939525238371952028158980186438768002839027334880474163479752859336287795857949790197567395673920724525969241721207122543595098463285464770925006198450318926179158547966511699578158608376960920196785455689321812192654255012442722844126939498986123035589150271041616643464781904406030203058863165622128032071515903078636887741468550310143188680177665659716027756168659078711215595963112644768690249490113475771794194955574951639990783926409255105046547845310476170761343264096756155153255825297028202869722938538126467722382281857749172479150242325571648141426154001427959548482681747438226135424414563104019099657538017607343814084523288464711168737892729374474738536128937363149892449234488851169593481573948666811172861450349243386924185735033567109918112056914116800404394540502999876155344349765816068032549301259217684927712319614420374923130455174275708461619932647381789787475340909898115146361668946993991710018733647912370605821376926192229212914026058318541468760678036735843224281646350088188349095386924358121678453705479404515047410089662877145340526414749539769368065396612649322030548736819111738366520277978712637392818949799830127400467037869480795509542084458051616448172544077104217349682968121724922040247608680860567523870695289260268644370498117031650178676374114779177018724117190738380297979974566733792251600074568122189671190439169613532377518113210765335629015955102330562894941857172032768544472672478557088982841302972449890533716483502877929062715913932549731990242229509834374818188132903135113507080776990853161496065908287716831551457540662626171193362174791485775612320950852527396357582805842476931392458847351382324410325649956927265085480175347547152038080577364646874682645615695921885710146271697159123721158356220757709902129287606866039979803310648398045119041894941012962949542844391460198327153976603664109355210542866324948137542686320934849143072698450029291481220187146260611711194877489380598082932345407861858138216550783958651125419722151033267006489120514323394181299175501700679953517005904834263673122113946943083822066648715401795126645213096636732570166466303894046243545347661210226824873834886103275764388688792578885826191571548838426803934776136982007041610348461659983707634356326398239874543644264447062761305506191121073329119951121427777955528178602804792860990006859427935791096185705568914597527103228688797655185953437360952717777522726971491942659689086961871869967328862171991961054408335440016681440110225777965375383347196847193609294447688017382492186286175774583927485690644846270253274279515932799513731200308933503460392333546468399056863716867173351281910996772033164173027191013584309572281978467533130989773337392385870186429193195144765013132051711439685628014217530027951744059202363221547074605539279117284402349381630333941795772461049709945486621789276009721842070448635728475031868507058111664094426206241764852767197653278782543902938561568680241791611402593867055089300229173192876528619165682792625048050882497542943795229036067059683329422495868617474279363505736674275361232348208312507918218693641573043598222944628340168201364993085395388162412923554760568374750376007432132625338764642603302479043084317513598300767776887869244345264516303324313825956405086715010862530977382117484252743256418256940534973290272341471947306568954847129340281417904943089306872104062087201092290829627687197347661978186519053884233377482791533032076970873873111512679702525416968616909921868826222169492400846307591824784031973117497347886500542173164916392789193951952411137580788855416581565299651162224368623925037123891536897362573794711731718556225205563719537936908772979710077041438802099288198990965276253162039903393381083584705921103678080995366015859860661629935533945014373796543554820917980570855911408379823348959000472237270123209722918470297132771672176421745387347146945119223899294408931782011554956929119241180807586659579978478804068407502193426745630127764511621560675475247460387584855172303340324034384263870418808167814652956559586929547716399301560329052065197759108036565216648920917784659391969684741783638418992963167689795321772843478625315307915964232133867808268568255970709407134647478678150379712833428348421584654220208213135598300810835908152051898991441369026962507285769633547199054979314678365624128235957313735576806433528203089022155920072596171828288097489548328310364924515646730640804347579737930443103281155268324906451401448000012363832109292103662337430526785391883253194618766122494588564640792714700236625916692681690480674848732003237774743847807456092584882676010530130053988050306725342593380419702826729375019901869964725441103020180391827138811281532421065716367966205549172778362038506712278156558360635335296031336603192176086117435729241801002469667778299578131883119799669904626234903087848923840761034367103585359694032467756574097875665797843104828073954722295746670137162030613220633095793363005175445105627104187141344334946083794526060666817229254097999113162083817477547292668263489017025793619282595916941661058617715443919615841512096299120180668849585231594836763765722701997258405022815904837899485890009889693960092322421259166159268996467896351690826456023213257414425310089706158531903510235875888243720331100116130717047365691216489063674281299073349528535775767954586868717977887397357989077908307721718314081752388012066752740916545514042849521467903841100644894405586025390888258205146861616187629342187305019141569005776425013549568280447137679634204109163892966360132010355819051403207611336552037014802641729855155505033163738744119259545675668265388872982652625925638259112107608509947749942621040820799637365230116717043847909847872924242366063557581478589703541874550722522696153760436350528128659168584150765014383285436901430407588194213082689106217223532875852288874945161849036568580292851891619246109725436523686426243844242856613074033064291848464900084169377136007340902830900769365595905782120343479765821589798157406525038498404082608805453051468665666239995210708123326333257020107121649890868491027994630931181987583124917632680001973071230976302743597708961499831035638204616619691008631047497362552852120684364206557545344164482657418793343135686985615153849228030088952471942788082346428968182845938034990935943826831860413812364907126467884682994175240347040115655921714152892613188946598711247143282309294895139449816872326977762872680278312260321382332510842167360719409261712348962717653350470165621353813170629094695009565720579708379630309593987579913011840382997817513916320494199139619326570286478075739500930763292186075075022343752437937006510926857174650956339386515947121484861786874456375629515895356476015115895926747384147389204207438892773382301484361134984601628000938972047104011548213451351630953638431859409307939145367112083587946534104031734537894995762990972590031823203113807505774434487680070726633047575471785987221239534391464170450712907911159332641167236089401770992007389708764436331235897624290233664258857355737587195734719191517205388160971335508834457425419059844781668738674040970640526915757793547226233521265468725373800366572205756379226036464885806120518811537792076899289228471645644727204857970078845317896495667903115989760060045097551159731172512042914206681380566387174031751917065681081169659953155430932045171711535710089927509075034517723725560977343660036345774646863200281502357545417499789299820061200306154545981020722533195515920023348414760496875841161733322695668417951043705150124905290592138155708134004293856811667892276596289134880712091680610797625145689055145432289899888903380828746122649526443892955276440530717436611271196276747063640749349644569466982549979303053688467072871914372465021759713513514769140408609652105697252164329247304950380236470785675257968127433675503490275626086238058016883572566875008087978221581069130514275024363357116901885996368771564849069466783823157762659073021666644042424508432283143564398339323409159710778562611653965077179795554629245079032148108484511727593503042226020073678112866955471225493125971007167235758752775353574537160243589293826413719353761247982023651165482682365675636911801207151999499472871400663913148424326711315772449210282268501494740562148802735397933619270667818950973133915233376235172989278500865561412931948250999047558999362408895138084114425254343236190384648921963398543329294196084012105251201558922599907478630175271019414197926093439648213350325038488997262005546529134037213499497055031454872147227137365696450321245296414255933534819165331506840818717446666280124967636914188808498712605983995859722671490170551678982055552649662206190916835711358619163238244690397214640975854792328664882313678579545083471555140995442827925432693272856768634854468287953912881069248929143492603246379393883384984286294811736938190735422227543572897403704385928026606441633978775787971407372693681024608906014993423689031699565526040447102140514956152239647921613359495199754747063541895137443745872369511202430213848520668052487834311015511300663784131103111798401335410239208541652334554976494822064868361788451446421760508349499533154822918032189527827544256174215033507296505880359197811407574751164422629566959034790829826425269762144229447683217857196481853755607417683510837766768446185886479617576380444167444084877540860282926332831190211897875291337050332221569399349647304383365214520908385756485603850315381312418837982714150898773882306321649960012432227923585259841344569694350134431687295029597534416297986482728816556003251874354792368152351383879825535797739249273873803394849376886232846108498197151052428006640259005686681863362165379451136846206542224493620425397083883270735486677947757162183273782400680492736288385627387581558268682252742451908867358581223542986842839596976442204636433140788406381905177121099989699443941211512752280526109848269634720597093189604603799177831362449691196286013005249503068406376743402892900592545921719580722937942077016130339390279434057630474678416354486473560858086522877163123023876256556387374333872813132402597244073403032174331314218910703705577162478335494727894539352265502682667998874297320351948459249261976398010477078663808783945754660960013414397368044836707536435861534924121290143036004055282919850243839937226222258993169693887291421175888711286320616520314140845915943753054136612133153493489513274226090786001075350597820634354775061173541700465599433916952871384158280814523298042222024753185716797930369475261362607635622236865809166145310977615631875033631410512613480181710104446290812905764822555092693924751677965593609804323451560389511939651111180089836310631959664683605996058430823048701972319823958794542317982690874744533819489748586448786949351370052020260452484700211201461581228788495338177448359982997700583661604095335337863202814740159459583440717533274867140395731736150318884880166445098091351191853322953885656067423311602545109652009991573383044459365788401748977811007971229467996041956334811882916918882351776690301098100136450858446624822393278453104074553979215160092874596314185719374572522954619615497711932217400665847208638506252059614389267340792487869370903685772222465026748658508153046162460970748965337201623104067516529776037819755994879373300534750143633173802442561543676177978990246357743802865485893817848978670469633230891545378044608588701608965439126635475358144209312634105753704509303689734016159686512676510330387793942625954768696268383633317011454511596453644195895336662717729960297645058917808950442799014672210736602348159212220506100231005952012620368425800286970262370643238534423621331105346625616638823712318934402318899555221684657575440597412704428412910524441258109025768882444146435919378493696194423610797280881455131195791881971555102763429069349120041547756306916407934157032504763325282895320369558849391926541841198683492829387552966396315054249582950969195446383342892885744063777309361408666942260272399455084723017797387143576395300634105004468101852080985043236996838050663328201766563950527726731715284919611847475816242264210397946756764041843719984377798527289263083509226979417540338815933933277179859824556715412863362204805245592246625878117882319449182804313545320511681992194823618300321453386178442373621867464766251038993904280855400422689121783249347926189653684425903726681029529117603542155415969373013898620876684057595815656579497558740238405804772194556324599929708951856503429807816351560249358357891736313193602683440105965949519102366477888766898450745894548239573194328016097040535832570541354165118622974037624773978799479843160068096749581783080559941284749470925403721144617334702976102465343976400467947952017181469310303529438431497083432839860275614255481489904789636545322605303036301420862254783991401395960851958149098694394691195393257092740866371242813617411815785951365391920879736559305795061951599423362785106026431064133214876380971634081196311509455953578312393372419471161893223715020766642539082529553481883008719776710618773845698054384172408960585559319143732043966336759559148927825046474792865185072568387363745539538824375222717691579587787610829759054719012115207569499056076428865385530241901445300521018840960123718599457399062328864239283982648653570483432245096965198318086067958733940019284864081839960251488575009322152735639842328942291173959279462908554582119003714399963056988338530406504925817853013466333952157258547746522603493314274636608622886248835820817425267041606124972201573110019778757515789520197783539938551925788792527969884937420733561453129984438994675875148169517769325537716267122814206056574683074772177608797053055785383233409446469843171997140147362099434525822977572998905641631789959682010907843605511600529565858999347940423463347066459382490045233724293875587742763886350224222605761360086270388712257417736190244189957669659101051580361832504977664865196293580574948173047210540658349857365662463177420162014182263410699883804625573280894103279697987835588562494951265413425936137172475030407169065376337387156601283403261973887444522812893692445458632331902943103082716444336853750288770712796901633352496018883689165725502409366800425750044731784489793306016802192831803237235819483794272422973433085825967471514590377412431084724626153590207199719238826370408110270402277009458154885444226295238438105811380737344589656101667623404922206591478611945660837464124447714973091513390168315999840384656453729500937951000578290929380634112049958236420220086139249896976640568571203765371342316472120590846425325038667405146437369549917912046287357713114144289455401851466785187770869377550199581231382427415412941391538808914773314517962465788034799304726896312241614755000086484061920985017594808039012820434147355976661608324919361576895939763814002476304677862514569473072149474642924340325502089203477497334430484211699640732034540045883829053553420521475500869817899184684308737960503029801137106228194761473408304422958892306987973072211132125516414209584662600266645157861399086267703044798434911181797993987519621452888305156221742423904915363432052585805925053762960864875942804452201671962188623098886047312365693272026109810663725375334606863718733568849531006413587090096818461229356406915945043386516903658800916594075941095860165715992618584597497645473575049706954213354452513926609487501083102590599464857084507550464084927016614665158517072231122045430094854560472294457399035884690170998076016672997770274747463124733959241135164476554925271482611383636403871943077912529706592316864534638367733347606637378378883126903692171765796853377390741740144848037630624620067933038898737403236145102862454973858554424679926901840182158976951450658533485407922494993428042652277979047044232685677487931645236325655479835332231560554351250004911054565936150450614844860828749114303755614355853305533628770399311378148937891864057235842539462796525364150864529177320263669295028349687860310913080851892704541246551709489396743282224396246653852510205307812635622762048731121231622950477079159333346673489795544077511148962881755120096760009180713462177226957994899906274342887740411038914300170436239631515103649789262171450296858379174250968824924738050057117291093272502023233207875395606858685732442183992022030565805605237625329881174580036746384213497699297955993018087971395140531155442869684023394398983493920155028172723588727806281382723517043779403351635935065680479838465018070271798959903820474198711817121524448984432828992664263374440307285452564085579405232958866266248549347610027651695662528889452352019658234478402363489513279156647496508237797529887335932643127918880075430039008208922107271611518868177367549545467305946688068976449342961938034796080537621000520933320172509377194912495733701568542145534989435174084206055906836033798885345258405678311705041319682332188307698455426240908431815671531651439569735696855556564076128190705847702866538585175920696924362400852312246326243858592742340732612056487175565458599543426810927515058326108655051365410961688392159243928333020328021006838420100192478230065263671398465569366199760177752730579341091310449555203298327523799472347709306705039524438359380987747234722023021838775275303313900391902802461841420048124318423698364234309247382224642186612480593112931824679587147336065991571119752569752352018938956830423015952811145119073445203281328047008369981216747389217359960445433483238587181506642733612480673287890866070429043033013807922275275663591093143504417124511143567181504737120892523341280290661272414459885509655430360220352748187252718379666150685967229596154352980756822732618159681872287194959510867281465586932547767706715202896048808390853312441057745947027615462071019186262136784392875512199663857428025295182983136140146008305903489624347138853423013398371688692915985296726757876050696404813855761060512198610373537633653478064434438002394050885221547917273418885306330664288860192381811754349838418091118601428422025380637207815224190657280940877537442482840145369260706616687760118157891138075582537905839992633620012976483237803342251528766716508864892503205647209245372384998106389643473525762691827791178495732461035424607811096790756672775998729728022998226015534579931078211640336826694758556691251894609654574572026419058421832165457383910993142201665858761238389191306131847242828022978850426963415069807565222541303780230945012114884079377825093736477019674826773414026178092906121202686427592142640433478749758329663930485496192201153602490965895771203439611588510138324338754233664637042439774189315534775383221160142337221863809004851275737767003357245847383878874052747263524311449666371835613132055943025389493051768443603213014525666461712124771308509432117692830279411888659900157615329272826105824712674818552842814811458488845614397839119624002170681613361137908507730453564017493169863821324486533959965170866742678441759529171690548465070601607313073405643612171319634718120708212946130525087272993605846181648554462886700105499687701753329862455078077350850142535193588274169904635921646844181613302791739646379036832980184704507476602346911509240486548738275189564191677357996488396125419305994029350515312670372418055147292991592067833376189012046235404988379961320596793001142118165941125466261003426134063581913390980631032899277233482664334992910179414689329322553934733609460703629577909854017639391320797633549379954375232745518638943989498003994266587872167781643580223238959065778256595154557652394179437986736507694106128719869527314522407123285368561245973209532763376836747334925495307142567214396502123642175374620181092677083056951670737831541124289627134887471029834380138711978627539469026234030330430194025523255466013105882673542931903540871020996541505476682480471828221814474834043929305686684590886969950945869886146128172741325717123105888158292586336947231893539226392177584358525005211203280363881857047111382457052086791728020224895369615402774366998201379398637851135559891956267694747146691865919920557200866839274937576562757904262121526832525941727788025846756019734057594327743023698798159163710003428918402129975832009963237897617299105742239761186224885219882897826150101712648040520908833939106452578341500801399581749195692400377444549559687681600509396058272381933451130054955784939307733708670076192527709966435019771423615652109858294909924867984620257450618201572942501176539261801296292953655151106415793026304877743753576445413835272050447985660396355942361190166634361522530727275685090977387454453641534216785979497797270257679553611001844355529429873436785627585765872006403363294527908718662334836753292831277254648891572006509353679659258157758699187609226237468533953388801422069514859479418621375369667230478548495069618626578026809792841249275662953468020672812351384806259086468144407536116185386529703531855420790171185505328958117489025021038869205107966695518349309147792067058013783644161112043030720484617745657078123310096709102719727102309850263218731397862913880797904214513234460374436007857773907012113378135974592081773698276761074855890453321379110463502776807613266414890978333102142176720817248150513151530266828844638241659229731173457171174457415898353295437361403442462789828410960067177031053454765703557466332273808975350208701242752144096103330777412185888138074073892482437401362238160167625788772779586791791267713368052819912548155036514643321885808537290529158844261494125546699630253796823491819069996675534567938590285150866602732520100332480772012132975030242943260821850234369519459614159218441774921456048892752690328665447177492934239669818122585956976993414438357186834248223678898037847857689778602833809923281662635726209612747215558462358385477174429337700643165254521149755147932063956840751664164658357215345999906810902370130358948829327710658654543718528645640273649514323781636743266117728567355416675702424115555409958618487187285008661687712253830219950559218783938433097075338196641014162719431853471935101064836893861049084609236943368180791354690156665633149300743850076022462928422061788493221215629724972460233284558900301524773044470197018018019702076734161999628786994456747682262702800046432588778686425309939568584763869431340646048751613561595930496540047821226744448359306024654729986412459679379813532923002327025124695091454144632854552172004010901620815787289186709232701575270600639268001856773376874291707614741684087860379220034002112909345158707778149111020507591517208627940892347862667901224931621962063007745462180178875059874791094647320989909695157316323070924337604971242412637016833689601165238198445834557293715232074932096523575724733277441953642903618315633276338292649057108188842104504097365368588244523400969836574632140247746474448679300152100585216861095567779269871859617048716231428302221159398414090912509598991071365962268596663302868664912444298438240732983603271576924505716584852624059477202236704993517344063168435646956223059656156282521585586871265985566340306716312120348176940742182450939198701411740021554322351350583815447942389722526486898326300868512654701477811268928449816589564208098955736958750777452398822577692851149797168321546194097586449136868509933905323456793694325048502634382343710673464996349362758025341830308564217109882680408070324971839089367816388726613429340651215347651963870296768039609384056978337739542060821712665266270137620771105658172518144527064367162120689227626938794038756152726896110091180325235980751794305680356393267382376408544323856611226171404563101328027666668668574054353640112680919859772021233720351924411432689469448516082094255718904805136921846396374561084615491580427749623925162051579001296349876642946200528657506605177499121770835039660355159893104807418411184267469582886642147835885112966982920840490129352783452617968220652030913667112218601273197068710107254597286906757083249270659694101226604275385263492609962786795497687898604100356682480619213810649751756175689611982300315407711722873614857953787179773283171076196458798979172008822738759434772139244598871162036288774969847278701463096077568823279030603341417258296021955453742592016370792552037353431229028621045460123658170623711876361980370345017339766935483829051906986778789151613806076194372470884497429290092621753480691978283730626392364942720575829953734801452000950335753255841404171434853961699141315630098524492146975384914232275859777824559564759697084943452869256357944712630833195229055433967326848172479469465866592092582281686746992929202734534587548074457695007018352021905117625521400031756933147697490141445081560503790216265761496421164781302886347293101419188685859385711133116732559764840352172242782964836578389896543252128920855401200689859627986410147364322336350753308834937657119430652860516869984087318413993058630101825548806186034288477701461397736775514295930351480100731513171439208563426108912513158122758901093656056311628871521726812270401364628643887324624156931943492104165500088431915477005344977845199951276346754591890468055482784440916863998143008616996935181516450550747533537748483797177275707406164434412697970946270255632424480285219555647457153497018195975619732344971820191802270962595995484143772806795804883681613471368117629039232264423681875549075713698928449456718668154309274269066984898611082119058071293308451187562133289448767718932838139880020224209761873665089449434944979294083572154182036806499306772826373817968399936226506593578043566473614350223165608184498647578397305985673399943599095952566645193204852415532933998861305950524012025685867698932318281095765400368951484416826210609053276799465757975869951222054708424692478066601636101161714852348110532586032092927420297714725869782261187937946855125766425774663084633876412633210453496885914642615751669885674411664781166811849592784149308822607138791418536675494996754537487601192194703975050309749062376627921534760390472226390479952689338275314273878197203383157969936557156166512935460501676700238618038865625089087807334830966506976033938367899948939569724279354371428747617741210353680851382093637756767210823261721599419608200564257301241922854989848700055540504969588795064759490022781186742131584897805818819413265982319498571468554336055011833137775712865083469261615096786759465324875684097619253496915385798927926716099699326194442179345284017769456723650659927883442199424808953829882498632520269816834031098116562566354557477110454246413528215545471484612068593267234981851133953784124596806950956563021170358574029698249788993720172632865315659066188158270287611063272128437443797403912152841016206584417062597099993818382412486276032147073749140099383737535682276358775028717810201224338044066577282877010654963126066922162275766405263918826724357556011112027126302863578531553895925221229767261665606672504360229101178950736471892773527997984933940065890285127934420218192092695971619060050820282711113432330557668028120727266659058707517035924444274963107329071569040004430230242735697664459474608843684198125641129092385885295201458950193593979826863776188063223897308505409487923305454618869887173903311141161401108806545366005947298663755241802341502751460395147331845347107063179407502785895964098575326844245612387851923351301188849172920811671458112683609989265490487250182819056713311559084175611258845100810448257311767278035085537068977280316492538543288766611494577496248544130573490256901829223691769257567433012460268607797655193772392783729785526505947465715120771201577174097444222735602755593305397152016954571428165062718997056161775332993294001464360147920938641863862718720782290802368673139508735428892017406658007017535488814699876302974056806182713981300050382476945629556977759924349750477476185457383667067943645302760529316173267497208679412101130396731158334006925965726542853619967297489775148286286852295620696105221655657871929662892749558793944599342340348010892371430425605453044052728665009504583732088816135690232662839139186305740334244849348916945430485610900823153743819344163611949387438847257319374926116592102761402454466521201881610072103277703524221568725129206079642280107830499081929076283469932230336825423864454625871018707538991940822970780157659204345296968039130988178523529310292936344322471044881432744338629860043282418811554594346348680023815470907672646422709875454496217194340981622428513027404674013139484153484705160368185887951835173947229970521323203595038551172773964081509101279782135359357420655036551017368293702871146562937570101734664134260035950158767009624388713139515583694537752373559907614882017906416398159299320322023413897066176722510744115612190642401632292857027560752789686646827446390018606139548413827266741427259031346631740682524049091109211994597436068106036646157355279268801521329679342041949501455017452352328517897006688482763591528362176916655650888765081885854410890752332959981452323914810444668548286176259657546051428040289656287508912229688362213748227994837153291078458605948456714085194977854354026386322092954123092815537241565330421075159866086152452778875984761646750121401390761748050967630925396049285278457357819098367511117043738552622393119981360536506042488206580373591716764178202747101685267386021295549660010608301348680108396379013408021522340402354190754955213465926841920006974982829553055693977509764849803898660711319711858424727777709070118910369677629080522637729396201805980239273076960337491876272832406936161733202450714823460046579287619148320647820367524331111220367937788030313630109973172848344324017482370543114707802750955326852703581401088942724366919276390756281818870231075915048728900795214420680701472934080636552328636651129553326697091988429338801299141770048114294739062530040280852903831913753025507011251576891160917113830546182306115261134968599887322364665892509222857796274257726441048834657262805047051045772345012204691797978339357799381963981888813564480824758323921237945051358304478920649669895223599011472064808678428329348833382727893097173963126739471761292640925513734305392568010521697249963375383574735327881183387671931514611663727652866183613261943637633250502232204511253818202539833217818274654691490589956254887408176345912077252547852386822580723081934255520378866308815990473242155860800996023597414151753402568466720740080176904197313938605285063895733919328490705583294006881413329290659266718641771454736791167398100710134421533126439856511335441331848627115278883433403773161857812360803354732786566382215110235935848308357662047859233879202675957438300851820819377848487612986950794155796802245956643156070037487098876453652939542954129321496014763485984841015769136913035437236932157194570128904616393649334808319411141443177536224525112016009983746219429250857470118362385958875223757836785109732861958559815267118312603944245480894319089957069272959085463588870208893088550768397819594069022969236511534618708297188215584462588730545234420486114122748381006501837309358409033014481050368879593430729509294760412282792624030968277364964773315286709681831270726182874412451658260154926878834171545193448077652837768812319639253188154088497566461600461758998362769201087079899156379565673671358350798901909468595605531291454455606371691659396977773943674522570759084904339147201030087916179104529669839281435676742721832038745408410236301527319563460022798312544268878946528451928663712926188600120777901717190288231855667808922785810185798104150202675997904376088914900404009052239153028913930989184936900623200132854074522367651197249785530942473012729551231529934817179281331814750576830109016680706814522103909203180419546017505519295785400008554708210403549574759665887015559425180202716135751924106010696019965767663341420979238777098322784134800890913211548327822562773888299580677888622047165926962651880648272011679548028509059212372102363649842554241026706834654826908103746601728161069788161435349810143056504809360019088312790595426288413724471572514313953054554014336556485843057026904246300518407967997971315391895057067585228828057885545994743976962622582525815060279393858896977601267316014210403078468081759183457489800920716864906108393002068655939441730239236644861011355148426790743706231334478190243823283082351668460402696788318527264545249097307540509172555418382698565365722321302247323638757067102772892076254941938517994699610347437420136952803609553656111382641620498913379231133428830342618041154442196891681044889381896670705302025101027753465072768256161049880496589316415011793706057652625017173996513574197947778517362419264160842601492748149210487071165412771704219013053439586809041708292188694779827648681524126988262314984246894248155311810957141819094444522093552740249289263864123591075947842593678065161962477169219927964783474837672032442067600732709831476020970859735030548322708798557271781549958650733786641366950064966259065331313914625328398904651048084873967538372793645575049145819562396212623710122321239890932813628834045684279934696544022967125966720652365016385794891104681876656678690443515176590267730309754831168073389395240188362847243200173702429241408670545250426067460898390336590713825860560556371027424011501110257387202471229739473974201290905229206295524540240206562341996718754746162982500441234071156614560603178309872654807920222029407251507115941658530051294245912390751561545697720822563754224919073322050463027845262881588486133841854572171416167317988221472169780969447793729671505646246290367018778986587081973558118659975366080887684186825322664721607815945780703480620215694118202567656755023785341825720507384854826011252149895939034466999468689392913722054935522201412232384528755651081209140007773094184327960902068008633930899754510163925707152547233748446860924793320127923166011367844998275680059081607850817861113378758905501345048621225557226572279538169490745194378621866899533583188562677703825483716869590072562731103226616509582988819513958872648798522438855897297545184607741933246879897768613647244758528040402403823218564529108476681457667547112489043103550529770822978775636380265560788086784512941925302591960597612760994740497136441091809746606431655667276967306306809033551442555067397981651993474351057363615713176727824832025099488163817768767647340856298654686040773138715252978203266473980480956567533360030682357798496273523615840255400781394512414932683264676754401862885747614955342601633122364567699952829337973602302718038303459095146659183387365474417428649330731990751498232158982733599297262567528341996689310169635299001660252761218154686787390966756432444359935542105918935760762839106501817857944727030456246560258981763925300880022298305365927806184534747042136988669934146500981091900965270383480409776906973728453248319165658590464935067451423634122157439290980873290612159092112503521712341848746876863877089780219743524131681240419924902319174398941002761194644685125169318303599031870365167768988232583557661728911956025685870074479515207720566167026312895051447419602077897088627351619494930654339924434213929771441456602442710463095955760222572211501081091057515239305649477578911840921729601729026740252324594686368442940223112238096319808840012134021300196170859214747651952886311790464792948250663433930271000008909225910581182102169262643346328055119005356441979726758058206337344475573279225073526336432158798361643811192591875004503930292677420072224801362289019160097010953667535017533278368752165776431580541228490184965448355445119311451934034253898295825729592371772842623206451104460986943244801139850490596236008433119757824977837819900460978478442251654080300119005790203843121773405122288193811813692180505201882107189973460444109208239713943705366771586023831897591033017006629496376931705584797026587756850130190001768444703300974623334603484858740812631539750711857080334183351233525538208019417158859538637959702765119582102236295902046665566346828214265703649664402252841902323717940849605898823589599304196100532182691933302607745204580971211637967382571374475835526720685072403897841150632907074709322040043854407610177206056445785334297310442072346945006338482107246058716963333385925030662381343711674789446400723512465779599680463882358421056136704600578370067199309975300929643145827755799166892490107461296261673996692168966184492975849320474692811639694710458742782307755527094531315396275849788322740566087850063833006068484329252654722882967302174059953949142100968578300678024354418611467241082085859068241646080135599712321416063337213998098576806075183724738148927969628384187660542974002063361555093286897656348471137682979333066935452021028004982135055565825046958851228051479896738773652053069855224460539357305802050363578885641847455820325655183741597910927480964152796033509731135358019588678634671768199772493469163539915146091081546510336066389449039649138319698722722662014752180048595580419713040881164311323358511008844609311956310425404504358430649371707088941456818346703223546697467941950935959045088629564225635900818899797503568851644254315403686467579703503046232076640692337488839809170915646764549519619451682415881734083894325337283715145599190486614263771822378641040602347401675172604146418579513281238689738316178101527166981466231250424804119597499146554520469309041676349850538241867063371374664743004352180118423472563017376224306580379921304674630403820546556132449814228930553794109235005583179099328016804855951331024443377635631322559244178646826552445259171773925821306447848886080339150659979582968703260456569588187647788956343475430772227345145067088406648572288307588762373821112615534420656270946030105541275001886981004506226897976894469987533811940950605051579363753265529529523387464789530213679509725123772067849392885397876684226740366642461367337947923717567500753139548039054072267122839979520600576166810617947893935204969405041963008591831774108250714987452356654093940449380708719197674428673306717648876873210213730737146593654349218652700852448316124765725452544884697528571211657327253995717533460371869680943284130174156669913602534884811324345694873765230273959474796691352108649991978995716430213703351110537823951326009846874498507393708143486379775514648351881640193343495163971970768040522218463522741100995800581349397026128315763020279753311953370707616776999161275200671470604963583840466199764037610933986044633771566966973766615910890339022371407514786391230323425545497963646877405462331721234826314730144201971457429425672054821192926013156727094937245686450037158747417472546007585381103014966568504826871231171871763087516845247047466083226334166452785815538358802983574086823633129907431691136752945674038397593638148035836734608893696125160821512079287063294031884439728378731678400132071207554124292791166691609414598299898816312943230076216784038450966115305593544700717623488960461399525521478705089003843937614482736635249025799268171460628128316033832474801813047661036034707284231074133676626005557250297237775142098543840439591614113403095094123283658027278520493475056220590844499804535619821513621308200683072322034241859268653357688742076321652467334744190320150295990024217152041750805340671502388494807106398498895142878995811099006195002285267136067404510555856519703414191826609308082679540750284762590088921836681082662450948953957631089321933904260242613085124302284698646791122186115318544153619690654107110981514852323494622804021003022400876535820908847022660416252982322607738788225391328255476839019622507021388137204641697852965133027089040866455775010873452303144406804129841617142958128425267803415055676370099019938765426936353975267080599127090683760775363876041151796183137223873424373131142078458741819860891262613076043997081724379415619442407148143262349643738991406453272413364082156819179184921251867245610321478167686625364906538298058851483513503811071306886886620644116870124389010945982919710209800955160818901937055574741491847212671685359941392373037970392493187496675040349542204840669996152614856671727736579865213989058159210067514035159581590701790345410760975738406659362207889690399170729222416170571159011077528601670681828801022398800352310766392740385899447643338166010832398251411597570636141912981883801921407265102182077920178121614361789656420511014167798790505554971292403930704692877627124444509078570199987834321097515484403972370166260401891467833313924482207417475751919463841108466467809461432373732198749553140858280643025906675433770063898840798473040855472033916700271535844371673185209205263202057344055783861864841878746780465577440894543719776168300800771929446794146887413100831177599748049793277100190830619580889587536765141388589306562733767186739682721362957951261599952963562864134990409605202982273664392511146217381892954249824465183401038644871150689762603349849746489192268607851920559330669389830002839938385708136361287597268646198218248550338107643414658032243194894419265268339866778210865815275650831255081968324143489195075964371464556852068811129509002187042142098394955633009849183597070547709309247476611523349653911523689812987273627779479426527143214554691094440171411899667127238648817620644573142760122172612073606461082272191304356839874675934586743031436710219511478944302759867661072540722604221270143332988537386673768877004680432144117510959149480384680880995745678312207920939696466824830839703392740664311385047491539209878506397277631817252347311312304593783871756952693685486554494487639525963284214087751941250092501506741573624913540775892454828127899724043044054648965077596261528215658076320978075589355848442658823076700014844349672671423053536081906758492097868089745715497198774623580757664591338818556422808731006658060314137379108696675103398196259885377359151939650753625823304850197615602674994442746085165371017573633570178062611806590254061297592634681538458368628406064768806040405552884946333507437952942271588725378775588806458284428892546790321075982173774569083211362516055357801645837086075769125726798455534066172139555757505884647248832078139067934977876554865356135653223454096162453166865698012667766575938000426443813570553936175274253434370123720174972101266397078331125154767607044237186009600022114421912305988556691445111713027881405309267196076572341885650707301845815795590091484670260367307852234552848674691868333411125726907276483799767432917266501304168114299950441186350013707343993097416360738914157748854662681770559178143750179097520051298274005262756019063248315845308381458848946176498987431334608123515034954329719588897406168120510080177960571776907204000057127301471343615691310110298216914134623908932700845310505099877631826564872437950257766401736945708879206370244964649690838117803350930854088421332551024479746364750513145261443962540538126399038958874651010728786590355248301045693058120728805692324176047262406469535607556895693114348690579469048335930798552685782091639025421501178490891962914170965783188861028413531929174475328131453022695158594818909776765485806592814323465364647945725066372402908518096905256796762856711090164387398440194973229171659277428501570603609022935231323846527788414707550090938846276281186347711372626741982620642592345707361770848601677753285213246401651922760552864146616908651121180545343166018294215265697756218504900876196315282663339985729494259400339479530707596448381896371765241089380083817811029711361667334754326345493674256634381088430790776999488438659573410855471119636507265070666302292438419646306147180922944961567216281446780781792626494564436530911158037257820729748041530337001129309008813837883935755572371545234452429155886305157666988435903529367709202564965637442555905386628327448461276317594027125253199147292132261690115590470675177154970056110224156325849395547297696062808619488304543755655988943680720674332900642946858295279566127249626254071384169757652570689116845562595194496965204266718156883586070761581031864523404277922961642797246060887040872947117358664346795875914323639692625189865444806281879830275398632039822904847502774993456007687587705529207282967743731235752254639909480255089968044883483062613423683302349109168008048079305388210041221465973946579985428496518332168608581634233705814440327729339636452760821144254967165386684694211659168793071512120042913205134938715078569512866311223116903347216088567561357629498091834900230069671515539234495884947854432331388724044607660349236693399367546631380536040363719788365968164221275116624841955551967712567568225014251240091482638813688322732074021210572968567110935601975634664147393720667470935611329463185158549458394436282447851229446200418222323534365162505144765830116758491847132463783025512394378074295206266248462659986253501166952166806108991240256663104394367526443353388831873608654016327292694401699009147143189751758352942461777048131989412532093436213527762315817041105876935904641438276839537689416875110777862602155601678892855347343770696047389564285498044189843356502364167800890754557524330211685681696805255037446726211192390500231769201413759494033928055930066107296779046314566338393735912249127323213498681571467773209199569166744842317275090938645411119965918296470681612457398494388406419120671744523802231099515133718970665735095763733724147689345039027865476553236050631373604530043957590721525356631734580297423964032672200630066071043543170142611107875558957677405515672330573834214881379594089927035322832154821952092182831838739871906533243646835073882660978134382754539791269036427422699096447818027867160124295969821638367689602559059575333209027169637008930335693683736352380687864385358291580715328578948348684645604409191115973146139591025034734011468119661102985621353652762795346507295860787377931041223613800161742833725468723066289345255113124602421623487620496319579713112456693350104020071213603295427525549870489833829374253373024855811352504878180271960140649895640991157684976690411355993180461115900731628528118696479947984103491884559810942101712477254078285511879330393942187537635762230268371768279573630854210175994791759835291542370748925834328931801847978525434597065971734186867913230983882815774311269023117452924840220479164280456143206444471093053165456435105345201377521696768758590271548170898472845240911910297924616227455917520904984588618673405793996531195619520144936575432656568711325162351863008569902386326535263265973996838679491530283434933953160590235647749352151480594739016981693223614648449413845662553868950845106156074984026150941447973906683713814090998640178034774728282800590047306871707109727317418063058258709147031796623510967409427237889912526990044418378809983373497457656148099778523016207331977085543617534826349065202122710038168113296333206432290756709015024098581442447549646377639186945079777013873645147899770092677346022175897122444509502982535155133814646256717553883373498298217079178728951042458879124729883602488777108545501968222280281421733296652177656950631165765842963376882351136279645809514899888016592100316760931305088442452671575527090869928182702734817617344992969166416218140864467147399944013862220192972584845379885620289279944694522726324069008150361121235533904093259426004942384376008771181745519043561100989147676914915153065717116846071696870302805815337601165469248117051053135801124634265734613627369475822666846098043943117568094492951687745924563336305965558753293690864730428402863262190507996679367181102210913621894988896725015464402166157286105636983317904719188795197498785269131783457569913138110564859574302440813150341887680357862334522924383332119238061604832627939867713170560106935973283108738778083689703677691875919796453746488072932665738983668179987747190772021373421200317023335645532589831241425035212217473006770775644675437707015678843075286664682609538408000635155442088780174737160055160999335243561321247552873564111858962532007712160780828108893375641981841865441252621650631977440221741497160257021814241588262989539544118868686113059239227249217656044742062205607414015139652675478488329321584879693285902610001586463338073599918079916289923429702983209471666827133901927780111295880496819658408787295237085844429663238021843013328488381813044593202653539116606796098337510344797871998679430120546768876844792573622480444792813570835069086295640740662319108168577418377181640299087725702083470273994488278327120982342319793313348157973570330914217827486993392892458435690132435835406017665660442672580424818617481888532308349600677058262930897583709728130650891656315685941922588375010241570064582345394519748553612169070004517908530554105663949459801274862018088565577054113656029327490504710965199143362823926203157063800027120969663249449581123415650430743541364866231629784718284927509752623302794325992694126885222455808996696188131658417622285040630934413651484168279482147002562912328303962999717142008792557643372752670756115813634014379562630274633923178172975295125755166694989340925742649277990211051766847232379677757216625396048071911524050263177710138860463099930058900406647679031791652785236257081088698033418798930239511602627903686958490540221759621758266591829934276762062231732972236390531831885188653731546377638216419167423466460983711419821540538455996526006336029090004293922100606140907268514522765004617133129872393254028230235948432525520647194666510989820302832624105301697850271142736051877955917467688502106893235559399799630428128394034281757186740853148039585314497935865763600866327252638203487303320898282466349972675615144582510534290110349016823239144759188738069435864085014051662633558836191568689337079802636179874288474074179224301361486942539903666729903983131111822919228815862067906205337122236210473484613886948703413889604097703391127972977144780888216149127045236131198618060149920881495887408955465123693043913426612457710061347486437451648858496896163851475825748600237692794293774089418636530811013466458373527068244764444108587843267002922237478364038106216127256295159054543097450855894302718695899219418916960038272102262269829133658561297624625347588107609294023430071669128799126705202639640623397799671975457674565291040431083039968487820101198449320170956070324716758849375842683357391498294959086863028887875519654274963053108877838024281075827638304742854102111669483292535007085640389506884774480581565959113128180491224581159608068666463667037213348107368772936978576445697099848846836400964920160378769197189457540593592571207218731018311257196087195842621512932628602471154522807869711931150703079549344057349161554371389573917869073296100399650468620857867136645284636331526525452601253829398181371164572992899949834583462367162619799497991040289350165239847988496495296710188646341820647480404706928155100694414570602551965837027096075468074284198083789122148125187223113482238434565918372867822616986243497712594416199880072466525208451168108826286432765543556986360584554411300549585296779433956212529309645092785356668772871076209422437597716311384472034383104525051908176307752267787742006882302172691867299833391553207993876397058393615563387641293679994932200943454695408334567320304991221204852385477121392694712457635370148501478674504345765501844678210336585074099880261404860758413489441601752996938169751396512896789516597613822620920070472593095752674170038635366191368880706794750901872155897903046551583629754086360992764700787301755110721222012801439498335898221911209789526961281754358973852447178105862416310963118533669286902288401668726448564351447471349697952903315359181825451751286834429270769347474225678705398759465941214312914761730078550094151475633073637961799744142153976861638193564227932730714106504269031282672389125257102233577839389153137081033391542294237937393608209158471258541115498815694465230819161363147127395764066552466175566709236055550338985906276249774751584711573438437249675923690031563520072997621804386388145716632841448179056609721989397160415198599598516279262953608577736104092503574687598448087573237115461212872828424943395194042207873967550892633379381705497279247754117271712936119974278162773908479416418337052922303396689098028477911523436228023816401837267312571581710043248188168126108173712647005970012438159495018357296365201085041125900396163088151643234095205964774719410111563115168149536202760325199927515670102353232394526853850336592510491468923215635663372673590369398661655580686650752485925259065279369238533611894326887894395090434015834021399088638628209170079194227583634955305066827130035654769381435056569256880629660050493177430087271094730464240499769592654576840787345664501515022367606993396653887680377166348615765173288476572836362505269217169650698280053186248777923075203994524845887683599971972950043983359241191642357433742619152550181176644084534799612933567262922761332113687381192002544357315804478547168711513128433061081173267053820994385422029158426648862155975819614952420859484737451076619327059610896656212820666299630949642520890883931012247217821499425487168800748811826798275253296082991360065394594094645102728338054459016174800597731780339889246880371974949420787272483144750636167479835187384505901615928886258186161562802041299585907531966488577044229660403409212892290703934903975601414220474889747346906073649829461992638739749637209445382067646845479936181533361735789223158792097428016219136958679597826811111259664096450631622928701276684276843440539678758690038463786739048835440412457188463506695093465358628221360106180227376863025736473980038438229019147172755798297493584462658139407171270492951405070069128194503713582844849133457024903909174649083470399032410855127661994410453819112045561850604698791618251051295378902380420750006736611377890911530169320462698749549111808069721564837723587452981852017037436614069914144509092237781089433267516992089352766909979659037528408980035046749542277366247539276597187440536534660157980523906061759605892699033414648351229256686880088390293083491750640120897766860897719383137990729999724646587327566420702695388123552544394048287556140140403837560236260150554234990294757070907363426742588355289828015627346717497028172985925502745347123650107687836045852670068733194042927303997852760818991203603393567416389386416159380192649815385965932674323403637437967980625112544078952260822137840754219587986752592871381229831743915256311270475089087839258742371887818086048518396051226384797397534412245017145282207784455279390662926431193023264668033803138007796330720972558665832349458687825278697316702720554736274192823309997829180592974552924963130651021420800087663678734509692591728107635128458438838187562039223882582053367906231262260255336712542291855213409611025400177023421323065148965511314069482235739001653247000639638476567839289484893263523655481705501022491328434520365290584937868219716308040226882739593929896856252546265249908249121921551958579355131559539368913400534342767599288684664711177903590857875275861535257374365981591493717963210174053025558829135109251245249798835451206754735403235252910674257035929616586259864987284722348389684752408745834315219327296868894986563151522871101781684182277432630285310184702112115922770876846750680652347849687521558745013638869706656574966573717020470797566192748328140179029720451021409157022226447323480915667132751597693035499931943831261858742380471204609103894493433817338251585596404667301051303954589240332364420437020518959309537916615573877910198987272563322070552226984828779656442255095100598873061227544452285999947200566654252124289420848259750838749850035668708677851641991731578436773720126241780703963833559976408204653820640699262210356982561491055018324046315494908637396838202151648903695406511002726567074051848018194399005853209981310585773311581323050395528376170057870071394705244650727321313140710510002931549159921647421251018042772268767179416557801421163149933808337999958376548838135155303353351540740023886254917680503834346334513451306590563803758023135266298071793371949282546070886991543634472318402942041405785539736090702367647305120126887807932907262980056735432355613191989327989083347914246275923100284748803839659098205367041001549924058933222253392236757267262539765950911716116613940657595902644985620277103061473150177889663747523500208422024282443858208402417754206522361150446368363379022680290863978240480170663138928214746319484735440958184175655993424128720462531046825617301162680150965867259240266763506744689613394917999631657764190180538255449602409607926626473237414751947972989798318871752036324076606517576169019680887834797136879633443251108445512025604326203983238029214078538452750295356055644418942507084882805005572327388705929219029370174695903698585489916992485530897109552088874327839471546936291795103637990451939397307609972655575319422547217489111088249740644744634318839863429792108337370584579082941654944227006273613729032665330542257015984305533318082368224768798170165693643440530226850620099528734024741587169520823053073128325750697269866367929384588656842398030686917417540223215588404399090793710936255339988230807408643636655066133620158536276198462728280295966703419770356782125908287818615811245028675649580697597581874388651506750977793652916218419969632739898948863027480519424629572850474373716328566891624470709670976561671984515823806048916543892116836858638818497686797732079612749728905871389682778481904984473816227190752024937842520122337835388645652542588059322068266810904083003499535022240467503002119278908464682504914776258189675588009282755067867847367610442553924381838972463501508615424998075916605980576908260825813668914964806458187792961679849195696819953963008426617601397644683272727267062509720435189855233365725974625083068103383825029199131142054065337545802757981195381452499988513635782952336430359482005380962468477413467068265626978243363705515227848357731016310122247730982276952781468433306254564939363870417190037423362539587561217142109463940513861635155703607309982830616402369268233209670108214393141741667256249684960404221684506632928043681402035665268396078139135321001611664589802448385322806618359990847376242404042536294819306216905554832437152397907258845382703404885325657678636825244986902938477926414153540774093042215318016393527668235064293428794135451638899654684856275153978775535753967736137039888440370834150861112088757474005057763458855813765934842835615724005920893945536609035585022968162320377483473304877228422208520096191320852679875498764058923280458178337712600896887529223136727729463208513790238779464080306204666295855033164597297712290962956697700324857742537919549220900851349944851536971124821786428229099826486559003323595406621099655348069334869514315701024143093100549006147525134862805677273932258690474652930845041595144780530877190662550094350304636121833621202238291191234681735168078545356544494131231343608529580423930848190135131517018708120161314593742546428883802920989428893874158047539251824164194135427542033471976142296038305866606139672783826922940490117879839130888238300196933839150895126365985765340079745348925652401955762240520961352448520966107865037383636565593470147280535985582908752804894693704871762874666464376295652132907634365884058121481407998485678227945649746336133778108050473896809087296402733203517185896555492500706752407542429232956070825295891529909281457334354057014656243130291474013522367060139630413493151888260958719513478668310242326550547601059038283958313989409652759515731910367704182555148584044452429417022717341015644472455645640277278185485566224515057327254481769158260875471710537586782300378445233342746756202139018454758529300071765174533040295160513735868360332169935965897455327105531912404600260548670665004225448379066470954232473203166196465887227661861016940427512217838912650635928875164927369510252205665411009831693006207805056297017633457501447961424275565536676464423882552307250502032232157191071803285243251990186699588539260000231398710935039753369151830991943873728557340571816966269976621276071000344925288966125864331934219857436773723038357961733137255834281069719421878393451120766756456002920217449043719200465633318849533088664340607298544118292869958525745796345355719787834552935499171737286770228204474973300646886996986284952818829344855472176824237412019905599311672127608599511062068213458944039108958600022609628149263946845142839232989489996316826032115323470532690796955976822023043378774542377461772755299465385211923260592200158070671564698243326735846902102696333822645619766265115979252394907861255523155412081290347248131115832350197093458767566442760270605729613505584451855969517453424317117208769598458936909116758020616273532446831755490706655982655481204250556944750574032236089111452900562394549859771845767063893351697393108407915761201718915952169816942963024747434025343415636247687323713635447098737212102219091994947506449815157986343685069524926559951989073038324212872023751456245440212371227542263001321922815191730304232749185719735533459352295225690988718373992558076045969611882851711827691246951145671650103903810765985877151998698614116412241318490032185624422376198480044986379242579795803295733374524004372716794169312780787809270213516742967257256668304185627546318368251326605735359742200755774748102851223401030136552283541875753973711338662054254810033064329606185265396756122796982971722377552546762939024050038561242668931645694209869676805168364485576226861012888631307934467730812198878733597222914066692084484381706390852263752144307530180161691232469905275339635155987430925138155518169249179251408021941806850370363148070249281390540762828040261317101960994621790068326267100329306555203140845247765722489427473568325194151073164465069159717933195570839331638795497838517846100633435554991669540281313421416392116707609565737858837968262342113681762248189531857338630464839265452417739078436302333752341167888201837274880622405398600510427492370196919219138457388504316894711580258672945032684971355106439239913265253020942706889954353890644442260187237867824509461003838488921890909532948044009680398101971491040084360892435070303546344110195386940474082988267706841941682105956828000268150752245057614367755821599432888122740611820440598513549579081669251272951031905813127435475276998170764660906323829828587462476087035611046824953901446285226820892566254858147759293541650363473524050898061009056420393070672576490995993856425972136636807147950219286125754969324968766420199994176494427283928291922806867000059912005995579002433712923437968344932581858299737014275357190799778902390946785107985964399989335594396880434189164405670985568747057633238464093103250722600598180109608948855607069239754116464216110993026232617557697562557589362803061638996302330389291091902282596537043731959741901763356082842987545390810303265332318163141670753064089583447530630769578078078795317268955098070595777084800697689956019610221975290760553962635488687790858785888114741234059744525830066218856471407203166716307174828411555488813745742202783257242434197848306534208235768696846403276611872782476202804512473279202330325787817895977769753768312370464110798225869049920293405861487804038266016994542490653393296740365353873649185025534852923484525231981214645153873217394940528375742230148739016258358778461638709303690843220051296591075930458195116797834722929629395783676723536582841621309157675109001070797419668093708501817242518670674832808880289766884923896152521754707215850351872617493854778870454714772365594262274911711946202698731065541645572439815408104428795266966747150346666677128165392927172447445360360910151763072986506899691604331844975285758958671445403267381298831261044677663573645872122781432797651758065006693525465163919102167664294927156563364000560426129391705368653707890748127990556003077193810633814075077136737940388485939648791256780465038989433219346237839071661576555020552067842961130180808489133812099597024204380412470557572511635337980160069267363761360892232648884629235336444946309597356584269049557939761464806680655973020963996287159189207043497915663608002145214273611411956970040935398372245253288575484095514466227015062337942092349120219479609621946017687905448446175767438399631410356654602788495519939496689808686733984036517312729813722514748477403622210417292903556182168664160288396590158090548348880798748380977929365832121152028707839971037397109340432451361782314409621043109882236366410996347266245562520617125814548755927419123408443935419707132130296240083730624648339983139978922241921035105970046834611900239163269653436878831788406968514347734892553457136675478953555712201841090034345438783077430465807694226301670530785831740555304263849537180826216175749342747121786584016574697212919251175814646033035266742699386331701304073048649220425656331784215878356428784997736411322627111174616522654471891668687928560180152745142982733687228045271008677976319599187395685058004792982617742932474931104156856704562311042680422916898134531520823039336924313076322974281189802456372249108624649736096617784230639948419657537784656013324529172058665417435121943455713475086529603372784086810106963019689381745296049017231088165398583870002750630186574938848139230253032206677082697072619727682628985536872421598358246813666844560828525068040584472159612834794958937960316123400825438492077806034905932995572103954207610658219009562730367732259621022366720408067857478982720834744516774691567506251155892223376957741090424756497416513422556704794905706801730997787377815060679217895539894372897113956350389676672050152613333352974344032493578646740098647756325606292260345230316089590625854065731053811662401035898249737245973445996216395570903678270725893212818788214733477871877690541119884598640070236878003921871770747626012662129933996532175474018599838222988982258271544298151639998915116699364438509087862940511540717029276704101263705010836393247380524434701123003631991750196441268599655534798703250904792625547382445178103996322668475785423752782147118060881005174429485804215763556651140910510113292030255802711875663235330771559931230258368626003954730947168115378457195660074246012861095534603656219982229737878314386802097307137090465669585154767724907640326697960675074409855338333674576705708123613303315329916576922280719295037191093430833812215020672486917463228157903254466438430186685754497091182787179266546065349282075552847392190573302698052278559150424424751928282976462600531728933723842624964806825133215398091507061663049168996863692165384452475404538871127089434077278373785455451451763611342336978558813715675545435146538236993882411029966344334439054217004333136562697863140835468799303018381207751281441117774807271309670020965141567382346381448170690345616710591646184149001700706512778246266621807529458030459662026358379277630984041561185653803302004977385127155005341068455755953901408443154413262317436351057652258715047052809671644184025546733473006395168381254110655645187968599747818012744608528924871979015474007183888573933315277186424262066984235385950449590004710715039711461936905001208668055883616162226054748244030932282757660375592768217227774677938234471473469050645309792435497122010970589637045416573388336981342418928310900825205222733226882103072617497675137529271404010643644283048046782404325420980737668729718370926857486911204130565217461857094149760273249324269829517418545114613425836158114137448189544194095540614707603120826214878799602111734054866541880569004606662363554986431827154942743063973258702647302539675999913965696074239244271458948139026819007680252393392976361728897110859098861316355961481259117866821032243174453675247006935353068056674765020136895715352780620139875468915794970333258172034850079202994825424365430830857895069217171233540815261597031003634664562444182622500811104158757137658768160303985390357043655128651552069941987708058108107006507786321852848962825565451230005320849251497807399463794810397930788978804058701911023294860086223359306558632309459214672098494989770043375046478612046421663983312949497799351452282759120284120818747105808465695516199766099380461607053696792229678330910975517944557711064537763878642586310520148731260269429242835249469097080327438609083277098227602904682636200636264142550883761557574340882038860598434052335634537924229396531740261904746537637688677240243070683893417831355654605153821361672840652426492627275419530789298593148071178814754935626446539588204561836087614574632824091119680032806059791559691360976378761253674322015328303307413098539322733993873991751938527060946586467212694237143305901078940272651182031927955793794987336155161379073371662131297885861035018790251448927226462005254424394622487112089073960213528441221131479127534759658810294420794507869056000610267362902108030654041511540847337341181773618659230792076038390861936881715385182040975751215374072549024539252247891822798651727534566333431341787995467957941575727672777528430416503439910516685969881027873673790797045125581192543691387446525535130946200804013718856819468150219814699511794797322111197822472655480567234818968540388379709729753136870830889202256994684630568863854674782568006187860109386978711180724778042514868366530314977120346500225642136855356037335693406744390692630793074953353886320364351346599993022499822825719158233263839929544859700429504274246740581481462301996949438441172989380412040692570104189068445159212642619907916624146824346383266009510206738974011479653216840380915495313086597008423036190283559940777517798856791665602303766517036622410633763742676083072256053356342295155817446031454274642010424080342781510017042205562941465663474775625411577730845027346891928046506302517795230409062050917480525754681559992835962915005808313428538901767958891368250039389954003698937109214055206548001583827436545703185953793838535798511245161997253752889747344869026655851134126846410095974397226735112934731665088485731335092005360415258427576546356333883998541790569667124021021165959365270321477568678649517526202704205069719211962189912723357104980446234956356453666732006824249633035920723894227434474046818885151493398471525424961164242639704037326374819950100389946343162670521352160217127485734004087103953407269363365759639399586380251066082802315335734874891631664200464436905433379985940228519086468988516646510939617133368247232023443665475830313960499211181800498372084526072984755876175553930345425366617795292485779995432443545751367352704949882769235827026186623409427604923304449470510218842286855686460670015437537221437789300178200174449504746417030445989849374794473196311450795247310821239980102212948023995010520381821444451821220708836756510865145645570112342455965020589590701223510793686683437557369683978256825023883716879166576585090039330454274861498650161204874686946946732621737706999223996777841503979296328406019625553627096589469283943833033640480023257228911172993740150189859671595928654097228476097096364050757429887362550976806478881117053910639617728464199209090870374540838772993754347747616026967899413616888962929885668829303784926696280806505017270599559484462479279697219973986577774415371441445352545501548322118772128631952322400364503431000783239487877509026089949461058267534306065717966596760649224882523862934037095978438019588720934033712849162138775301502221329855777265042359850902355788612228749677454935577758192495163505104829595058101153720402997121013752610142793329834985757577997489720886736010947546709710388988135887550888859922237973930500998085275818574127474528359693058151537878117962804489902019671656109444629464601516011454475765058982877231631717949299529802951377035299122383624334545179874270485502814661700572302217387550926443980549588131414572239094202328183261153083495818157957890322328124730624004768363594663002962335894928514619612171283159599747193014989285518904953863367528171758326623810998150129272205839985977753215329790824299322181235465044787337254328182011135347187799341504495604720301573650285751981219055477898670575623059763642087197793808935735303489583321285706020093268777727306313050292601402216332056261766945885914321387984833131855855636142811072090105038742300192225920393183158709119516453046080734811506215624654627148078305048553667482780761011932237740932973788782446107732145423608583634068187103161765184585007507663753394859421199877073688884761899534775234713745539146520138453439266820264794502944238015659336425995494110518780808808967276336396792609947160751458950542166390675878366067644251117256354977437039043530362568032699748961184028878660616770297914895752075020742015020355289300526058646881698074477452292102718538693993950325342820529832349121426599514386518222122259567022272273120500869306343049614679278483252175227467618320161994455698289331122492178063527066218260192723821125896012672295609256851009519179575030110582928055211762628438076508807268497919417889959478166984347963828075256417586309251165439215927605760407766165556319712464208538890041969839618496711194068663168195144096295566337397940777606993446954914512947120740604516132304810983750482600059889774021753678745488589092864325118896870370938232528706002181032016375817762917433937974251499255846587598268958552976026484771114056760782783819572113344699952926881539032117058693976754832275077579578173414444986427792853845225644405268122997004885215886602666025451312538647617584674962084946699081516569628158895497898479651987345777515569792776700041365851421465121834904622686954879083348752038420121079482944875094429035442364817459485737060451641242366795406530277609551294781516384138796627964060596467365976268707512495144242392410939858440776873712174128367899513225932065525002861854655362183846914883512084012202023370438839972098403814773245279566101229036217104043804526154610392390407878467843752208172339024694730931416230857997818472208142866464700028110304912051973787330894434481314151140608675567463196184821910868497334909418245194590076437525151935579267440010389883766357707235338240836376070517054249348238820704367766209176514547319184492573872741215777941220568721672212930223459568772365512731175903774362990046920337453379365445292514141178593809579669366543315403920314842119523235690848279790413080152923151165888505258842204222254024425207274215157797923358212873122908920526824210852012820123311189743156915584245511643792264206390216909427859708756430281115294885492143555291605521752455562218761269953347356440884165092941396142713396002193355152981409242378635176046539827320524292339354478355613471312283021222308048866277560167723959330355223987159942765944066505256164649456784081924341997078744137622624933446636525720611215776523522214211003624123015940220843549931520770561839958938822932646688529799037652175402865632880919264626676859466740002794060757066118952756873595310811857635254446796296318258396329937742547907593424779133602548795212613757310451370563879372045525034987098249885725600711394875235605949933494287129420810636206785348966945463513946765772731160555552451381050834077633371213715063566443700370020814688681039469268503138251235940009863968929622293324782537709208571969894976908482100788168477562471424425665316165821238214461492265047359427863821153886738491777890243325488343660873535817094575898984855570317319049502246004312710665977104439652386609727910515362381322549122010444792426816941533878834196495872093074027112040551819982903056981951650640796982279856498508055576727836309671936485801370933480650104907473715252096750964125586362333304674123499248139269365304693035267708572877109744432968717060591590716101579948691583829622539570450535150908903176471246517076318329696959110503169337362461571595340094587280876239704133483416396611994973274964157557537325837822390643670730477418077383838857522510936643692467984588960549324069877728918823894130542461824131246920262231399608749740173784270966133966197083859576201130669031646459559523272111232824162602245414482246714455425040609635458432806124396722313841553324461623054588433072402980370819714779929538656089712566671327292436741695348875304864655913794181251837049680939336196013128692883951919516014031637060013352573699245401592871933701377686425223690077420658435902144964598386409941617295198317784229264180144839045680764358374270657647681846333967129170500762304409514618433325566022453271816235797318057302397063430870720166174059830918599600854926938614757501875483843249421538368656395130558881149261520310708006240978312149643730430188649399166693697026828761331778480099492704206244209640454617230289406289180835715019134756819489568985500607382807272032289690112087413567511169658827631678094638374246210051489219161772388703848045082847923652243250486443174143980702837357525767067226191187611972150570561261747624465673943414089569583068613172870878431388652055171707176485727082143545059878510609094778996142618612790024151158795926536661707668684591086564184147849187009442465279519027479093830042328436400570939070011493205463686653876594475198960374241390220922535960644298631129095136447254376187139465385881776179122945262179023400611113313754516489563355881240158602890030413683980745204992768742317636775107443700421410548055680632000940269508609592843434303767477783037134240804170884116184789742877027553099009594646505308385118633967648842650243596718524832016357656037701121947217825709836999413564331497072891267550539045604431586014387630981984187813216119823826552923522210149140367737164934296129245647924462643150636917756293974426413201605406868778282741350347543139845662496727692929549223300764737251577856964836119158441663171106875872952044562981099115495661679547989486235796910907454614184952567312224041315975453582398024216921707118827665678798408440577898111158834105019576672212919338480707823774876640634405474496386372458122630787053423336941423052518663677592522939438703748015303540303543179414105078829848952357155900245357907735306412555418234018757179198974735909646527014588511487183770937531678820478246415789014878448995395515840223066017584194329467286360332557563798022556449945903917869645315132401886950492292459348654361180679142246138142984071403760592896263922854791885727637775428050217606112395585655525084715329034805621781163068321441512247336021906011468415522172802119066534192304300609190475597101868883940502575405064810774306128564765246946080563798806258822826373603869700616072255624449671233127594017402313884178270177859002551843494827406346970985855204726972288115084814807792863578347369200809337340154078262109205254776939748629742057265213347074562853025134411761636784744815351005741284678731552654135128355601617952706891042010319797790972554963897738587491483526954484114176857914118252945556431913462211209725686506808242856995320885255446593826226988535283159310406115394172937836168628811159577376634496108331402900179024315252933112816738144313785894419749472904391787663173311253823802269907543833872742299363049567560793968344255570420892128604856090769410923389911360834622607746933498650218269836770607715667873501737959091621717884134959957536104571026751118431196006717752767102132566374157382625763404534145849806212380493635270521364206084328338480294670507052571259751459497779224978729076848224696564682048850202989143755577537283609680689114885517131814117710109221560262473027692528753674193325322057982342818532581891840516310968363337447766444797370301946557731731737016506572608367721772004516641134974413777830531878452360945402989834153752831954089899904140351779327011782007585034113518235217475802100841320760393274191129580326379806940295443023722011836930701893261056420252133015918031471249388600318162369070545115336193461487166538710262851037283937595184781243344956650240686074659247964798930804127024396294122489470748813434469880214109524369868809367190651997069180620169627882632425237747962171343733833100722059985284074467093642222201398569078792661698727542884818883397104119236637345877306298716038312984676605373708210578167010178113595735796698748181396896771468099801406558694868133508769927263802300549664512393094922427721023173162133026658105752328104004957872346145295997521519004908094496396398433056387648854404492838288854663178513486928850150926220189887290137830082848614343101791878935850576661887694931939187503136826489872419507386041233492357123738145281690136391319084654606320616681961147697601988851746183093379948250333328010367641326884888356763746624057728441061520063646330768834251367231865781056287785151861702546514816543745579776259881370345353683833954596007410640680682894769396392200444150890209243650603933289086394745392313954984730451411508593785696466925267628833306277988908445629962266408176518313683125274833199985389215735988744518091924561248556194041858906171258735839409292895764390194645562106911109339637173900800534642333709778981432918275908666486795332167604736129190711683237727067589169258554792462382292853751175248421404843047555536789404082984285593155797710304538264273909325391598130041675217427999761057175369676391892461287295945524946076103118541251282269703346835958678430574186955340375699184394885315697115267488369590769457289651559919803351463379861860729238832414344073143747905370195430774000539733676522490733560291911998752859536549357795791909091654228471401161863234335358972685285320008710864785831234564278585986001426930793966968679573768317375489398702182497001229090687527611695590072355336885483256436411149932240514657598185458170855199328233018803222825873302366237117865837362502303918554582694011582330639336285421549229349037299004860324111802861063762482215179471002470632331377731027017730821984605947982116310563291018852252345009802485518876526985413413843784003758540212968321883342168498631060910804989721197446357070961323519775423407532912591923723959272416642391106103631450418582172737484160463868679924454815046376653224671295691253266846087474679300521343317907205016443312051673123138753444546046107314155935387823464257585250339728173962275536631129707702414480043618708132220653196453675613714200703314518899113962881797068279348292628356940486312230127860407716886600695422165199340400239281700850444592465480586400653672106213530051675309366162946865022413783472114774258477477785799173245068491042635328319533468324877515940551938443046840703881805127705372017221595632489427470326972921638006216279645867993112415888231469749122514581150622116035198905178421178071586507683652095449173546288507768882449321067241373204772477814087633250790580671923841521195684288801192710229136856711551598257037948190115875107359732924015687809198929978274484614914911069220439478066694586348907250406151130204623106514200331718092116600185460514929635983504272635615154922813962355479350573384346118052187156471995699226396929144073097319648175792968778512670877012093436307974742020845090165427980645693478129149670288801516567179617120817817876753211091982315174304303512703923794209782183029684823272031288225995597207948794060839083251102512733983625355265669995793528672076977294949641280519148512225119536212540687684558615494234312052803084528577941832552671120948326455417113509741632221324871426741565617065833291956879271019147268421055164159608299158730528685436073331667910033158429457862391040428830713861632032796406368106109937597163704727952240898789135458316967307172929704228164415985883924357266326205252498741751370196197435307100591817869868770074137962268919451881695157929007154743828380041669352788849583401662815103787311177380855517691495436846457021318597995106608963081991036376064775303133411808168895661503065066229512881226362064965027921120233570081294478174697407578915503170116384128552795905040699541020131219622670093880095760335867480134277182092276443994815871313123741832147034888024086665943436034542935977287392830618279771056586507697973943776274713540384825922850029814962007899766120509387394107399695763370714660549344381204005348618950037441384340223704640833674410161421005105732599050865271337809172367250205080647733482512037839435453458628386740456819037021251684700348897729612673779704525077906505359828497951135109625887553180440490029880971065071567812223085351742952911056342386054089110889743615217575138739130615223008498531922806226598487177478430127365280792152307613731216847343112419381221729497731322785397978478044359911705883617298730105863955721780087792620322231214990135808973091007335143660147469255438962940355097526525066890884233677257715329287934170016575855518596343369339266741551311923950161880461175397570928052128460603145302841652406544190708623928243442145310068397361890628922325832748338786124944730260667604700446191317790428306686926793168163430354859384098278586344207702636747333009811067544891930614509918477470755657958741789544518776577877603673906833955822859741896067615421408161816493429344298700367899130068036688674980655818811772312140714599531922255757942551059666884370153661369057230831374416148993689271025150354986512968422959828767706214281175660975961316505370624009384009299509245305918044717870401023867008577015241555599103280549477654639670812211433442858889590377614037241204071770742995576245620001227551432182206406486040272088794399724123065679803543678051443100098908907319778988502797709983314352582573356922858904327560273324264481881251746932132236421327679896858879743333386445610929921130059084198267546736591728595032322717999615343542092880570635617545523468858745367035507711760773439368726865938472539290394944720115783264184106172927317339543954804363212653032613309110571897379618135203255368646193744601319613034326080922041826265794847983750857335067664226123927396928835340553376604543131869464485273342882098682823852767325649341789882443822437451849259623330431684906734806351531501118550421399023366829479485868833163847085511234320337599726892887691113097385420343631175041784653761831897518374794465593176755238574665901204643197591026164727099702922858048740580878026586230732969364011328659207446220052986924531638657531525636184364138612558753693933727501348551220285231439471046187898387045276330968408878455396875469864328722204661393692282855463454485222065810486119249490337058402621844952412833892966116575542603685422333630468346734835433899492753336174370895636736035560011170734617722640261188803044696597275894565729289138942755743780874512024822010599724049670877481087701028173037673610059372471953663304991681273332732787551325946233777853612531568974201876740872238803136124074243311242366496524237501743780110700769193828411722870289239795468601322481612852572449522268661236294266412081910638278861913959562830775645336303448186140188074883498340608285507810220365057855938487660460126753723079385280033057044994134552435171110180201054632350752931499577683299932244288855936577738333667978905739510701561236796761967913234804218274110307600077778877683303112155468196865696398199882601802092083049055097989629697186916899469556630293949906769972133793909880085451733925108537576293472380490351601867246055579928103352673272670684549275462788839523757995053625402840661168757024918576741453428058212297694134832137001591284361011665344139470254190804005631018654358109188791939413254009897858356273722691531920184788143440673582872366749651126230896195544132772824081256649960630486533600971983970064571622653504642892200302677799373828048570305307337201558706855323445062299531530810086959660861608969797051508986111831663744777135465752134429644144985092405198197895544322858478800075152655720841885113741496983214363025432687135825820851874747113991970462380521142393088428827993753040918052391008658833433610866661530913499688568442533031520719003083423121564283868813335267648040412573695384068452598571823986197992989366194034202342784753359146688422969055493535827451755958933939708398642517639896616394362815188081409938717820926736533633481416660430134889616403591099608767523801159379764381390315763566282750201939523222192328054309308042828113504266131749560567714632181348158557070784722149090241887360703214061381997133156100155609230609535125277701075139397613318297869373160440220022231896782608627021110395220279778062241277191625476524040825725956925261859760263264727208423818920860827670814327476745138085812091302847375089159459249323737579355087130473816283840124815565891914508003226160660003487378326166914512003362635662987566538894438733549419518326684783437363414165612585977342202982494288450301292634805567881595618756718097427784263778519833013517164942255029030707496597793702786151424983411127990526494517415575605853100228607540907014215601631578292692338915027934464116113093413654894641770218009293409858068510052430553493644142178649515931919050177077268978723047988816090963528210984016305026623818135163264829682051534291108554367243824924110575916288986325157779872278084628576584494086457736463748756758904665205432769481272565840756236499858942523206852623862155876581583564817040356776494452065301904905274139948847762538885474555867040202379386740929717411924086443896216774798963077996399931171948620076207237698075113693387350502967661618398197179959406715491804828343764732629970840300056449437271085630417413258322704117478404653208711598944015030853498122894631590589959181251280662901744976561290787490418339930957279673259515055027280264065851482099462802793567098836642873355545546966911889617083820741120623089613333282937248522234338040562769517648745432828711992050300608418726044499366647531399503291030017778436752635164906103964315187647212077145864818754078605972903098684497300001694037176948608666651134574726746410828206147547513468937264411995010998061892094828907266835146778990903803114461205026233228841921119156372610468958770241080753901214237663270685964108016507263237526382838164435206635325492963964565964534406754333677017785311688623774081011004543446786516656506303357196608442343054005681306305847100731551436125100535911063636111590718605441204423212520783134825431508042021031883982467722067493287656423670344347122268596337641674204252692405444543432308329402659933910362996617261170500743119822906090477627045950911873544529860653285910414979298584413966700122347943362528153940183796512128206376170363897659273204066747958275724030145580323473781409375582108329822508361501873680481536802509587463337182448613233746450622033474875150447902588230007238003581465926494403585434644484128112183874124034757099129191710472039500687048621753890080271414096600570760828974115623621249407106986871859529014849456955119574906814388683010599591458734663526636241374759629555992998137850007592978100289720652003403390649757671096407672274555995860961786871459855205070420724921225748063756407995143008224823662234140250702101627797277231925180965207548402268614821165440863077395807988548090079355572085928944043693814454322682647062619567987979511719691323306817340213987241939606017584701741282502657659499807897829076417942726493563489796423794427542379485538383938416437771669153128982772746558295171658341161720809195501802830536149869510368275736065798401611457658848612860638415312584671925025259019145590822989807376106586600279263238353799709763325732105319449162072585230584136914444607815719900798428537289415169165399017215830120592665245862845404322037996101627288793807195747932110624959102215578568253694318913782702158416880278980701606849317379363534119390960754823823781001225949289487395309186135200537956417882156966607826306514312193972906894450281594236672878379401367234214658123789844220702838469337307174745630359915197651784927121800697206319382134134818095195687956803366292566769715083485204173862782884345172617405270363233730978228393774574863191519667051280751486517612519501563985510904623528699535120471566751098675556509485002115834094439931123327435406305351873577008540834249768197890888551079819844184287478139728150063211035754646492779117743981858164532644338284884031876669041273376741045932047968669925009963653334196652806198649459087897310424142918271661379662423647866361241080335582326326747262025319475157197425122262298808067362037171676958494528859253404954189071304308226473295931639547848643038843587839907687879916697050008914468547654269925058740165184613892777043720780487723489500278146581961538371842466488898723912336115615581564296640174273661840424111345029492324425430010996227147828507185083250930253513080041502230129243495492375574530096451379883194621378493178446411043396544423362732139725907639944061036049820017921276560320152549931524449648867923530099066279499070317667594532617230182373277534025606446920448799396578852711171763352304661110730293447291940317209007604915229972678495053777169582338899222407589962725072336322353430096926249154073552972106755667087935108708710100848826344933194425510158738074479223534715983968245124598765681625775579034794416337864146263102201693658181553741985188001287315173488596311299393176786246675191000650958165053553812037113635002590535205848879080980953277480026883470517946613145643743082976037773701637361153854932603399458310685565404435008642431384118420895268751269118662861219999675788216739861181989000822376066439519490527998011642385603105737922011318501336454042718631031160918268875789118379080519018271392222507500289860390573855154243086886569743814736647991732927699141089684451928645717730916399140055033139029096507946299106051430097198760709433120911169829162353753029877146524578653915403204794802928503277178658437618922106928117371731413825468585424478033436752623826005982459785510122674843465480849605189316743660870647852005589260930231965862883350151107657084178101946703684651079618740295634032886678955107534102165607865824767262514156066929738439829332562296213016611345265645307263476053851527283715064413413515554531693047521345002842240263681413750260408162116689978172223966340576652826069580755722895618158100339696966470917886168449131291401343556630116287934298130332471301113778338927353942955468914893231788002624637098252078644713122069124358371500671298047659306606221540281762176130376185480783262560568436634062414202873497850389286030139856416125758218150234156921373337931753143169356680747988868135626954073582303906472840092944109786416984154142361564040832721825025428442320158114347130854630243906179563393172226261717840790930267322497997180139672514122637362274414257169603120142593287060464527822742380382706500072217415794679728298319081329510562471778060389947629229308531540130858096713172782008492617082870877814645685738090568627003179004565924240817312991801681688710832237152766989424664272941818153557563051460256123093488006407696933574781425339336536515217272066086040141007286197768987284773987684608505686567663499424278889671583690837735711297599813942744886029327179781797943553310857646938799030561819795679804479947126888996679583717451371471585168014553692236056000227773318433125675507440743369111268691339616686766703462784006945110843564611032960265274309973846032767721365574062505399522761371241344046801829992211760465079203638005968963124256001635280692179156966329102055455883257496092213474973650288799330324797525471078024160656900172986626565129390540136717152353940621094273521400148695750061904403327041669365594913231917670636906941180035135875511664286238973774547983157432314945266415707115186614553961591197422392324318247858567438315545555313208540323181045077921104696263166113762138102394242985029466208442023910909584808710680427684608349451164279897892837179874946605549983049121712175685846160802532599697725958750856128256324550327935081601067465497314579571324889122679307084920889215782053642496279318733613643820485487508308673929251438421384218425478407548995115330091697986949848493442127506591346596037290679332038662241466274010876041846607065424366970604517734842983139160921934573797338241490048180624886257772695051029124311750450874090071115574822926844254918891005344844398668054522508564160494407673447651604905045916385207043762185446162861162970600468885791096704119044014469164896192976924367954582117912867746355039848811723001090230448758279247821778354468219162741695465310319462614898348709805845470325312566612794264154758054330637777155755658045401444274112243798800243594273341569634477575102153715065734939399198509942661986216107303679367504310423818939417632403562785671244777476203695981635033459321462580780988081062146340697012709229902196743461337148716074180880628073320240168744883457523274022087580906166364352344180558111644201407632004491458013534377252665024619181581850540400674526869626945562307653248168650076974344643726115112316547967092852506389225002498527201837892299084355982041631565561795631126241168943976019928437240507119025909290056103934154202823635273131258352095921363378036710396746934674678892824457594410532071552344991777805431481299460075961892247983411660397089947972074492869343073326227729512357593131366924217722861939926623514546296250615309945905615951006114384319911421754134760145439883046555610010451301686624459944987081401601436030201202242894989655044175228111802996700460262257470030232404940257797063084051751204074259378943061583920753898445904935045525030241669799481765812620537749172340151530827268657597986844734737932616502095845009939387499013376032669703957860492217071945622684459360175596254121543347362445784583456813254786321842824368485434464567090976199807403192895908637156876568170028525520024008407915197902833940164524963902855440762236282963386125146746272098441376310471312646573200242582301740936197221391076445141061819984642939156990107263957968666762993809974240521973400106588164522496968242838008492347858686254722762325029343810390064326482091792656156882493356934489936363536299318385590312717891576714967251362311154058750597939023384836722972300100940349013928068685591440045620318269152295468718956286499669842264959983368805283866951901475715588314955613625533604269886460982875199436063673838780284957183576782012641813689125949149610874178825157006200676270470468230439397802016899361238113379213777650851605223798072212373817928713522834327117710750293120477331546761557421644368325443418010823883360920217044723909278975741485484049708221593760441640327130516168048604733550911662182514403359989997318330164181285615116340556760111645531930303755936982842798264868033864518664781920541038522894292327974650383319791138093212612540438828997965841850241220315364187182788572810604422464248724548239552949564641726491469735992119592380963806027162411499320504861072961312559793831837560872454697446632324376104234380250781672838908785599322088945626612750743495544893053777589306260641511181976774543597201480011349266790101019766270699592825049523299995577487232790835039868667221506875168510748706738130271056681751528664363015730967256335200986155565442539610887853481089778628771836830265854710047320917672801438719636335301400261580171920397530481479403049519171319973899301637748979618841313258018675289175139588408237761418774892439657153573211635701467584723694922753796551289429721478292055445243050027720638501207497017219212346764895522548801194132302423402994849271006383131627053805555859929198859033195155724842155138062824724873376474849185001796019349128036375838976247308793898795496935414359231252427737998070035081401967990851464221514524648475733245774473540450102684919301400871063977444298777365729659872009678875167108806778539146975228664315695482186071134064443622879561628516142286932686866778402081704561759875597790414148681836343076293461011651801498504015934055752089237804121200424564881415661610551161031464094296888703040826947694215215884573835711998681883174258394672324127152933887965896662856588612807467250895914424456592390964485162430799715316725261309858212403246208788546720011474449945781460331432928378777743551948484608497772551676420668427642007311858837757603695269975095769718655157585961532919577093001644652333402997431363819168093272302571543764949172066104232995444503685895292975182386015891193788561362328846133429373965758477648021301623113145643891787745170049279748621004159149949195421447083134535136918863641513374003493946135254473297817553193592178099276415642471524013537912090437759302253604010400949853907458456018866375353389468271095279390776850890771922948401064950829468753746929588678906152512625056412521331802865908046835564759743963486956061249502979615894115099285963380924385377031094929073340783069242762427730269161374797273523586155322915358377430878675796813584972378049878832004831428731920407370062716694125137152498111387448168565555577543462875557451306577790983485061187261535759192741308908396954226542444269476246712277374780827747243516164244011460277945860070243610428751469565951040139110378660332863266197420477869212191856717481549775189944257840231204596683290098569641222849831130369894419569257082874536257308324425919367357856483773518556685979475174970190637400775972804481982865921668184214580252821363025333771832439798404499873231991365648821839835096457608173474075672235130311739549899206683194717282158600982689895339039919664027209734454119853462418016836178932530006433045633769207811398996036772218834190295758867792723012403922320512814752388128253396490569590629533473918880815138204208769611495767907212680922379438466890201062034916093853211590134182876778111264815662083133651439195984018298992753459051344431030782769983372759051751285944387402689102742446227345689842049547374453267108716530567922871358579463281694136540439838825047335702187513192732017170942884702545718352456678796424780793201093916373145938469645813460680192402119522746821198124813819273995491086943437876926220876915676049078607837812513798469401067230082920914729419403548267219161722967981992670826087590846879148643686096124820314733117192017739465273075759377580364906441003187096961793494254055486102387517063722195294822044794867803307866455315172614364215112557008279909918826575250544307445264332876630292832435097019930995062357562284885039925217243503762876935008728384367468545879609415717461706444811980944844005454825766210113559521966276096922515341650574417796762433274527285542199004935268458419794244835809339460650077364800740879188030757364106983676247562927141227437971334856145066325842805420927493883288528411048255803416822366051347087517966003913025087211620845981010613370823233432207393219658731430085595617981820291182195989528434661705285336795123328801003744539937374798185840793306957734298611828403510126968109708088670451241771989536727297596651576608496690471654137864992669643338342807068268997026225478879561934064704192675406536262473692837087762568291295084212472079729619114732053398615249090599281481483080296727957892931394403879956534608505528386817700729015986042655844691869223245923057250956105451152294383295039946951479689327771131107996125864213542666326214979077688713522839122073236090516747706815212553077642189134620124474042219511220344886573464124952961151483402168258832220908276276452047945158229849036320853370148504340240007470169998402115185348739420227808951586536397560029940487007922688277174855466335730483003195645845937662906498072425890656013708677574414218808308817046294799939000322156056447076148176927038187819046578906316446818217843138307127669297452372618850700968059081908944801203417094679917729853558936741081571728789858120647001877641149557850780112127250750732253010603637881151179066927465087969318247816654338566035465631717320761555070129183474369967700199694385881806426099763224649708959137831979635486373166454841606141015963407288388599255700054399376112599609527521152215906447880236333765448803578658726863563937256952590626493693767106299682409151187475727922732257773690140124296236952609303122285421010721651582947330837152192483219880588595279384098182245542668995380801736455753518805531953492840809844689715018497656269496165882251415831602760941419229872334358873430370956500226684852940486247608853714767281042153640606400740325940964126922200657521931487333247272261424841587778351494474131720232116333376761404530954331939070902970830727503562499748316489038124601951215914279124444300688528452720045815833348445139541320632451976639756649438134096840915037898317854317630532421319026186013273853598782699430225678533943362677862903400388293323063223458831296421818616883321640733557440703959842524099188688308125261676875510995514310241600570652363766248291375760945101094032374116804633501210848926359320337488727529454220758169637743846367840637913635498895312727972766212939596268431301311780223705418908902542837344287396834370363429784030680415342140257280853227352332417876677521821196107719206288525961692512604394913818007292678933654269377351143673196279637061889452809546284334943414003040806189240508656035488246061339090344441942526013491501164724088742094409350886084894665263441014890182730807059266322676068459542707488301162976646048324100729457892075398160680424185324981605277483096953789239712469163336683425286377098165922393071691739489630954003289525927395511681035255291185891888543548876286042947678562731275746323876541929443197299716536315733246087052421220842290413122002468430043183384641526236562390505007354632990904532398415068340997757062662592714103124427752502516230576410768041466155806290720095592579017920820551583359995883603698862875457475051854242399022914032874325040641598091566713376128283479371273362138419814066359095900940135435289958880779329539429501817770322379442280219800415055938963433945884919036062694916011449406528626691530056567295021851089669737054936338747322970198433258092586178617201903018739927474919189592634440314710901218227166807721992832720963608433117109369529325787623037822064505782121701632287521745572521090075461504398935318557981242863633903992563681685949030625166098248283694342093364854749544597370148374813402048330609142899879848431424446528889169192803185683337272675364568192602492575483577703461380952636467124066479719807257010263224327676889345613567550308047442695197531932555726304278671558504082063197851033517298798248230065494488830253474628211657195014426475236833896714261272931950046338947404882228534362180822103789231363923427994318649418158872339873838206270971875322465529621178843358635937642123084416662672844507143627046454279433760108686772411985124954440058635591401950729602105243894745086058797236969282369237206482748859886931096385268439130699107681006804325367727908688959234807462947292698554401967526456210180863833582042665349476546924534964464564632246471717212987030394102931724494891769970929433536042581749681191747772435651333258980172335704483064614016709235089713511223425033155712301477272185050861410298247212803166484696372910672740778675925708557440167487206343947925657425744708839742477531240327301018543693659783601639091412808735925227363035345289950028519296489829196965188258206934971674139725878451624358011437610158022251733441538262666808164733166222043189775564724605176128795304336560752544052761716481821020338931422541462607848751710421984330076598850049359522953865232497723863448715708974453899000974165731263125712922377731744068300808616213925770210115136418315107252615671070923381940215585673700589275446187793523574709408431358563409282631712860533521915060647130637030564876656465195193192523301247327798994725639572704140882314253287309395833298752343388259479940329432469651656974256688155148018761315252978007263811123608196538995986734407619173157424419227865876125243142494412095925813651784543219124602400354420498201644758898051873528896767225893193463010288720990821278529945220064952896054711545325455034860106446844642505531494229152584824266772966799154257687825376725578246830083413839933814387542911062606557986446900769842793584412878679442059000119301719343260516464909065398410742356540237122203676631489450563867332456116568102222198784225281080160721702393768517809234894419352989582560232076702691846885973445983506570493421537573051846897999170238508707073272493978841734512636855778034176341955880476028246643993017609001794520710036321039012989033502377987822643949049316609059173977025287801377614067490424670882989185334726711098320332894177021046960217641211107037779524450812183397020995310746294076755066339366734947049370948613679144686434930345893241108408966736654871345246424612796287639566288198514116488287341950681291912988793349742677377893949646884105673359469668483709386895864419609323581269914238629886876931213631647019221962186648296378807848501279800345654919559590564309947938029205964033884740282902695217133431553409039340050971349442472053798602473752857954830242589901440344264551849759395638627138191684705490145326141886932887766731689308389746153972570073281930939006760366237242703233373842640911470040626646047921407037491706534406853463452284112199997291728138558489512158921262578435193019018069002730809316052096541270342634000895771629151972969086933460589829030079404263329455932428300595794692300660091263562572237797364317736320810242422454108572799268569505190937823780811636032595806850979171156804870973237114086691490821824190096867239528951797658870068918226887492106860385291265473470200292094779291562395904080177310060374763060031818515799378668968443847027009864578586127002450232820661093854288845013955651899204449390114780405078524351337061227650892229746130989392137647696125152188296303294504347465824715761232138427268999029649392240209719472325644445488166973301074312194942507991553454007634062038301515559714930304369103143581344319930390184679841803550303729072059552319882266316658973592971096476595641106860240608701388073375812735797472170648667805523578370575664201198241473198867142912162958601781762870687693804464810126627274467051966857780185547279292138876723507578425641529835068474105719239030335214030035735817352134607673506116209866496136208395157326354538957096890330055120320569938799502277363156637705001526361235941948267732944312929592782362137112705707962757649239435072920682253194909630145798703922005121531876952586932681309520677499904760943509937649867058787775303792547676607400959120900400470885116521668378655693707396819418409199172687929691499396515939236946959547322168277252314356140998775206140884756081540338664448887504997149679674281326394684700488419804538768687203651973974799523055231887391029644905000529373695692813098053143899601200673098698374432765127934226782486950644467025616271019113469122822378926343473345767463112052459615322049555769566528460513755337121375405135064178788484580468328455930190799925203687415898332166807680652442742817838631280236371504674083605447217075295939932170831642090260416524092999427301497306071358138161271520771185234457854979776698092617854203780613541850137131564695100346145322376600034813394925872048266354823827543977310594564885101982116660796396223128172560962389784431740083353186299160263258604658926791045387217948404008488135962874658627245091949661624636735571438614087328362482330713078063486857717548953345652293338873670544823686962558973516376809192532566614194119259627809678580889850401807858608765526165781967363340745921052096115738590535512830539135883206850908721493235892781810953938344946609411293544490943517514023278568854728945252706547243521980423797914678719055990770238331580967840802569233832143813938249701932134764439623148560685337678951832757886512664370440521157314926130417899699491044132507277840212311651705071559997058953984511143712334525702175345026784198227898642902951974775452943213141986811790510213603649959483311069267606244825506747956238340168393881376881096450815942969910268080450379193416798547742052323182136261507392183534518249606999672109362998639559577231859848325307566014067690302927605152786603205316119138117564668295505728614793908005213132818307600169075886633897580916504501408410619534126090261311522463486298037628218648596773298762028456333260224887956994526969228685083857769029258032004111021822717848110212835630767827213556760615303362593017161580953238403607092900365289802934193445661703054969098246506227734591294808785484107211927523054333355924606852451462459665782180099012883793744426147054086086562117277241441216556767841804751702047518879506132777333208389335060647938317952626275726147786085947896259401706570674252603389639144375781639860498872615719606713667415622145815279874670753933725760214582212482520424203294938364834767083181906270698067701995124126598730338679475985552486338997129816606249335085352797443479123044579661960093938174088033963482887222365443949723138344059938625648367233917447689417065828463060093957107219907962881195923495095476617708614788781301396589799067546085445972286617225671317552025431962850172834749666351732327011917267959958414209734214152912753753717334705358392406436577844239106646943073290458385078299710645104772230601523985327149145725217276354991020776888754210052888170298299112994793595674014870354326562098590612440243351420564947918962231466185127896466006774347316576581665820747692594635386194251238581804004838427820712539813919633422686766048059692726163484336911336546302613406453041836591143033422779954589008188665034859141990067599838274821518062357435558722045116927367772700237896581921281036827700475456452733743547010686462547658406123622527519763706409427043414188761306126647326360883229285757376444282789995994822636184737764188922622675968791912262463576116962293703462024762084229508673752569709992688111071649111160438846492671097908413988166328487738471283831672730325064353543645389503583320439947669011301167025394495962008784200489492491278710551261912824415839583760089795963808677484785431125466649988466294206394837377749332599934164190001418437759842065926359061338845684819354852939298464669117861910508643135986767788021659448031276013796292191218967527766936542434215174127286273072468615856187132674634747821828511542187675330360026606873484407491291177470316831244145939138656530619862646967556394125693999730294899959285965491626190271163770864864452324840237007806625194235614308505191320024193317699952680760154597568904819473195844949742383611248507245491183822316344835515646534607026073591831807935236421565620086038792268395525808373873765400229194323660135379562920272590037007801805892651915129462198296472764198253037598705204673385254598487907712124924414730277114397413143076832090667096185624702256182498606750530603589533511054194540610163081011736421685645119102083095091747900411056423063667296882263368633136185605768102141340205758573491026554730881056255624637366819651398592503435835593247774134037693655509580913221299447195174446554379552603078743462464458641202884501093486459626183014245511977716603837573405563755291592878540061342201994079806811752194294148031822928980077467418258048788103240556629383196585798491553511365773417606100828500421083975475297623538218344408789826611947872918357640049533076333418075177381173956372554307465813390701506297448370678606727586864357198031195702418901700048873327799147307351092213124620480175572505917772844487841147560724285811535062888382701032136813091724931162738188026402341203084636114974610322060890575919052124590859949414027440550980722452438357937205804734865290210627843469025786084403079035048950232212702576643642216063515965683155449822511530275235615206179547624234003647427963102110134112931127713873542681180311920790873162957886689518419781028837494255298567648715013798986270820668791861650686760964208242553001440539659149306442528557591976659584179202870429329113743196397079283642978534368110720208333009545987304137043249507096851601968610350875710396871187281294797405141270647410966582177932139312892618228264480212280361794651663621927623044263072996691169918983104549287706260487468960240394793123892775949806924986075799583269121203415882399494937192238675385599373994500690970016950825616509893392466722095673641504426678899481221062999725240881590284970279114806608521927831745693189089417651015799405016738540058567860084377930503208705999076573397592734566486400875049364045467169220034449254097028285942243029277120070976628100595905081736294780663341974205732253764684399564332672845738202961382473287037965084436260024040143616940929576537733992376868946117443553932711316629919000173082298195343569965320179048644773568827447746371694846565295495833467343602549088714792201225949857837094146452724446154270831208725035426523412330526454973489627896617661338788163378375601166712711641248301135150700834839981295073976306237852863066689149535696355786302756512317962056888878083776201392356998528197739470150501780087553295828613469888496983842108156676837387799036319351772262520097760958581088251392009610603620098635144913719629630670732131295858239413743578957128136283247691381493202294221117693077631341629920221913081192713470533397457121318578778516875501937875378745965940861294801484235023966770826361793271871602964458706638368803278679577913799072946418342705495353934004380093944102086034209447290793884678168320076984608527771632565767456762375833746923860832425507695574581637543867944233775344799132440451993291579247209278879103207103392780366920247104819395897961202475297494228360004401034322923880098274666879487177557987482434747677101958262710310117817206457363963008848563015529729379223838077278137387677146117462392390516337529667704176077106246233359878862139889868289516935353869420852484644927972172856776981353061628732745488961930822234336342645258631681365753531165836564110787277189360122275445417431828996560129287733153850915649152597196126995022320753124115996626233878166516301379560108969695345465224223301639086803649899827728074491192199261537224509493446188226053854278028287264053416079320131183586450429172956740472833970387483324033270974023320738649840683536969854384222010515279725288734450048951410362607883631329228060818391249129428368904946166466949698813463002748936248257184091000591342688396847579505053896320646363757125168553512982442753491253255529350076353439296548057306048638141051855997111284499334423153713270648054424282711556027353493138431084524246718926958030548003389985634221280050476170826804303844659299908654238216441511507958796274115276104135511221111851042828976660765633396787116812634885406113854878488104027299472077232171961417407990441771069064700209376278565699161131654619210512640297397113719381401656388244219203810543103472188128028453620476282155321110753544216513392198768993761387399267254064862763253414085170869436226245146591514117203007920251492942654465460833700870595819094558633681837148283259968956528738691704050269557576040880691384364020572952111172430770329239434707890163510560804823419490551159644354629180238795227471621119456946618060082388429371478310679697391164295216482106887742666394070006771084897352390103033734154163782141610596023293991010195790705201807133649789254521737656064069563639799461853297170353004806949435766830846110813860946841602508251751914563503580707724462649248257214886874686033802446821049987295443652218202325084957574400897056177203845032323064110408330654458742385692371017643488174931907617346402730584671457467607118664708476528925598835308922397109390657688791994054386272070851684496762807662161126293507512061656586633491370914121112291047393954833259442226468073651190765515412454254812509311375337521502553514471203221029970246872803737388666173660312780092057104048992371328022103275049021310311218845419773307219247973474839045962269091438610459293410221951456988758502367701293432460559933173672487572035793327095724058593103515283051895935550707231775609596135999831902348515278850231234151996072251984144206487470670600252847173705522804550106080248670664161398340789124272290855988873644441061505357141181239665265627622547115276385380167942573905850421782823723755378358733973937870595089762655846583458531294600365887977910011117473088386751128541223158615053446682088241440611241640935572227125227467169402800402961723200898428043207127754792519038305704546662302097697740844748338683155150032752881060457431907733929737749955887492250306699636465550207953893178112037545434490403549255666516828766438943301830969981568289860316746989250530841800324982866184293068377934615805107991530459212820574127752496756099033551561432220219674536515301924316755826690091338981087705912617455863436454332636604437814749237610745864091051919004822523772842418140147098907266611372226746787223480082599334062962706223304649918954073029963005711660343556075967208157292997188017398777885550355028089808473751564830343016282993238395401135173988594216374911731315208253888466308497617161464216303547477624698078811493928959943776560006609378104631974766969947301262247179677699782666682327494343923179320770807488729555221720715599955004697815682821588975768278096338613466447786553143401489350076434676127735424318597613840683168666943750410308787750948406031280325300981355875225836385444526427855190170417511702005346973979058151564909978986245505211143816624484744944149967025013542083341708704146485715970375634867293993720779636544117058774339104327334408687679719488393252355017968047048711885484715103324655045870302049017861473277752195026379784775908390529586292717670190714280653185672797376911609256627097725154207802610973883482073725695495720452627613652570563348383584238760179389229734497191198264263100057549652848384910639929381832322188265687492220832371803082059236144561417053545733121015281046313407891418709900196621478474004264927434824563278849785976283095820946534816355298454037837775336420463833020158916286495677196988466069590708005560287590381648202338699559235565936554059094196204845497500333827820879043944441063093834560217315657884176040688316990223963124485150891005352936047559050355986363172060789065416900728379858325885514283154759783200898699344536601022390965592277242687210093574132822653076746723490926006227994840559183010295197623307764156938982764571699196921015898594492629488371301915452367006656531944212983546275835621381133865101228202453205258116724931175040297380520930548921518909757836288976708494223023402953720066596621880551981609112106807555690095882088779487983334450675702011913260125094964886873525549049271530419335850930717776271272548855266315618031180963164221378437843594717615850605311865324097700047400065404095915076840679339252280425850041771569319384039687830416800586010117667368011539376852895171531008734636252956123860635440912360670654754852837792281686650006678289321298699763007115935147091969603643533570341112014471158838072203806774381685446211442536175997756485790638862387751081373976471726118247281022713078303245088209375745255675404600673922686248860669536408739717391293393284243702312981236308427964411390041931997499122722684215636678666407221986826551755253090057248766448387646278679844370119281666821015897432992549279015574672530232678557766457790726597983057245342911408525304724827015727288651698461855881863402670884228499722018366222189621510395263835131497094208743602005151949061405156438953610086888207029532200179449706793941451701301609440787186212598779848526736348146236557531908938020383117183473988994608165038338972925337737321398782272215662570074955846363612330485281462855983069647785874568492795229515038810324156815874322424017507652989475947028781711088803972979259133055329521791866471832066273329040984815716580781518256029868076823452238266023374463251119565399952734429589686679984365990919150839487373205596573422795170392859917057990980397628077999585930930026351495607422892500747425283665350494593128813250254078937440257271542300915256980083823281148685888591403146771419968310763208837226876815329674091559513111409612946874600173789879452921444148969247449671747656242321893185169482817318075617964119196876082931412778080057556283969733849356292121281226258162635607059687480459466003043285051052735828281290783852206471645756706226759134758976807786479445430560520513293794564531554476515742988923891387511380100677115409849098912910080389327281950368577435080917740571098004865267663428311028281776929278009207303823384408220765651682938893366879301880020119178500608448848619528786686691750019740861151378964902362049512809182835201342405386438695595562575159459287263249528012148674833583746354530678556747950073361622378635658514815293431367957361461774159676926727883335458461744309263262381893532143240244965118499365660034651117937076549431447194511531244466521272117274210503923647447401223868152589544215389281456018406145884982967733404254918832920928168660901567412619519614172044110461500996834664800730831837961883816173201337623624711982864655593961800334254000168309407505720616518899777459907498308765084463396072448827389636826889667163623778542539212237193407515700848781220427926531337034144507973501154293712325826497344730520774494451918449763257379064000319798912541136346034674873497518149241689370832734710386723817408279139548822977553803643909569783058624095850265743627323674825631023224448770168941655127941210508597492781826333595684568942915667485239728960265831118085269132220035412537930750566972775904687607313060205131418935342481323916286565861784933680031801622241365850014014678055884438475546997075880544335145419289470901360865444932754822275710842564732477048370602992293433837431063557827481349063143037063616376801705552389015492614562198053877865707816380882066969719229162416582325572818549856085318020546877434240766095688352324422571988715746010529728118874138652000657056042130347813538912916884632338039567558892507931727434264261867846756115319124193388290198748423443393656363141054333428494904035623468320332492272510448868796462493920663054750331466269783726107502449456890916248585197228371281935318519273156234553354528009502575918254341832205117285418531004835971488527645468875861329982250227719229072377739094226682940611479565570933374698403421434752445589698720393376080951085433932294441553991707480687012644546456111765402393580029648891936395546619980220214876606791668931969673614786533663436330862173339785494927497356825440145343727578870235718029890554388956518253190600748865085401975866393489298993286450109909395383784691957630108253162290247013305408756944735363330538999863929133721228367120391180424119516691170149171899110025301760473219007643379245087628247317993276665022989390139507917788809884792684142031471191089159086484405888209919895278943366339618202260090613534778430033501051723723267835752954838215332827934106001180361375077810049902627753789457440796554547640046909667467976143724162181732742615036237875094660391449475571750031842803729826770804085882959105066276076891380946671056402329863826579331344877677241659016945743177242215486037856799085995926790764165342825125773290004716939583990369339293132404145182455252817861471651932800125276015407399402959722142180732017709954466723336495630684839128074128743694238537070000058864797039348985254894946739102633943368962297083900303095047286247835420569247240708156672894708892762575266386327404468266039533597597740701871917951080143511178569320249056667242397504508810413422989122856886690310715611669929308088628677305809034835931358650087263716139871262572547641782857821472619315140539244302902557343204568740122043977287943885270774896431171834849305572189019229967574673018883328462524545976012905127403796427734611741540289880319256963447583765289884908615194609436464748917357104274642864146216080773648938035034783375474915691981077676692884293548456495962899986365458312909660687638192585012384724377215890867172711312588948204163366319461273623357851853999452592779261752246081071957816940742215411099976419763398824358901027400657475871643311928451152860899466822157155767065612263089660020666276658586535344558846972892817687855600990586950561328268943605351048778723906064800896023254538897262946549943737411941590085743500278592702871957619023836283372109636282475439767602420849985145039084496761452897912713601099500358971546631422282967884536616055501518225222583326948609818261735857630206305297922989367837348950144928593122254141943134562844413350033110644007328253884036915109017669837422804849438987689886795552454373373568018499838825437926395797367016028800218655985585226059319099269850208918404780151095129234734717127375463477859836396108888015230229360100317193155975600850309319761419255486474836849923941950424369306153857729427646463710970602076872025628887501252867077839367008175889189918633551418924536270803233568444558059544994779377655588746257943671738788558587930190254887226538733293345038501905398585768316567241064785116603427433702148977831130085444243194173807856436526661838601495996991850234480417951577217514280577822266800170625687164546826343806253321211458925895616101916599848491352639993949573202542774431155063466889296884123898764787770320575251046504224823573138639726763918199810770493873288894987633529815402004086644661640238399785883912997920452793868227904286738730845066762934952863744116890239574322797428964878166090245917928422859837022904130815518823136349781761496333172990949662785431067620390444771286116872689256800356294966272870064912003778837465654148499732270943675629080545833337052580569901036535946740621917114527635777673392476595680006998228831454232883738952944481315503940434926773033254619021933005837804676357223472640871226164966820190467219512278701594276766159171222904006337425944608769154301244011506413954528080634913307656308892661406684807948566471040853016113918137178660961853882033438743410037208757256066108691934754700014013499765231596068709451763836626522009340973062749211498131052651917161621591539001840717259069437923142363759675097512147593074965384484394202461831798874519145709508114427777642010519186638610027664637197009902126605394332594978725004648220617668996678889070696068978039997882745933697963461329585655880383479432208400953106091825224129239230497393634124908823888686914455530423974129013382299005180987050523385344898320708693212342127866831200058892498569343468953699405357932180931379257482499973414160599215136288753272213259569827560019904818837092064218486299702379708802244156462760615441248029025364799418950731113799232878755734067394807813938969257301045664125348939857773791262335216312757011586674441819388797095675245584270550717209605407269316930278653246244239065678680147286154874363471769936305219062073572992977618175670890403271118119647684208163101713269167966506163794167033527176097110283399094378056295375011120175610569462987591273224954903394462009559491601054311216591783518449686102605444381170818550829998127923681500936406223087929747593040364872838568658361322077205125971365835156350066132919707635632267771552896424841047049974949943466775055772557818783851176449929559260299770699863026166414506630931405370957378947182844546475647665472733779031709783936068269485501120598085652925458008360365120110336594582478138392747445200373022864122436761663657252786867806669535590988246479985798541829375965707150175537671774681222024892812060891043135739350234288513141483264844692221396132446563247198767695655182107203512995422997744144444241128630836460289430672998605880345069925570842407350604942631290806817615334450543405234490542803860215721731271019403407659163790456983273862430547835861779955416057701304637391341467185304735044346364038261090244667424958338026599206774588608614052504299667036559076358697738682518087153110625529160485438167817989100276665092770821545563792114702157632335684349739768834902156235572838602445369808727769355933778088415090695791000982075326610935839349976984493602174348120904136400187316189480245797683980833137726376299905466259244965206695819333795908716320840627038471613355803882713211136122423408949469715671206205280749595484962757501318971304634124615341530983410119825131823113788713229405010315828576221064478695966808693694467938423879875355848054864083513409789589692836711650687024319923709104571549181445713050501886933019714182221693769754570779460202685203544706089948537815456366317797782472778381634682949013324165793007470274253739174011851321018918981716696023132064140098591817736032294788903665300448839985846571834914754819942039372514646250333976851064874682076558167530037032724074290522986344698550860515105092753654151768602885043230529986085914830470407376418803093922644434850001201129611791182569297023645069692177335246436105194044263572104788121937218558894008838285045890915542955539354229659936366486585483994613722304773047254011470127742589991103873612730386032950365534244441380200745350073069117867094843340339481670169778693093722210723265151679519621464350963771576682728618076089093169106089971619672114836340227111590183514141719518656532096776143723902204632680631127662714971680589824132266892450421289993989032362384574852205757166076140374872700613764310001974620166778938367626288302210510202488030902404024317765897865767095735911678923985453411544363212030709698314035372110077600575810367199627777740725675874554917359275024630894988726255937672747393474697757351475459475761041637751602439655205780703379851528071962185988602605632807719260830521245747856138712465503082084726481898881761765826134733257724260395064407299975993391823179858091854103780569240305645644069105282811471287178115174260473938988300492696388992820646525664252747023076007169699695703684390308533940350806765299979888404307311831399538694189708535526583819473755162154349426342214940167786628647313539794879575386872504923406181521226679849589825246967781536037964972670209093383791577351089494713443497906128929684050610472679126379454687054945375610219995281613054422779786005619983865727210745922856516654895274669731317771048496593528547548324346506685050333884819364604250468053482718409336288292074723903368991191097861039195195875035728112251083397777026675672795784384962879509140855174445451081061125510761272826624411450275242544940989906166390303858052936939188699370351754098692883446357940704811143889161892905913259442132954309652837501139357706103682146078749965130820213416748985248348519956209194846010033919032342871631642201114520872253982907081018090643305588531551535856486516555030225069774236840957605666427811843940234260752725684823458419516431989735279199411182537657701033261360785474202064743045640061856861935804932179577852246139544517428097919752886314837189964349160846506736202100918828973962643530817460406718784873854909135042256050151912602905632613717040864046826134435582732276981200731204676646802130001895375451731433692198746545224218223198249296991943821514565840130631380870139606527592758221664476356534475430178186551005758034282604398899605944678304996549828687853720355587075028211504999433314806721779005268039473081732961154377739409992562125569404498412962562155408720447114742357833792127711632021252848619802023321361397988917161659226146216980132147694616890307730123475001094528359840806017355281605278317577393889658650753202687221288609509116227653655037160770474804341260846793516738135907378198986623494067434778586098333802817636874448938009765571201006321457347102376429895863905393257293387360091894732856160522952885453122331553526030034436236528124857280118660935244626224894155194716261017158330609393334963603922406017964698396093326052741261318485275328349677445868293210317066072792246444703232283805528535680820675605990038335443598427040326868188675099958321076532421371586583129694553207844055667305487741894560847676725855309256991958603254745642308686728545780767191767572142208298854978440260301493402967010635493395660399164386268744366121598731589441882980504201740219756142173675067618792492465762633835762787426852352955969716245986716085982210180206492921189849610443202578131058947458521096170065727102459876005916834180761169137314982313532915147386156050329810528766810015656237098352570821689059043908972486971024942602394982075261273224987222999789312720764169850812979926078875736253612390352051705740938443680236108939525514027094209354584951987307017089428455394346981697110240784154088857258034573887060756158755947750835466764849176818235481178131414896314337670260523886223850970299390255182075861949387051977839218195836996665702163355503650625152799468310212760628125576826973522940345211651762194934381333242813578069053825951838237400726488152096409101601815162108159141748916912583252538841253220580406396150720492669431517144743718805484410793464196979393077149934967115332960079596390315303429187403237387387176503833846859603253166558457752507660913906850736260847697026102976530521460982649226556409196700949305787500754129837400437949448630331969318049292157990367539377329986962155584039062994868079359971887667579867501874245350903780209400226503727847768311305707215694136692994816670010572797697143417909241207503780501497366197973979646423913422204858508434649570825231400091162750747532990356132066134815869351521079673719779097870907300214792333511227358430615303038375093430367802435832808242261310651736727871477500332509523605825033818930098768389739675277739917059392772668419042233428863221832805738910007489315576382085692925226249662789165095313074001628184677410783030608884174942980812378539190609690864188201085960309803133107159989588480198936023624036608147216591595859736874004202259982863837206154627276397809642010330305361015161555840957636699142319759236712692842364169545174684945686444555050587273615343057432090890988355893408510901339136097321534385777967086821283440561519686087195106235140010347650405183788422382166698552965112023296144421961041769773223081012243014840463526171751186786688326700977675045678325058249239131990970600295649272428072725538517444181966659976787123706014681873391868064675230669357023490301526034445948211594248545494458646503528439412358287678962077532327286350038645790822600107265668566983042559297546380535752815139065101758281457259565362269116181144602879970114721906095316533329865962716067117724944187052281388566580648935262228339973017590673509985710056589846549466444805203545987567452830568113234847952288369282524327991168560497414394667949494919457317396384784394951520754330607384017125398025104042842601988369279224995872088325033745935013782370352606335277228403588796399350881393935069575938277736381074721201356643729646476786926573267014993955154290595727429149178472725841407664935935554536182428724010092105740341311149821856623484566081825676395725586477459671527279136283658612598232705673556083569120981123310001679572661690240868564505558871874317133208550153476137214515674770698043105360304458050616637665678455608429527537015898520355880917181905735192334973376609542753595170634425415221242565086337194311690650689408407005643401840375792505984242944884478101178550774070847462675346972816853056336447912535576646586508290373236733924191756314255023569773356384403716685662603873644844742574002035201617801164422023450704674598370204014065348266802866722118576263160068206576795324516707859257415918193260047773967552268068636624250127379111417288501682896020375744124912622841365287750714912339021978668156702618576642000329094483978899774105917366729794334317338135254104198008624825831724154144823166499995885961701970111260473681997935272883592036570981422807712775802890757334920212594522457266153828266020296330877799936736274596064009607261023713937665711826225141738414303399764953093320462787145188112265837420417042391196962593551902153998971262771867999501503161817001854758590848911072094199207672907425965969291857790037421140146289306256367418206467238044439999882315406311883231317066856689586973981271900447746244055976441444513359088910940608344175858965144353211131954888865630333195350493164068419919965817233727139106288650949711743438902259381804615746424021111979787489920210268799756415826613460949406925875847917993685242041842913752394154040856972595120130014576297737556458280365624038797961820252435117103856689196263931239788423954314407537021563297829177686386289399233620268547712521890820685964687524706039008003002755520648694977936667309716659276163658670870528133101561525077923104313399256011929031052650907883457972504541645379458316725660388995553733287003258923760533328523963326419277704289190407382583906199250231746013193795489716873670363125169239159532672845646730399686021736756768327533957001263462650835487434577937797388977642239171617137357577428127356646546957787238293960619917849219388281044517196489994714836969480074780532102926394518943219424525362088684908163659494837079940796798543982211948263121642778972836389653441648909060571519176614970501288560420215126569634809081945212328680847308181472772799941600060920349635811063854918755028073415260837056343766494756823483795138804942667196388975606630218547670309111468066632287199214501579438780635893046383414264340948447674227032789686510705951497944203973457685131792750496032426569234132191817128051518421160042612622896052213959618033118458393609503280525194641086128771386530375540841281658739487577904992473712019900049561951027797631886294479247074886155210590979339754217191414382094801829090419369570975119786916277100300085154298219163391978752390671701914606839453941358651599284648131624938122727660540608622272776037730472816751213304424750527802534297259147540200573466418031443311573086198071907980658948408012041926324807287831779714419526201499646535602124637369204006199130048508172959913546535030859929279727276812591409590790931018212653099200659462187147098180112830606783774970752239860660883846847855239886576049625913804848507937630595028565655058812830413264824521464107847781351258464794360002269134114105504490690540528261910616629988159588385395636972654805906914009736633814226024854280835565193200924941711619070002492289200250313604002927689488576887147149213379661105567932984965318058746702593395058146366792808119963987224653078640748833348496341994950197925320455921003771927063994842308698297628346438855991332435564697365995075003707829545807050215476450938946132351846183578720227355642752922867587602734932655118805323995028622663757818802048451243669865387677858143522437825974511457796168971146841328969015214227395308215538136206492007284810591770675738153901545028104102933824522249470995374472247367340538503392806933483130451684246207934348347014126713101506316256853726411378096036385245889379911953913165413963612705735009227110373954651527843830802176436122032995207685397632973839218262527476605617641971968066699974698515672258083628105550052637754096858795299817274060650448318290910737948292740724001858942725949147355200254663469841502476875238377500145444799124661407450829726258563105614949903407271294785399976525237548966107784273189239912167842064202148647349204370588103712773557252877649163080581414526844397780730720293899140286777981339204420533547794833432286079776995056725689028418336698799849005746865150186322687244844951781063621317394529253389735785031649590688625217554405697164219818499206560519496532181185512294031254764422113780430823915788816339889675825426493006589975483293792723570585863011703721390824483755405867382586869608628534928916448404446177851695424374591762431252480888466867288327543449308056256758062603108133403591767222834638325714624881392258065882557561766666468189499887292445271812166785935514092069375514200796141028908949610133973192678249933797722534894034651656674676670562929155285710187279712226895717376533366066117753210069907263668668915536398560915926777857846319004524343866646002079542026454853720532127974920054715839167055235351500275711941928689116788506830306092155109629122415936049238016432267848928043043516112564956186953035281622321908227286383151957399089454664261643233491836407328823327581222211050420272926059612396014324107984167256141487259721142924821343545715390766188935887440271048289096338394690180572714429604344803960220160074749179834530751246512660144971474381962076954374776347965495219838989420543288934246761684732387685584587513849551536534896674953178524785289298678012061569020560295531216417924103496141278682189367917869458955733060260072203191067062742099675768128465426787854415330060957063665308823920046203906950540180214210119014436261094554232977032217758371973260412732677325791885039682172394489938631353458670653391244913421856971782206311710883919662867801979543500022234026227778395344992692695912015129275859887049326987310775933826780418180696027510060114474804286511643103210745939002121697240593661721136107333941824945271887338276156162141277803414399198997477504588635753514919248456206693056177349546569403998076810796911178141778755629288596306834967371339614806743243153484217437609208841247253155044746365082584218453233577306307028262801069858839865350765958060966933690108604165284573013750259817330094078425039902418898088131342300815319585927342745166809453629646749986461191619514465842751430073809232354127277568585274045753408872346795845298478198473496248752957320980179216362544079493503839935812914742238124123501121023858571795753950168673195141753657358836112060265614713453210884134765307105425673607417600190635664526699702263805430309016607175228877836549012372164389747075313298218251558332372348712326366863526346233362386282468935376764429827362172993370516145692356619555960897648350700242821724543590772644296291481539412321296464315410231196498669623088957840658666682143248457135837749808927661030301577633537564564370003778270555499461909289112613705010596086599704980100462554095498584669295452727261050405395928707560102639809324781678633597899707675275687168274507309724202591998053418829468554113471675231613850617131826281612152530304352283240902339571430625803919997845515404902122418696408309636887394517520365377724205079279810692358513727281934839729903593151898362638187094127684038601942750696643634994079124302697451785299977212282852589429094315794698996075625695137374557075085294981238244480929885875612472846713524820957828475487090675673460197935601918196065164198193194556569098710916973802204026271462947326600071163817331992227599552538166426705497683282293682536620213600500910979540188384056220119540901566745971809816438185479605037621990631157391510739109888380982842116381294554402116590528149696478917871493717531656495954106691048057217563518510023206371450122489929641855215106848829611375573252225568705627963114168553449875213719381400244159886012260502659638835679616866496723714245356810374447260387940685347562792139296153722917620540607905338237391780289062017834538821853824768250979659545693041068802092779017238197633843069136224603315726238815583184382651075314334733616249064902304001613268390336129840270604796553673724417002940653630279271235630218600020478591831503295420780198846145598069896126566620163150793455844944773247506022062218317845657925494429668194865286574177358776922523128401330021915543664165518727907957122452030143774684878365270816786727288945798316282937550861054715521617915132204675731361828502624708071638277551011126642908907146879386126589065578271418946406325137519716937711514832097849853598253906392040201588518178033770628406219135305513167800614227139114061056076025845055361462994120088868094597509357219837107200173259700209365560629367021996622982586036132726093865397869309816293711635141453711416560920509040675096369126107482755227423110502541681478249765488104437495992994378071187515945006868041657863325605537122431201092717678082942826310426581871922798706875486443221637982600700206788024562832514209210968497322015304385142691754054662019638374832144673284761892226408678607576645177039465145416772161425027892425281688538475979192769646114375590479812383712456184898613667565345934555100552524208649908402776791085604700044649908027671960981302750524292913597576657282958720080208905572861133443750753741366224249253500108393093334164086437066295390365354836713640351843841898668782225026471600534124376820539761796674601724807116045465008560767105755383795131686524160349771437361444215405780872980856726679104804677269502657903524858652519151277758900078472179530995629076513942859388541350440494942673769674165611736900914854407556114682973250539623180623134676828992584138985726881196711400879950161774358708094781207970426538334741060176812774249646742252460673408513882238959744863202275913307225017508042609361695310795936807024701365408090927517101130478498235983293067686973962112068234654631298366189981357137519356483599065591341040530243284376358288414581053968251011537455753328992275392440474936240650609269448321283811502471988192070000511078809623322472755301771583346821766991636414018829401617791937265640033599392709602794511855946207238828268670605582336408556699830649736601668772126904214686272765586192316997829819785080583954182865781341122383875097596989677918906531969972702590449506053975212246958031617879524519475110358862514057664334872505901914811993574851151849410687807463063733842799262470297702074770669434871928486815525668424741785631395556423595913971453966952222573405329160082268788768089862162620220065757643318088235624043896501557107002122915444125196912473984757630114843228415224350820998756593157511387645836121074218959441240778582139661803762498260297867670060341413199139902889683014995546834748232663444343876166730515199905682657671825439766920093205036216017245292348918288355638701572886285492187962597530315519066581219856298860444753524711496915688678338862671065302270851460475385880079955197680249537699140845253518177692728912810300729020010520192055265766953315344722017721238249727231227460820672665586979686026629012223241924761419034470284935844841247678834185368291063078788762128312754614256820053725155883258604581691019921701123518243926062254587661181257739308387262648749972929189272540600366828821861450756853252992313921483655726058925313507918160119933628496585514954912611077020466138181068940936723679848385443146673579785846158223904714747753090862277544844153538341358410468896329525411435117556086787522306960406105414425076427252619579019354822378750847899785012440582235604346622542666678297268964358989126866541443759728923191986849962218227050673239866610384026212421040280571916559900833859909170261585549324169182602501709325012394252546205178570735541827103074205131478032965589266849159660153496934071617367345716618401974186820452328006965721183869592053605812247297350663967940841421721559651307425155746218449199893466907590186373406987552213724204856342555694891796499202997142629830998458260508371497631272577187910384542262035910905732469176300650677146285571807430142236413416272751004392929469484088403062850110727014811189151129949396742102602482354608361226202901034614187184242233717502640469346667929536094654534474537766343262325261423827727750109732993894519184677927892508784864786930718886073973658530498859673889536672490443140355030562718685509228408512030345498068959941549232129953853468194192481420730866894674778921891570904596169553816287781339595854401349886691582028252151310952581445185594181902127831763970296406973181191205340194150661302890511555774764652520145428595351646444671192463876219212118069374002017925165283171748912794607731263964981629686759912502666664417914674603467604466741172094192859375347489851816951079349195136387466649947710440097023923544073962014260634050164133207254253552505941551266532443132101760012498744378757358772773386607091041018690439052096544240826047019944544846722696746376035338123107358592014485708967009189056415197881664019287564612801359996754840166183632340011464231235109824686575516484295778607536391321288563249624382274996981139281415634871794999473069008688346544365784057913830637399872978201893738891862715783122466787714059186824190645416370574698193018279535094824879438736993979119238330195214394040689135848128094552570367061712848875378603365200490437021273753362197186084805873381530792877775833798855620662023645785815028155543621823101786035275397571930934778137119526065543032651154346883781816991313702201572363892419530408531034365510795557590827332867107787679346456475063757105198600993129310263406667604619094160190997568244415247605422194457461248324639698328663204528357588856300259690750148072185871042830470904960255502355072347173094196426220423635611877254147897011393927313251448298040473447097368907266234254059620514960280714549529996487243814500286164079779349700173499679765658521710152654313135334281142912974265324407909301002317765695393716221765547492634522625204092883134091267738384659701199529345978104658909879248224765128308998450980467555899825748364060401862169847175515624030510284561949990708098658139179826201723626529398553548721869523166005251049269442337594310511635271999355859082421249350210229619945621379031221513016855177543552362415378478051398838753528354004956285540717552592684470320746571731389959948299940504874769328847859577274104423007533180546397697843256965943343835797905165506613806879026516996609590151135315111763479569975559330403153948994533041149281100374464489274365027611810632412984128994696375179827936282631335766433666027385900438237341883867762233451897041142569600719280594082381201523422261280856912631006112451716265704706415315334699744309145956147489712145655172815149850039199300987317962164146689867103301562316895967983717731173392370465890427922335870870126330368106255195816957541338944312789933595840720479931367534868592354565507639887737729280030337331257588911488306113563882924901323728381666128271027512906366594032519154680059151887754069973919515329112051679352981936238746989746644765287976692730115831283265664090873850566214410985545845998553332496362904473029868155684757665740203656454515840268974578971371588681114485160453655836825069045556373409481504830581891797292441036018877679791633034921967541300774524900051025337692938782130342809686770427678683596451119996920466835525269691374968990943159701977613819884592884523711860304045194831675471612820346412433060866765125024542332923505026407361639280918794856480863940495499159315235808294737862200627759834713154102187536731681621276784426951834440354335038837510740266232187443977274547260195701292195579114507070999546741426582875477678130986920215769659440928455906221809283830082917462315732055067934636920828618155701738756173589992474645666520906709705432392160681862111402306330753614672574599280768878121250185230596630999809482687601248176824064285749407298114060673561555871672657458394014966911025648805162078631545103712430838278228338009198021128385005709241441245411071684795563917334818175485563220584752676860315294841819016435312022471694974358019330796926509305148064456589329097739243944661411915680553744578950149798183861437306829059046894421397776421292968930007810838057187861115734527491045313925794431603005036879504718435086287676156377923093112010619233580674622109254671307432165023568198933640248320097284580213225674246446542227249453578491387476118849005762739079010837648009496067298491031552289752809298132970602737240520305946823425735560958747699682771181640361473524272838685847858489769214001876374502521923287677885198689752709952598945036045256780598720100130292809245076188115627330856044169490696217436580521652156576246614670997067376406332663946850898528850814191158340525921532815292041989536142826316205084068694658713207409765239745836278046928741835230211161880685821405312485557471792423344193896463894004809365307985813207058684797449954026734842702824467427588088547186115489526865486399725531871192947876545241090084819629453025123397311004943871198087438517209010309724015576748874372537293556423308107205133033951720983070628357983230976042796852343313604487273560194323351712614333715638995356442080924371218499865633385201032702793900146631874935731614914589027281834846609026679346191564035074518665437773741807471723096343323714727945283649089497889316044693335215046049551712217471738934576896575614092082158779144533128433191688845222422094417260801352820952619653199164133204442735821956208616146365812754005544483835678688179166690170289935642902459206949440264658647002220357822783555801599897777874875433717790949479724820409418448482374292336600378811177781062283850787782931692633713623152027015048904874278700486258518900761532137928965296853404021440273199431931619495819595979229553816247108850443498501540538113575033703069421929605271125021503787384765129818321758801898604101182373307493520213226763155012513890285714266286301497556010803875934518716880960188678162235231810993674410813800275835953960623778383955554148997102577276594700873963987943738662075106149906978481139826005060350812002875383477522879235204313436302990943367087760124914706264111448611228575204019050611139281774673085021183750543248494430370208597899165738770699945927687252527080124098416694475590698805563892555385256899311720298076099722403114503319258141495069416928681610012727933236979026005609137736966029140870283152602559351578723657052711687739627502331847756635896797260617178708025335759786541628757910258411142869726377591955163089697770025992042373728019282000461659851408155392765276386782948620841993923429249050318539312196595148723098294192987287156908449804883251497211196844235406947187254741611856953470155284411903464777403354082374703591929537828466833683844835144631623097941066104947577262926340983061771452502741387653646273491552700038696901694504533483091734994485629594864599542932922891534977693644233242522034888860757105372211277330152281792689064038937577933955681883623931038959577291380382995768759992994833061722149387057928557246974375489927825254281375156177545988656982849726276655913116328353600205768200556577120937444735013063820189475393878851823536926232243530490384834195797819216195344438175026963806595680595303944029929888515037256532464674864308405031080049801444592765097510475416229584400880465793395421908840420211113576838611070461067501108710295240984119418383461060244562076557175886919813764869038695630861478293816514281284370865875289294347046387812374933603487036713344923844737586586908963654373508919247636028579688521141294999138829566118691546369190798645964891198235708935122884009518822455729972450992194533026334651132474542358660299326677174025844818211313094166834954303434125016507794203298803659852249467064487542585761624602645616049848507027903812024516480597953316479901243375128837306965741945749869084000803585858669989117809781901165982788657367154629239664029803845896046312481985873810785376465126495233883594002566683724494594390307724148690248684260724362563104844565387170109465876092752858679203843832963100424307010123716084879153677331753607791956930387264565000783590684257088484884431462439801466179011671425430681331121444272618799974850056891051606498719462112885073692304282085397865337599802465149699907603519959256281000170936169121155182278010004750122764830392647756471459424731261926362259314388399105818894620200206308585275026343756813886348605256294476865207340118404682008228926102957050154938136016028407669564599282288392440125461934423150545147598223338897384361334322626057367370665867072114710365915149780541936737100203015327250890641170209674867928539318920069343913369524291929417504180652358394151825427183576181497284601362386520784561515166204433658072785189821692662578741136531675546781532142124267476438634469597132157815707132898963175159178258865799805802623328055016365388679343224647115335112086840481601119031142136508129919907853083828015055813590727859325557295641908267785787449725845956003211354425228333170477499234738839757596736146470125042115086062020911277824219072140865572011100710739356351220777491525468861023225512082283440632230600663265429652283220662660592471539823213737183716526221048675498588081373874654232682331846885517184028191576358383758694838754286847956762338869724382987641129367741285777359003528314208278391361647494485705149041525538686786245275690886152002287104638735456956123012580169970702856938756655074105908296690888683419738183265120366299470376480219648261809104439316314287289275182118422715828419785706253903158105143830741548874616282082874643443457648123476619672167655405863180772607415071205638421761280478875608997764766056264217283278243382754420951109530313156585371005780469254073955842667247659268520474793516494810609594745206125639977623051192959561198293355686548911258546778860252067983886031315558684781581209976934956405244365481892686240402331334239281609811955367097296045781800574104825158407243661272581699830003260314390466238640270204815173141833524297540058006622331726946135927998780760777537963821353549417531295959327855028550449513089597767930249492540473226378890992594308723978258585852041848323651646202844850704972508557954681220584666251100910759319478174053569744550430645310876663948844652301419856675726200779021174483987726467525457329652249076071971642090896400201669548413373590987937653348078997306694757549710925535782525575961663399207753238151707734109156415525975563302383269199022530892780888308163472761659605648213450783102614146404805009346630336378915820332285526567054917333943212659205203941060390264915634094887072624047575728135991265710505729085265389141619950569468975331516954301208373439049005641025154520713036435763996765266425827623223667165156623891115561947222035437199064595961395908638671087920372466542110215304174821766660974191245480577077201200863995658363736632972730651534989413263306287213217692943599899942220127387920896786104831357077181713858575482370787595625285609873717918709560644850785400859313238647597365023515973376474993772765300125140934857913554955356760762390927082294735062917144111997206791374369061032856263066839597678906279961872371179055249953315646013235213740746193823066461442827230662115745401722897884217281556418987734587605515180219419664604537231522242007306623857114469057622883805255242226781724948055965454224664016478743509272945806028730789319031474194341779628623985293482582005078868296388682700223772605578386116394856286925543287249579167035436416246844606239832677899378189412568845369668150086610925214800586294849085207498342677242864933315372654653359872368088488142604111904946107601811773760909415975467167467652123674691340042916036889202580698631405585768388750157654482917239905069650568564831075885708518537527660173257552090628193245448509049367048934708312237806115431360648671311300515473669644029345969837697697764706784385638710930405029984467778262671054013805287752888713122846142770640040719825436438677528673440803306679725803906997100457577843846861820744015856745837830323140018148936101325607590708203400282473903074687054548626502033933345395786124869042340864686369256422020590532715658565277543458883036757519783558347190278224176416037087646264456385234017557402958750358393867116060545940583153155103380860258911495207235153433401688306299292016417698915673084292393891123057621993355506364348522780069154946169161990853429277600585098208629830665987928717531939605629294983490077246699589063852143354476881706840322172121723834695679553721924321722476498013846960105386628153949873018049356345445257628160054358147110587199880461961508152840563640666816738231693746882589863032957532835346521340161292461638944763323848814591235563584735473998452999232161307846949689216269637829463106330577780919484097814579041985136635340766216642772288606346737686425952864674232580053761284202032684283668259080417450836651115669384044004155495751929636708110721945420304739601317128269211231765253662621216737776638059953684531178373486504002939111999804377319356972113390672643619394379151500284079555067164475778603660677654081476271583002155974395081817366120051102780098439293011738741028490159122709260035467914610904984721540594593220512525413038226112813709885641510385228308801083099914978393398138562296023381451524666063099666013834288318503521689933614755305017111623695973261754896730844133404297668167208598489649927812940289866106873988468028615347060356585610547699894133776784946348354870309769552844542471841263754097360806101001005852728822881049709281171015268752710538688069578824130803892768122595694289436316997259618855171582636516110672445611541317356372037261751470316006879010163211101358173470762996390224693001196567479987497443748037366371508739501315590379119928765844345135610622461430499281427851596820146541629294922557958261132491544599094353607272991623364710288871518732285940985098281375470275556486546021101849721593744155982104499422231277859787237651702439194690021283004738548037464111139614038289431118865033030754238612585694346981811255556295534721077013539189037171174237659273730249639446830710272511918656826975396000140389703434666813642820342101276981222363810229796733776631172878119016219973442936128635677005109216862589141893854502553168176234510627962857335201772946001746553637266852891697990242307711955692507125156684422883482419154063804109260622764816092559656847222257687532714368431710096249434650112264730754761165372017414329411843526948385919794531870537390116452503758300328644949032085659247155797358929648711645658014515004352002607144861539812561698397374613690013979871334820689720425734691753403557964661152708217193298117925022072015669731154429979520069343657258950694568624481529823674643147754006868611488803858339924732326044580012080691487941320789823563334248785196049767228835442546045236428982338968269723281348774496543752877458058093041446985085172950829162282506711702596836936107756453626263800090020958483227373774129929039552165737720341036877700938771030354544844708567817196664191201545259281582327875797330122490171175188098508752281887433793342774305149084580844438378596837027119783332149744350127896281352468240204667326271671196143470024951483187789755100481979049733158846833758596351351362626307949586426631827995219275248584834734987387429956323799441554348260264523287703253367305512731252548244810090778475067195737865123873803995453914462682733384642443634395132983985562770733120435889604698845362665318001554306467861668491612286364861462172466316965644822990586614292698139406411229592072170438460933580072589357495250281096491164815087425721881589202326229941583707367458837804383776785317394943964958940157965895932756712882419341971186262339807572631429978893325714104069886536465203057020493693111997792494792906802075043953830805500839229419949192897357328936143345436860060242001592358595886441803134589044280335372651332841908078434391948831989219151264081023741841620429492498488428560336546500218715491253521858274665243311245011456858570537034152931491218529742285970412033213980918618365121489024536060753835628854735213156822892063154289198080865027152026893330675797921789957119926000135704672505992075448051099311601351675619319444275930325462331875776555566495848419085644850920505042037803416115154967980599473098270512641777949218711873350003763313458442391054108500529858025860849825788781440192632027121338624665785364906245995501715415992004453057464705979469710426634792720109383170443217901428730132120315144074021550329488508282796891492088806953255321481031927505236353387184519138037193501087218693653077142911269556685872686388474036409424917930006843198162490423186396082227389422516375233952441025389078306051776862939697935409702563950832682250440278285549532970264266911218568796563405215445963581050116016490335075303404079670724752635530394241138290693948649362388621071315990840247124218914604843234190157054190188042623253543955802893833591355683979503197640425285713346710848134763945066474428657829374123512559970941389619996621861349076233072411358329835968619457482380391035719767554139952813341239066226082089920331938947740113706208884777524381824820583583134285200851795045261660059401968115637346767298029642324290947234012098260893546409431016039246571725070935813428962165656607057471078035472894567223213182653031480433260583016375499444785915539237760631202655228309139522516859792920334609587335045016583585899652774346092271874597075502646074429136085151357465709703412600162724518749770732893188138022304688632894810148414255934058607194027443834803664313141784851988272020228325546552273889257147044523030658251344465509673636894571210811496170447953720662503986858156211815369373594292776223336667888775581421572415919167038722528737540342229028181981544825932693373774452034035437018178400635626813948346594099718501679101091865093092191397777550572678982693683381863890263060785693067397130723386657053400644429271755570973218857071220378561889867937728930563229701748603377682400077871310522837113650782386451925535839608660796192727663391342742384655011537489590583650709906104190613226954050272303456893896241343156204410538196844145775381018307278053698831580616384660538864183581631494623201651738416866563884279919930134472943616266673958068308582133683446959181379006559617144324278797445531130982547261669266159827780631814311335125572415371319724532777367309002833468556207972818906183342885653540478724239055581212929160891319361079385403165466243016523701214732392104878833196883995509177182111115392669362944604289474624576775591140662754855808425953320545589718965407830537992354683395837208883280513233889550397271800074961738278659499550615650613287143331745993455101291120110300508002852934450291152551359189090704914124925417202232735297890416273139602211216838986880472316406282554048242084059432631268877471633092241407548467625043201280692902644985539425054389796622294422772469705696328988046233207516098300173565914290847011346372255988313357568884682623238754036830289647318138407687968376147772903815981751296399173671428754858150821759368995588592799807249128646464477219901072117276992012187038649546076441778622947017562595129914201492352122149492324244374459910358618547712131334126636644275176499818077743325348425326201533088837069654437141022190538767252696049586278720057057474135711678483490571742418404863991482937494942324532386157975098213506709781907249022038434038271128911381902967178601710524385867100932703196808725453475804119520760437942559406384811708447982215771638564346609578834766607055663365124521644757030855666674458576268291030340397540748834829766778894391239703365613117667946004891271258126851631417290618186945830764411381997510748284017662235320947186083924046564287648745898634144833306095601601793645013497237435777404401672039194396346615448664113041500835352305945561709747270193829338494717147659898333263978427429083510423648989191152968748489469129000029656009775483927822112865429166652731100315462447880248956340722852752517994270873468950500589851313685770310563063620546933733269761869090228996937875161901039317835206579872039117651012010026530552781281720316645658357825583991718572756621462616368868965787934473352198582520769850616157290945459705120783378002269961518739024452638857726888314696985525089370629048183403591299263962716877527682768335450319577693018789240629830989337768825961461386106602282352518195563376434203368789234469814289728080405476629415603828553866408763280843213150109223351538858514532270252050314037035544927848272512464771641911765378196499866676196362762118422628380279938751705630130105898014668319625956216894258454290422302111563544722781238301368748273231756387215061534802782391168451236697835842796396082911162831652961089379634498630713624629159592728920795819110772084755027888246417477238992647215033517409302056774357576678849321429496264105591370761574495696525252295022296309601019563520768833886235381130283247756629132489709104799813763010924054766664929950122110422110292468984983087990028702262586658365585357079376935955961172428513649592445989316979112079899494379721399894668632183486145464106032198493267802770654457154775065554573502359808748839376853731911486393325904552138904269529446921432918994698304940025581947001383776492858865460876171590448536128143387754049010918526348449393033455434925140068689397756662326310522844029019891943785454103292534462091553855420551739172657411083933740980305388291741600553965815879005168836053419964019312069101821519224301506117515936538352267103172038113116793287391212303579384919624468449511369148774184028657247163302995493176386529086996114483766363166018300640261573510884339617369247346990389555210137424554624943412197941561499301726922783420784837177407035528457493978435831466580071034738279012326530261991200444476457387530629879859798150696494862873432541900147512417401407957604710519494427324920707621874693568573271604608270688007493714958280787881036301300949627642313189941966774068951879217228049904264817227496321851792785536774221244532466530891003459065148525493227750764338023213730900847796333927703023332633600696398383728481429874454880276284065193221648272930895114574513968427761582055395510282667560725156934059747476663546058184936702004817031587164358033019506506355136754801800207251741677136132772088062883083733904222842501819777514020655764145367669304044542914349921650468181944333289906272988007722257913301530774952213390810926942835687436255717579697571593282769868894925627196975393552064591701459765525621027428849778494747821850226903559809966174659033363320981500157566016540351638809090244918744548735853102101977650551715566843142276823618759625133353203695976629593825353914975819745898215563511403784560188338351688483525251694843324007870422295816850653287945991225459555092199870848869427928488681481162522063900414342609827291218068090885900938963992708343989018108832107827642620731725414319985330092091494188515983974783621554956690147722192216412343213228743015822113147055753894116320205131153555321975167112269240026443011038878303396114891443251663795271011113554047768254335827925936553336630398045900483128285401085183785919293317784078088500590920667858490152425406389409625455338522083822656322986243214177577874365658656003034541290797963688940102003342117882081437751762400572566367297353856429805932369061615315342832388509405185163331746816859871754767960642773566129593980586601182567637014161571016863437267058175986389167119391665403270003599899587195944343463472151427791690203719166856510971084272997521961065781832288566008202981626612809371662578443991859875929023796107805442116222009042893226454073610847169539869174896029857480708199046759221145136571198283921433708213596650439310947919257927878968241952432728354764538667790452963185198264467075499042263549602006190970005921722459652084649540667664519307571335107571791334543908579252125450422698996913246411914839085413110717509936016182297537529234038818655377728869841589397291216420547796741320255086571817905692113324667463960901832631235455653463804160606808340127178547816062173604950328730193943750082918796869222583503695137489664201717211918712196660872459747056728002082212440427272018800518460444758546018214735592686407781700855009115951301274413927014583955433099301493357198563305490891743617248792542820759588242206264621395646395744237469529176886915370125934686024203353087381096224176243919571477296044120800264263317429806979791520936656839962683174670077024733521908529466332240704522149540916252960687728811096456021419099964607760303594529602211533056473120289525269899822611546671186225461146694097088864300510727965440684028493895949960927689942057705834604257711482017619918283100295839430225164198142570360554802338452498156031840212134159692299729498190183183222044385726642602862177521841246640156238837028779532702440505942348855494826069479089726907837062560202029130069376243679873764157775133561328432007313506938640003211583752250598760086243285765621406759865840177675571888633008479432116073110342765645110046889596334829283814832654407133709253331482454550768429842417569274835524071043263834722503230534136493630131047978159014823942980902604327238317847602675124984147962675772335759072364244495787826844732726238754777360539415500330795337595984269722410113161765197488377276634319729574524876100564185037925364813912048406139032702094995926079340317052107863900831375306339501454730588372900298257594107752090074608102894131760370433501569159314121947012745341781179291809669577330604760271127645943327138555926321564068156476591031518512290906168360641629977373040209476206181586221497479354882618387795809765398606308221761964602399082950506258372799174334125721842751450260493410727353485061497108375547406480904188118518850131514523580737140379876253836816325616411816733031928759938298139588593724728691017922262016560571040184687241592792452445647423315772655194509679713923672088185193239854712229319597426770896998339398710059998414869471372985006403223389153452475249258293827123694726990222402652480825202285498651918495332016102473260773855127337479616067585938365716513914782962658898382014288979455584165784749472262005468008756525373316300132143444158126612874589363275178986382431706888125688300192551729879986459800920905425796195321593791518668098369545393120864916941048106333124598689554231632346977634833544880716541691341808402164467150382332998219790297321468857944924968235362733443862020048756554686521663625097518622030014110824911631227253888791386083558462807938636216575407766819030665861690311757369832331848176460806964899043844467038988788150368003289169113232258082903558573148211104017575285391949015737822091644216828042441241262158828605950609411802709758659672802931190668588060553776397300258730338997739911379329162105827610001754817986426564661065863931058484925737176842583621584218489867507477145252446515124293468880975991697277351334214994190414006231815603404276356762399412254656043049421424195146038806562989818036505750554984165716171165712410748176063577011310396903872618077467280970057018790059485480517350427235649127278796341597164080476665598852510974819216255042678848211940490073383452565734913837717839729780159948132397613677374612344914253419292306125706008576264264044620116065395699129567933779353147316388975043712163483987366306613462872894484681512265425743931674668906419641056958318430171774904143084153137961667692879987735103516042405738652511431217304259343893293335393450482998205807615346545937862776029065147180272007027680701410961448450407718441508931898121048423295020524600807227763467705333382705586231727798120988115672299537048826890244198097245209694060246346134359491717863887298745958514292969811299251126553950043757972066108163764019440356674192766121840241629225472080129188682935951602887604586599793342650382632780120261357722174083527854708228050351212216974159805880168000304897529530510358212550820552396180819751972322480313452921533404528730025493490042305201594631175606870861109216240711851311056339115631295370042863172128208409072760529763342906369305493443965776482939599745845871449172742150626383023612809451049005259796954501194582030897514013750263594139060681666676597014617358119237383901134440424677128946030164102504303192212729933013195928887119708468337659299457410512907328191990058930162915155928650532442498367300369584200060011702486451101508085020545844460665812885264630269507788627967003751473319339032153512290120199222682961451472848908325452276287706053385420652943900105192400128892352006839172963322262466820452897298068119576503531290234377990949975458433010100064618711729044705489338075698634771431701051588774155928319220381296321444260379460130880225369728593908168300577348620246267763305807295424377500107242843580727575658738451172110153604360907115060338026225611241750143104565285708323404103716208985985508650800492477257958926414201628327204479002023824653644715030264612579537686803066089128732538978642643412393608510781858594722038416547631140290741093357740419959213308133927669708565710165090852829003583293156829804870598418893424173572678614526269198652567300731733758264410659150336198429749587832788392253266556456585745141845319813328590085896952270494107946738871047698027607136325748278964485101388723347114553186035001092458797735085503549272280549057143251679139378825741775246802302661064600302637590817053248330424719713867490813253477318309788583280940204530275783611303437828612853673862099751506698116976058158277024780097539073438706542445423858547813906056525652518121279337146442213483862407440493060445559563906481959910356390561877202731808673245387275671384841931259718382622510092411311538313190303021609206362550361676232043863964692083863612688395926491525132228405868756584701125399558017598153090528690609146262207302227357722330078795516817796052181975556358220228479659790075871358325607680263390257778592171906930118011342221367070195345015561621362946403133626171717510951008504470655073386393629912276760578941119622466172065884809608792536045140342556647692823422167187900721401174142155962973206668899304653420960176634516655809935300504299883254573931331659423473765904282933218479583505161756059974664675503675534497267634137936052203230731184224081766612922545552314253889232973569612344125300271991298090252881361119102767148256000963091176050124639060057971039310252123778146392572563524198616188135003398739918080132348257109342726783886268650192292737294284636534097410908134555158351906656761581168549913605896418813190753972435977849474766715524127329427862558988388246794107903988027575398143057732174986325427042696996912026772658593532090277980671165486263149688896900887116100175715508850243686513212131044566275556807975152838322919173143231611725325326152788624132689029891162664968477062756913278954428269162550398932803246856108559854292858588572720082258987607196808542619972955434067628874692672509944732553616006092791177796237750175933204876500927942136340108250857112701731081047086449697486037379479415608886733768536793039798828390764315075678317804457624964919551884016114671079754274093408967270087358302946833987192134172993003805423483973241471129443850709103699039103226792478125470807675076923212822687847373559452927485581315719070840163627340462652719525450012525146936522359329615761964270980245103293530891922394070449133252815752991609122834726875685424175829726106893261391277251698027974804719828416897516856401357190520131450784190096622014416743441482238287762281579045545422489858635442961551707730721832892537408401156100904422099708519885846536550651382592410973736345270973290387242464241661681902327002063110033987696979437137472276684394849177600807864552389660836362996195159916724089188330599249189076108510090018415692921546727440265149028663358049673766827594285706329173368542749446601989215850083899609887853828074176493107723049048630008108651060154061497263699623911684834533704589926612116141295400077809757652450353391460225700670281973706978738590737805819192139394952815091390864506506494374884872189977710022808606484482364366461891447477792250308794397683370128454125024455728933013527078498107802697100386462836391084052739331251997627927148243427284362233577623880976748980458915715204002812167464222248939279897763523066198523952291522414078482643582508311161323275770945193476324186630382982277737470044464328049616760432942435337316795447268427089958509740935067014804793633940788375109813209917795666606207329375176154891131516930623874457191089572953607110347731698305199482392618970210665034619506860598682007507144158662126864159206621123709917780327907664664711049505679309585290635381709330494867516058934068484568213843534624718118211904349776943234242356414140570706010392080404053144949056555394753203011999385831259523867126521741654951313197641098627679548275273114903508508684468135632617577937617633257736712597816642165942325078573833206073017410595161767731145117992708559799239958708079777494011839762276370024068008989834081483554840129621772338280342020435010210577766583995850139142537962017970427453491922131236088917928013986677949318456288348454877342524052182973401796902916485417842627767564182839602658485584844784689148551646440888561962115369501990341516960266832079665778469412921346883074062978792708679674546634361049267615607608821275660142048639660751014148849640575736622034351567564441082888079237009289950586417373566938990178060633578960135139782176319957045814032076359149937874738646080445372325886827373580752213443699742343757413582749657833512935100765944388846763798870467897133408981056692672685313656073661407386386281768078591364595537758422807400434290917658624550172228325247158286692177947272898124915911695617639685772788008246393555251136719852030453288384273055926837891269196714020558863157281772607167935600902760954166482410314933350670960557664763345953633691154570039488203320361642269294668468849473319073627427566198262335283860937992575938120426297767314947219202424126551838517437410590705716343765638491046777264965129750692385346533562042944358511478770952463706514180842349265294932846676421549852238473850979275728728950955319978447936928868756879305404024095838300724454546637324919201152289830663567353744277462703318104498709151855638101724633629710569331914807393982643702455403480095096750567258195617925761408533723797233516371961674642446341104829881164539867654644311886691964306702370891616644476117575081110796902722938841977474934545055440938497566440540066127871970101798027932066524685818285568146019341471531644046101148005588472366944230782536187726212765485000076626695924566555712150654273606020267842561694552086157628294220492892285981993232089342506205700024918005763243548371761489243389197959333216505157671120666808219144309937156039567536016185219519223479722747755906485692494780334825552501037082072213380829275277555063197490295645400166187635656977115681625997192717255253491537746167551875171389833134678376156788656410790629119058722590858437995912095452815985383317676398992696482672340559949953160028148653783834385635410255145767604652915765295797620279056355442857269055463960189447181462221399108479272322413758317685652440743257913951388666698095575755338958546060307593777751178966738369211425974271720398449597106484885074095146246359483131131767472529996067683782944029355558613028961891678066389581972815689023236035878858962206495256922328379528749949808934809207704927192985591071266384919252638095563773393449455236517537371881628658166118590145465123738391050452221878459843752262885603077893990986921385585766733204241304140663566529227041916917320500311892892210519056812083694935570991335719653381030744704178378540479219936454027456337551901621455579377444210234381226948289811775410354448194605150581466191327420610918442004191803799400080167712739291165562470228775609469338710302469302037868371376265711608341708800167619176770326855306168389988095990566638895908129434592361798752691259501459548871560526776469703344587790226702011376327549355834127337697642258396196283878423945478596315496034653179877844265943906856792573588883868929894296352685927509891118524686282518102174698735015187946548380843431565268235473022365833397587245513362510443339756474771463351403854243510680052684541322136281559740927718146751665895889291317831524464948212524311126043119783309982061968505885298742279109972243842844829006245702576594543749527532696398307446929448326661909212684524404148247368367864545332902273464573371027468231801431187282651360381803254256728900021463070912310013918079086769479575513699382634573736669756158522939361666606638830444979372887550073706569526052048579094333477158783989715543846124825788144984674876746261824496694565818295634154029277339082550823804736663304715228709109462909528509284782065768258895475025617170585128023738053691173409323079055673567127592560045269105963951513146562814299003784169257723535652434259323012283876322178235498149128442752787242679073697139272148005650652935004814632205615935738761687654853276496175158360489219185548970993922686570749295534998563219975442021865050940698140179451758734703422725426576121210125376599290080502244315198153737716462532577903738438827275958907527570907055076820642442415657520464233685197527002666910221812260817359605417158038945858287779396015411027895064157893392266421959022657387072862240086792173342063822628855599647919861239400243909949833540680293612788968553891081016322975492221947846515802238136431016970594663911674215662970916909932941384500068960180177450124961897346345895566310403622227177545244282794330784699625929896797014545092331756732678697851634296749722839919696791265016603497802635998805718920070691675525263569468463124722384595885577781706895681126824925794413773233172211484033179955424933612108633903456331748776287009646714932925291406609734816392342393401023631333040448789854743797719793565254877821672000162341984810177387415358833765090864450950783013928772896848290678965071200630238355009102781921367722316749168494422971588190218228044847130411776872638667116880625571819407678127503900271184306249345193096983772191129029876870983454457985370255088988845846145040117488884761100829564524456495633842171252391910619196126994617483518369153380168670555323703578906166977039302968510448034299369098504024814168081317211444090796815903141052621889751990768591813019909088533044742898674617196396399407496416974957684607051867361771438495511136268503710246199169488495627879689352065323093040954929772369366060241032178690875779816392560985517332019486145009274589351561778461735383285529049870672595963953267572262494982247624814512930238277331306829405120946897233856184246197529097645143003296767867408327242250854908870582807781423435543382071007700385461327135570336925380953807259921038137460751925441590616592509012449892916391847837192095068353043521876009078381273699139095532113433203893144626641762510048702662128132308496125334060012990780342168167986672566990459145883548762762292365092227264940083930501809243927142965298869188463332431120548465249323386151729521918345477710391550997414196293694642189126708971931594507187674005434125322693233616810445645020963010953360719694894579869691679340106613850592408867482035362071020666122626109963373777501707679330569805162590851201406292805810528795896810395889640678073568946582892922032612210920375429238881904843908414807538590219675530298928424907407894810685945138574851459732038758601925996953455198723856071013275460544103590587578493129140045037538960466439656433394530900919725105418326664914055596154655744049461627738423043481200896962409906654642760036589413607315260695513695689195785797248811776419361606760894031748533649739714448659774588877814236856477864004812485166611522333808859636980300935596510747563330573299462454055373283581168758503308412432311580888101171684647224464966885473898936957195640161247400027118620694564750400691469736269981446004347016161038331139654896113990729744917340689668763327440033217219272434588833453277558474687873549648939873688871351118995527098598177026105860119043468514194277787132069710888900089095702160811875661853931177682790251632334583900194907264197640683382205576867791011530180419592548288791621387863370862315395281769539086485328263724508872377294032310930942035482427395720869241851771780533520378779601209604506029155682083482226208709580100882900330942984016076946671741066262962403882253039564382717496687478415360091911047017534855818456786249216455462940366801058463298548615976178768528094027415584186392579276766353055249837223138023797060108807884633518539098436654783767635010775589926863182249076475463230553171004438244325085610525825048210253434201957590343349889636059306889671171989188110173623724482676355620370684368681313678533116777392035846437595850767632545188063983203385070519157357695340900191373780863295719705841080019164688115122006989102983492509070294717137034190040377352004163701363063320585732478052800717368141525779575360023234608094168728467087540716011971853101430836302540734139564320843473321907811784186043223792011662230322807715747974971626551019589995029268494975974119358179602775615078977194435250117534675935492842201737444834734584342083486372867210137193175661983106513866272739718700048845742461898173440611265782389907780023368707643517718029100173892329455381553588627462493323346758946195231961347345076199329689878512016509673006935187866606821440162833695224914602753700524154321424913618160380129432544525180695819982712349424089214087137334950844872631000953501239039453333004756181015587752746053191694277678459426485962844525062346480532485614222641122311648184463551659998030516602327263140861758369489636005046919432590011326721931849850967177156281351148818943835541915159101261143445687525546860448978015978752708208521493081640985847407312719838037302754141032946591552888452246029158921771057030729098937356769850651947350746251199236841355031454382711639352948578118440738293910645275163230061105663438444426255160964313524872381118676485000615544711729985459896961346578655249676366028953179916555108553918110583516048789867212577692553249348297419169428570774075856225230547789591604538959470537404821132369647832038842453006777537650858573941304894150300280227919105891046515395290312723542651560522103452052989641518919877333116013737794379287769108278512771275620887827466091603439896265269759560466997321354964385295049091488138887701287259447653961429573510846808460353241200674313389326643134209473568626855837716668790613350303211070768463535793654284743835806170619470091653879105810591756490307546480036010540002836406805820176643481586018987094728212668879388078813211105471415629877495921893586772964185140466821725142921254036000610880761903339985129014599044389419219742984928572249256998940435518746749895847896970886645947714283802712021443587586710405426607195663683106768442360889810962865626468299191345379780588188750278200661994014925764342582205837185908334158608936147129509879484655580471527450148375171051314833363368962639958355419959109223350488386295423885916538159336272979830114943339376450495612651550166895938864804429244714918683797744626338812516818322703118640576445317172679089779659785353744772004508780540719497317292353837452928818189702370037702366909970890935352768472588702834301498818262942015011169172810091773534980535110931716408707502531811399621795864051323404791748994021285609806725407075861887353322218705851906069024956695413385964444890468165119951976302163493363440974090813125590537737205018035642198293992748968065103345103918548799469750898998203339942364756314971094268394036573771164290845941984122323556948314669280525124960589104934195411752294447380259955718192070919680166198438219327824317473644495216414536221510352647694351138731498616557563005173806761832523767603739250341840068460959480798805767989368772429215537047999827193526876768287854362269112418880137619035298400553609536125102866195425959764480686235309933366365287271045616498790949396845316909601597541900250067060159534335426165739600396531532912742057627079912753119482710816464761365238286063971391918563877316945931329174182634260966129053733138425474650958444932053998341010421777662340697354728026181736330949434159580469024989758149968805804488450626497876234353809869272252834179610655218167890173796013702159907399280266908978343741561062443989275867150868541275038797977806871322795036137340078935094220532550468017839512914268460140315933985506656025968242782027514006220099741624438796707031860721103296587854015702128111659003942654664585010982725508857816033557910316403013668707957100927073265524181940705625351033030952255830927446940100861865207582513246641114810045402922672247074291572845637153996134253846414189671623289419037525083770259898602247353136063366147554550529330365172577030666910192622870504477737889406546630069719873327075509388223644211466527396394685461254515196811010157610088355776686086917801323726498381557381694459284546333715548639552510912388264043489982733945544544229077776372982468723021848276760361897826615890585871164342911826911642867528315910178002718418320608138456930077669197670978577827146224250143430251614045063133782568423151593107375338428379419438169030805034816764423130588773688488287801522696244398689713381014119940874082409440803804653484307986638379872885748045965045275821924602886460660964765033794181447791664745586521425997691257425042037660901860335617306793408166653363496659778067277366532104405157737976905155811282209309929783716013146754671422894256961579161778097184047525295841892205685729741041287493986140011192090991118528361379842204852851248894466617556020849747356253602994895223410170865145776627764430561582734925111830427745564802550714286273222584111873693512410953934382588252816595583650554069295516872965221785419997351303411489422731200924876262962475131914304203539765702223708236237603941313688301863042761122570088699916889250971179416447865773640948787777216904611434438293019849650420744415315783142425250577796468861801671587219201195845267293709130779373084637913358190004775010441265215585628936645171539109386865748321893836272738503389746742545135344642309978014762336608008435863462717369013563524958312910059112132691177885890000575026859846980125631831911907208110291058820783255260083238200449778861558892188529719476237687891433689883296408789362868725676358950115633806666811172197336707041086880054200913345338678569325663332087607908483374311857860632754653854800745672088134837028573900945584415520328093215760262316549451876327411862647366806511171156203643902895096976012577957106189626269114734281478268034598999429353565991423790772139279817117128033522217888143136068714661614472369560869933524887981333870273936564618371218629510257935634589639125581695119118221229164750032025061343232161726074007481799382234828348341775275946632061687752601733765640245598119768744018332659168306237546530287651034546794051557876291297354654703720328638140004666904853152566706661039281455726155463686524450264426590881373836645833835825418338382581503076585206821616390269513621254015875487887098113908925955880485999095381239837237476461372106939822397481586531899235574820498698708044694713087306372814281109557876510557359166533407811713809872340647378256808500308709964287466202992328729846570753806841715113886697364201169435200455499039670794525821499723403260156831748224132839001762309057885531411655910248916742846177947391122291647762987695494761909860195776439789579018667568378332068170669195876941827414895204063395640659996213162601084437755117672447163365897785331716137408453031970580111133012898369598618857183086706776243481266005944605103367669609712980362794570993858798366256871727129365214705477663408427735631502798769579163149750311622408483912486183662275739782464364889842437517479785081941424405556425304716510074016599437266616126842168869654587254878033700053139113378150926747957494127762704445833432765543488518638131812013196816506253475121965162785937304660716759736052474209163519221400231067986883667397797937817566228737615395768250108159510972240014801757654368770347789236315188471898442848089306652050884799492331684470446595298156128238757230980579396508224471288739970957354987952556100473861997358733408393646116378864022903580961401734363978077455176074637141763621356204577764742390268526679621745505724252272211003901689653535729264568959083536085486758062231681159573680733682192795456560251319068087751366453742697125068930970171916478009193595863620941031544353958864979431468826490681185491160632656385342642603024846400773369373229463315876584034776498132162617248841658104299686659880978368810320233105389402371309965665341425438951549783320122501613622109098041779364837045024992270099016756910970404550690056031929355798712195972314447677341608636579114923467527888391657106777048700143129662802123126568787297572178609106252149798456074881644667534645363960100038074966244633913541559636195338789450335205342822755983623859103824041820487211975331799881544107010056493380025677116702943961249755675363055197639521089750599917580437751102099495333874783549746875085618886104930581960886561387816789960761141015685225281798829109678419584187231857469532541592368718013620986860900005731162062332396322152819419290331572844170986889017685215323055584078044346533199197948504396647305264921464360893216783225774537750753375636955903746161368538197845750268186405811348101827695042474487358371515906001746134910220022744807331217008861282938830690434526520600963477820667083044900606526242334582309397916610216321068296484629570232620150862530856609261775382145777010695728016267445020360965339203958133128404748981941090643093952201729209338601795058111582370642316601078647989180658536957124816711166985298330819484703274951163995213822244649368079518199872410380984597350977109177592302061649578555920650210520427331316178935421168764387372292471783180747730253747916943434068185106140431435478119814751661668862695544855160044497936046260832722435434529981389851947316594222574878419350981313306579127895382994959222110828655342814770066485517782108548607662795315482355969486532328800707049742320881011671307771334588806597632306656875007740673853414343462303932321608263531840250516862382198851317790004854195331640813188550462086370372182881527305771251024288291277395900490328800751871819323298420286450946943086443507808847567710397285350426483328811854628314235583857973344312749971491406691155013781609343093121006984709315667670446078506315808713375130399741980364881686424645595725874343997970198720379720598081812166425144668740852248680435314955983397481984114582272862737982136439952054599275518167273460664945264869695519752504106085862652426041177395081707880734977803083279393256841912433348915545757563582411677199259878299045727656498545407637002053731896001999314204820937289348363980371813633962791633898384213421802810255196310776323795995837628392529841129638377989551153098477653293720495149993400990530434680797482888270987263384692649346852489935530419744328930646927745402194430113447375317383077076173155539727693315632179324247946140087223327373757415735635345216304898217905818332213632365148700974702771993073053533858814781643498971621193337949895990810502612635487156353485055667890352767754146645726986060706283484031209792299542019888406878597199955022798451254908706800447650092613074443828741803235131005057422629289482681464925579627275104043019955106173392847872378058611600377169073792658327234370113853739851654840004076592869293939891674768292575922960097695813254840458171168396565387678735041728969674301323412460590576963424025490718199183483672130963456527742582790303679611524984057429029716974802191013303486202764671182458411118235059996651311026228984493691429309814078763339401940969165364727020000282859569839399371956634627010335172798063225731698267841006571567119549778887552465619310925946918031186414028203526004024134332296660260433959925134585009639396312852034560377252086934886033871937559676613721632065478764143882758832120208410168311095865640878638558421027729901666429439296179647153454965492532778606791308273569407013418160689175456091220891682840716009124867760713095949659786659775939051413268006727797006349404139911530626828202614298117864823815963233022418103436114593634022084717906860149580824172165182150434015828248862500910585760620939864182400910833939919603339430365050509074292248720918394293313848996237639909487306468838395610241433420035804500412782009805334529169602717293974490658284500531992477333265595645219992273729699879136517743556369424497757461015780888257510175884618120069688609283237416315841068619394600836852817370755650885112556714448899365161632157321267959051070948599266229552552642564605060259144962169714400604906841315671083925213724069546635815512223557062339874695214612116673056894218835382646479184513119152000403785843683288359464944145845543878379077347082659913204327589874052549157831545734131969080743954492003556410548319755320442627509312100378827449106165831435318338036325254004918211524005097357399078587003213108775687449350115040895655422592768178365745312682936360045148976128167725325141833308842119332695301495735880844694564419749835436180419092311588348583945718050043788835393880094865621164174992458492054993229342123962096065849632698906785606650357084347187958222940643789334767293223673238067601890505065875546816440565889593336139290424256665444374661083587429224769268445831826485771302149607614798606413968221613600505940885475156228268845635747148141773252822479417075840754762014360117464389419164916843274411795884336330163850396874198270500425089283701360612184423413933620801878625867055088583962045619816273102983559667422278421945791646402487533416732148980684519073623322565408339358004714755446019069121186595537637000015812391813111014177082036606626158666243348975050797094250602895039374905496679041404357910370834638788521549073181693393597122854968894607834603270299330251981020287098758355399483565377858004632456716560684123997793069073646054526070679103892414962136265415229542809033914554374481850043366074682560764118713750065025895983975575549899699632153227067922338313579109748553491068426353961765072903488644957123489897361343445596795995334442865871231390682093001567959659738829521956180130640930544107869165851004715454310366238546589427260098237587253172608584161397848071530120825733404907512661427433345131817750866605043467940681040543734700952174034067558037830365576800673168143028830564961577457257390383197681204419666078587297548211426668980826807244777865828110757771398726231436479899399845832000864301294759340427713083782867271955608159860975811533967815465397664672714399145387559251320035245565298758379906206317762490281636601222934870741603616873159642075663382607537209169124176667293935503713315786561796337495217164237058230411199441800188602557861645528057355053175411486039709555691753783770920633512861503927711927660803357950909376236190876947932498591695671616969628735841859255572458569772298522169529047407653829412114030280238093953609614063421231890369024262010453567807370389338103140392175974689811192211190796184192040772012540388166834365145916420558008127343186219808796063362155542124809618121005683377128319695364292833053939326114338654324333286701222702314266998587107566762485749294630223976934853608645490576872834371525331399595519587020084795835358662222532448836429207636148887289666604666750744694715594720400927093168288506655746681367863209723444369933665561866623092446487922181500986285847915041289399041125450575493267681566933143812462777790920298096156294639983925220664660615308013154633115334129063400154495075709199522715870020910051630720651345305220886211625740774996549526658089286589987480800244576124111261120132942553527322653358078545653567831503688666338442407186962172048892693747470181862815169896864055490558791530375771048945557665020986134110323568181185956516542814445881184535333016142603747175277238217770604302817256691368674856805628141708306954242086564089918246472894799059378774263179379737134153018830924323553864473124364834881081556475467686566923501762848628564813730785298934317745381431547270075520708677542764888927732462297528675366505884465879752409986250791862710487869740914103761345450232430610456656953876506485180776378375876551156044161676459075382526656769623046616575785454699872356508048069513569796888845625450490707410006472363188181151653428337744076421103915810871319079508947151095468068475246972673563201563942897851852266422011234924973369629790704406335464740122905341079675928345844521153755806579444816125794865115649843763422857795084827150185131618938401744290699163950775918331720310107650177273397978804525560280073904466318700560138859557571359550689142873671126518019447355369698730698599157683249281434413895830272981648608761432673333873360147784100182907543271575058867508189688939330866270373945683788819253584682221252946257545000142745444467447619466473685658830523489449405056001156558395852545152171410839459063955349542289039229507800704052089677040709289613052490654682359301157209298161511774078553168648125796892251239676776206201750518562618525947652822533762975264382735568753901936842226678443587275535789051121921779271482712846079644359322242251142788479836861004246339105531664592745475006424808516848535376994000100972406171115148540266995059246670142968381872919685347835418864286023947941117269669559367248638357588898767500755212806747987443286747563839497944274731117761508892845677321679763365061105258956749845783021031355410312387649230912912333689250172391923523832813544882826215066587218220087178659684881479447379254087898635941627292537404015335053021834511531782936478442389174914963690439832475634676694056920849517251247232615341369507504020231830384298745847117399073320955866151328037517975530129382951364008129310407005709577274666123200658016159155326079013074255961049498264885779091027837553215435478279482510893809920701418235725183316410448173751331301009201566441723181584272888622690898750433845728721867758566762331457443839178417997665769644678521614248681458972121097168170063122222336285885439477314276078964530083719038480211333583975364126163434321049654760707449507002948957626299877968831680318090060898839891096580380627902546751719132658650685701647605180143732333686153145986069444125562315718707558409829357426601070391477529185786668905349985881647957429712444438755517194542284118906493075522623379424879726477801114492239029525067092258663646650828269895310972179801848789420132548158921148679297718362423701728077144126636753513660148874034344972643402293492330026200510433492617790623990411816498080535528219595478573327714585448586378553709042158046478082478717058017140039656759546870387939740847687199967951157126764195193817789804391549914382239623460815637517736304132993639867783851490861269988028724167899104856719627480752242276755316886483921979028444741846068725514776544104739521436737620338014513874909859311442680629720978894701373129326784510524249091382941099391425438540286504180221930737035504337886608610158882041092669535860683138715971194384338572491046293163023320016006937168971507002504692713704568519160768522693093923963645637412355484880586924328879888728573771484541794336981247366139490935607381802202350677491709088350988441154812214126624486834752476214171411661225221196471025789057204381558262697954140733017773058268452088409127681678846125793679212683484926806071993754422657120210004899217321598414960990691640756927761487439713239119356958803153205125733351160406655957993535327195685640690201458126929682151930458760031425344178206450865268991384292869720878341116830081760126613135119993004388609191472201123254733133525891496906270586349462710072029683481256180021968999957651451552334149106417260001229714738652748294909636395748055234499442826394904334283086880666418899388439577340658176756963044774747928129738589555164773528382868910396250291993517389863811756294618247298438999524935162149311402625955272472446529509356035926095656230030048144482911093783068074106046289359225604354864208725287453739315703869697727093106147423868472177772359012909047855724598237132322891169455114563532237235607426559905960805131719794621666625515759483978536452793785890136186755367479464755720592988149772872817004926398594332012434579326703100764577157797543335629245518455005252105404258038674984099045363043068860627583265673553216308168702343138738143419887397331498352495491478382891007817687645693925637062429187721105543714113291183753077489148803097419410555542671322869866935526230786692952546527395791825060059108866005155611352033623779653145406445386589557190241131947498043194223096590514687753722089085254089630410444150527098945106633632943591129470117702021296689633353889304277786486877004060420701611233769500999305572228074312750203786380404900285847470889469830332364832836939570523110249836248054249700068433602041343600973058103593473237322956961794409949532889438234424001169426238885553863704878477558859600591479157751192452013254821959529786483089006022971890345447797798161384813625728688476811338274103879037065623379021664986440327378710848415249071331662895293668085352947688307758946175935599471837475994220753958814705864333231149567504404233835008109547103780291428961198175175092006061049549892050072167303316891927300381542978014172384249170000693424207347714982459328469702520620353728954461819174438768538003264212727642583419830975828738559319949846644866463538263369131078369329838078489321056393751651131602784346096249502854717981256198124238546565382701328317461741925786172107768068020517440947848988894020739810554639053116688244239246504686717669685005045114895053586833711752994143506564108900246378222486927919967422019052686842465639800694987884803331724673966132994637263936662785110716127909230572550914196338169098955414206724185615647958367805612969532060253348673816770820005815048206386492644578980975806896785301007198899143024908405802557535272156516436206166688770039162501517448361208821388035423110516266476843490459637769730441391809891739743020455646202724977133757178129415499648785337166362540505845799743204486194492431922790184024826419981263488568492208244905851242850668000681940709384358233741439531755194705703057160228425091751254524981737721219010249921046723452712612814172562890446419634744926920811853797362914379906239262227057001162266267339175586632591117880946000858082566524203905402333636522786853419302071851618007762197442437518263394604238320046228312060469788275467228323670476712473380386605227462157494964773053848062283185663839277137772887101149127890424008169903224194845763789842184695347648887967111634021086970440410866841868182942377881487082362118990401548896013711095667579014366831180874031657352036596591821570901247894569333396815133367707229441920527282583668168045574881521574308495928097838194575853732492025467354390725152060893565992882192633109760160858263402406181823688657803812142763540358784269887539638285792266851669763431880447818096216186510509438875641314934478465734719703069523678815023886573453655885168575117727190282646008670934325640025834186123457041601851096440414841050420418857859112426371105681815974095035462112530661698199516151340582123559681510689202673828349114256595232303505655114673007082719592152845066950275274308623428843152791709818015846466592042099401782330456232846709371134917201962886899431907365696213204495008896387923914401646902274988504433364093994925341928861430119023851536276040087022293377430023552431488447641390503304905602000027526047634045854171925166721803033110163290406877782597012038567093158438773322035517034000348175884926322769002770000394607732932411287650312125045383919416855173580600536372795015560554981622331274548663866998882365825458688250618217831033485809279066179325996322120748785990248715414135959362992878196191245143511507880805115059987076590467558390635354888823280164300386944927309050667798990064752624756245273664956432117279419959636581913077459933898139942740705841444876130714541297102591514654042836041497019196943567655164485416964357592403369826197494233810258173170796380589988447852407729106788617584024428521615436795712269616005580389676384976656489190778755175960590369310817487515949672293276950837666798534345868344226520295327522926001780390880426001146617719082973238781895338267368835702172772222682352926998916139036194378052935481456180455313701868598638909660379028787965509851880711219598243462296322818591070610641864436441438504046851730573544756275388286756391988529905826023647267520741283485317035054114864109347398691255458815432132328245132317198090636091892562993484323085387807131497927406101342859679471372973355435308912520543463093486914649795516276174144925226323993940195311264163852827560548645081778592778983177382781436544113182233810481071781551539851064916253148979118116843976928462476618156560609965711335079708654830766376537179442402978374420706616576462221154738568641104031817164523589849372551638966340375029136152656129682655137636154901314227619274795454082307891929119532116585502193724196100523173099327629689131268511812441107462997253356340819065302018232053846965210434840890277482034278311973210287123821337184517625040891368189879162323858639494369608041362761880042432649211860609951211119236351609554329078980236352324305203065043351538458165885799354710385145973426111998948529793567450065335263143338699705026963036654705972572594862277894299899030921375729128105953252330906946171275111480075432751705131963728148779715578082287731781588771297398199006997625540174001215332459362410776165021800823773368961692555141655713437364820609888875888160371864665518630802859562451040823646214605641467903479662123861500613040682285693855627888227966699233377382700482586080447781269994079127347081657271253144215431255017894622901530900573722339772665913610754735494254518530169885897891099324228275063840576683467707582731667709796589981603724974828613181769560533086079724398043123779987889687367401132336545912229572135261255969657893357210843754153009511144774504480714573052943170988791171100582815231462574422103175422232771616026690233716172347120058626288795234119956819465824245739431966726232305238604025819721584833449114199705418190659145555533137884246520950733558597411803976270896871124206754433689048317795189027225214624298563117669445961298436539806283808025833934026018383160872359241346936122067752898432146463412844375828512052807383268861050907890298733668473426776101387060785103196291499208885856061980861266568200725114496849056363864792520512797814058829745123361649700270564296533588213113976995778826418411232059059051416743701906406085825645736678835865227927967971285315181611486980209265500321200963099092521482778549250483651800392547608648423092418389040342697400210623304097001832700637136839575558106477456992286911023580227911156985044334572430295274592082345720581218734536306768031151839647207204363179621678165559133285605017504712577116004387228097009943119004555237459563720297052904425789289316877300362217602556641193803987650964019649467208047644834642865326922317105393508820234348987942239749120563745815492283850342826142507872034827162741931253836149251083590284391214467528139443666079615300953055973521552677856292519468335663287058735224286092695694504440258227985984385989554215780821466335584876232584723740218562084492554627788784517533624742413115324265688153483781405363986407605430874145428029194633290480483121790534169339770060470115159321396346812716038051439200916032113616857080439299348807064697396832451369205368061877887866461456838396730791718505355060818063945276470634158129096314842148696631949692227479425369745442581509464558009287788692985315363313957675568759015971722151951950646160026187872587806357255029113202074643582045155245959053407062758291627792749350120093823233353351273751468638486825723653304771561506354471793110305651713686665554474827772812117828850232768939595349754026627122647877961771823148542589803054404070242520694619809500430055969126016277973070649739178823785574057107923703863422317411825335705401130865965290898367859001749510094042746809654352234618914622248652263974463564232488971701807370408895888576581886251876723949837485381400724325526507170022113510640932087522661700977752674438849343147866267616095499495025605022828135684132864027347617351736842650248625102753363483234681187819939237507871876213613495612078621351051446046564222676409336125192905588875277712183504369270048601402936224759038790009437056577095621108533531842893525158704045575743908764256351152750640767237054796542175389946717724515731283508469861930137862468146487315948777446309981236355486827643097191208725408169610088852169972838321352525682304307488739559736752990358128021540088759235478724437862981155202369940752633626063485184287580878143206131283651624862512566193858624475851880055171086100949105396818724605939466965299585691534099430842608189605764272635344333000684126953638665983749528784274677984828227435258297909245983446545255263453252204127601798846230820830360944285787610885868345270336183319201787704002485731969397868955129372298599280889972783899619906897014789862117679157420975284071278796982871307834590535884012360941247201021399293755952826553408698572429394593032089900455674034288724257997062999218218353251366906465531373616843137320066065346745672974458601516966296713694724352702001586618591791210524158851848449730979883491217199051108063615637875951120711148462828299417256611572034136290410403161326954829890867243466754379654311535824132856152791157332578471530282840303420592730926710023776998279650109554887930853908279796237938902402074580239399436847483414741053703920284855371343102770352026941034759306310850787730079997017592556617059164114710296501583065804491929803270574364579491318494151146242148232401400395105284233555391873069348387573225768418388371781781819412745579241961520530897998495661433667110850020286211033365450052858538766255131782510369259926333540462640518486670729845454642352844769890058113405220587658310524579345873970891437087821618385501379936156903798655465507081567597437270904398487791729193926940690858734647083038623694315609636272356475585441371399657267099047989031174857461240448873219830741412365716887581388801399871262237788734891265753246085294784323726224630747464165680365469851849329287364288032043982706103075748297714727943333691823428126011275282857503743456911012826318388200102870075701309605231330218366511866966555423145039233841845223643425346996899429262564979328937243509931632501806879273887258742547121419976660917382985665549652753740018102829650171889841009521100392556389163280661585592036268695426125023359438009254114273675626678322402086276111729232339218894545389703325849922869546278026724712048957444666527818662155183059137782820650526756800620540836034613255847041140631357870403488701928553208022567505447185284113774811062790115551192064909411468253699329963186349866154964729626673568150404310708111935913764933209307282075101858343277928667355934318159297491476627672752580018970944013352083954424482374227835997331375360473765181542848767809182515229143990546156408049034850916730406960463825321705216431597296059490198978234358937981524237402620046141266377142234672225316963342138519983564864885846235492529801842963633944201990218582127922068632306304481050528104025700089514352176642233291799116429454823371026433341103615576875096016027371620336671541721885204220860733522345992112561295128258499248472465787308785157158252561171689680447235771637554195752558717886677346607885246854305876513999898119094833447570106662435867118819042681509342152123570178767348076164460783580759246211908089463066915347400779133469233709023569027609595611244445903642695930055472038645391076162383315561174214078643435042885939326648751093875452202255658631252526604279081060215885050952021540339809719738407286179844929369057636855730388992764028681766702861247370318829723588476584530472347115778978356836130564674639815398215048221004668988221048559957518754221145341738967966444478752087496034909316355460471982937915320142026188557671601842226753541684636045784015301584962877165259752495329465037531576818270457279700981533376899414306748260984320333775658758364268932995199697514623378062672066178363687544237919621804299213605515645479640012454076006138117954738552042454696471904023979395817672054968987328329006846148310144660027712259373084098778247081689929580931668042518557198375162751779755257121910961885442900457836452976616173099329789052515053530632614744394396630644147675826598391564876237680876527159668805057717082043913563735202212390685116205395035663088001316896971569678326383391628843278345306572809955071015882755246236857236688613685686530591270072302687718708731924306815487667230047843424423582764942064728670045674215163729925750618486407012716106007499217311572623273622645503305785371542865676031731712847172934999422817948124892599954928890010730588259502467589858415471204899705286388269547535712939666934613258237806725757848339661720643935982270419992220408142585597011729724596041844882588274424277212282504360622461859453372911774694406445673767164096333415094325280507338237733385270455029063677475149822902901112005172480966010184209953312029376349363777183326095098721239842955328402494720372109286380407476212011018459676742106545715064268952049180039392263644872289134075305936062024446074776976333468332006734855029771242106263285001746091627771065295380789060515560228615940140896723727108647490027772382761687675204900659746623462296054791808073316415198958853320427326886682750039762715889598338981154302894255981022431883854538611310292242563868691301672990466632610482261192693259934102639739822592627255314976575795532909828385569180847332507653045820348477537649046545562912079718124211448966245908534750812302517649045853750745907480079949999023192779430773281507351688221611068452880375416262117563277824106674225412109929580805540496383261475482291986945294119613145526541202143407608553601992587250114663797358469952350487863517553957599161550028305065124961722756476528009267964067206755904982923104797168348016265451945072441823806985195678359564035102460574706718225546425365895428185769689170209216911556990821649173686201641156253891324157105741507286535198885372878758507369469367919497018048570410698399344632892134394722487328616596507896892323273408938865166436373374114218043717752040656612533413592907849435319690050882061417566507996919630120135603967533824310377623229366722933965180384773873646024219674013712548428281668893629915603705901012931443996873349423805376908593053309279228063849469158375345328623846731018976605198362055904430755752521330130295031219114275914380109680467620830115420256798156278999857288407439125363888611724411082582468366336706736206576263602111574458081088438790310645151211899774126464851386940638726793123468004077174816918810250041128325771530139520005031948872680320547319253935676176391288402713165826042020319563317336783653917362953240163103692947631321283402457701380053366958651483989215959611303245397640746668765480035359177071044635329630921381875399842133691837071422268516726061741558656758269320250488037577219089198846315765864758659591470234692643372774193369651611116883515205948782171821281836125071391307217572955072157593565310783544504017594087706833688340283674948500576986235378652057342061656607156981295997188677558821638539032816495987846402670167583384075174073387936332299103417817746694937065983672607719375518525955082431224448213060825501309986678696428182883316995726462643439501359207488587790486301149380959919089145427502746996889372801234430472091846649278951863044410424613252091640185790797037654488386560012768512288134374180232335015745234259423503137746614570054162473140740555639225145956278248010957153489933342439064756422876968139537911689203542128579023421501114740421286552433450048328590695488748957890299219333623841864218289417962698307264924727847760190156656207698655513990838725707481133251308811663235944824579617821821087946495169828496326769217311196935374856268264690055839140445437051724069088292355922654762172241894601494886331314170556427957833716500672519943236809690601951197900264036293434937457232827136812701127555895289221715447676786915732242020473312062300591027223102292481744239172594089237724476840971458734115599678318628028721675692611575834317222598781541952676201996235661168452931934562899048855009977296988384163908892099811552566774305060682304857081634381785990377099096410232588816756913635839976531018639953270754225400695439260417159747695476982472294867193048697324514384825877429662621961536722191215826096208794436107365331380349205810289578188848182812080708137411975034289117948646035446157442523529071434478163037843146202726868142438418325160619161097750898504242022648023379048000857690891420814556820959863664106851287822953972306463102697927217235498323711267624002582852492451963653420231407477768415458657778768862979042158856815502119143475077785774865561106550818075285026291374409258823094358519515999839986657194515670333761987582712459613106417786940607259728412960567036935082874031563023423071575429144560140511268005275796903038723416374303173853683980729642392128126182455215581644414656585645666531383119183645804183920753991789536716688757611705651619386536243568220260309517694496199304764872809457768255055143814219610781948724536733173208122418504243606610414819239059605168030204644365130809944150674350572304901328307096597965069383978648748121584591815487161789183434980862069901518134491965416161520232800334832957142515439269495965930239061037476089684008621346975183700162180513238358321688475879897064395303454409030614400149871802477975732516057534441542572824687246625641578309076561960686728310220075808424502944831274720404042072432445461213169827591918146679532573876592188021565840725958518289829025149234951258928043622065438587085883419110339008707424143164307988379494709037708554639210230299874618693848924404890493054770538791107729803430355474539867271284251667648331262828048470537760410975282321530467807566113281508194784617511699908055130207908338207158662613198893091980683754346962036590570803118459440313032897545364434033872993226810007801136454789561654941399048177041193557318108303474766579325826323993105966326445426862863429033693244628612957583923618755629584094856435928073668623141469055037346744916853197497477008315100352348934197533564198838751260402236808819349128041027177876734571331948239490250050273343087691314684041875509326093984872173194158761034202708916597342774202844781730343965659450314863431239949380609592661282368783895422378518823689840325571777729041284118781054911702727710096958212352740666702878935301614716948456965456978216648835093603993444218059905439173314343753967045736876542669831786864628243977856076245435516531267875406010394022523990933828410537621329406301130438209804232464159661435657647882430306984681895239006717406002878114783251820092594544789350919053517204000709781903372573246465488214553640802207714254425149926703517865438782115546108730550741466418771646367415473613345846299225554924433446876930427033662220574775765042977878589667970434757816108150737388414088076870986607520496151145528195560515634431821630925249751779093059771869259427015508098776111457110522258681177406251268622231138623647136911699784348820847106696146598391647382145404314756885423855332055256118417669046746122511174035779149308595885499323817912514662558135416361032936113171889982152971383404830970653843987860502992206938376716638565358407571378289461699563749723912095399654344886909245426709108808218933758634938484067889664738067869691960965297942566153173093044566958743783034025566889272288162169146853674091433179391456882915803815824492158147505880056983295157797519967222771863984228257901036274785151166709049688175318185617857329696732518852435534913939960189047894677053216331031627361272721881674279703433541960297120874919318149545627096942300430576907941919386991765354893415376848172226468768920830819396445477309659626699168123787807956318629773951885713066006226764558896973953338609038628403660748450089175374020894265136331575303356037937540956517913446444989957970833415136606490036584720831835057685472854096235525122324329566851340141138823054043849404814833941999963925693573050002535730482842862600148088597305687775946678775948467150154808644851095873364542177698467339427911930892648521571418602085722745107000055363621119937224348381736860116708299092753547088683734067839640325777649657556409020259299652338106970530390073521746899136133312651979915984706396123731325654449414600741150248361759877250677426694033171429576479692078687285137747472165350017984438247578883887172464336724424498706925455931382659788152035724765027214442630878912024446525244730284330850662368194166045396407518333231089651525499174018249086765793403746177398523096626955540832905002324928745752050200954105934200294628111565606945754033766883887206870881080735219428822822553368150581655611626272205394144773725231771903398398145477179879849767801978705266930192753440489943201234710175150363266870050736906929581614503484822742618639893635635728657830191350142251548619984360422794191994429835093166280592359031514468206729526343741897246277201738265637922762622524023164433690174134531029117219031700889038423112808758359164892654375629643244059717848470668206627537048321933615452255816747882789330865910055421100025061818976632005082873685405970071654039755049305728383222814232835832609395049875945833647467454930445074124826795180035122055086861808388262148782675517932533739870370638098485669648912440236173345485163290660596651862257246966521585569299648478037341114937223815009478730526450300920692613648052148113612516336880163767636437776484767445392328893567806021155507262473356194420474936683968292390088559011740671682538102110406070647065241570831122545247145328431900212063214065461803277462617975348428911760340296499457049093439390061373216783921851435015823209609328627702099307466080446292041491684814700578811096161797896734630375470281703298899646344790016633947317880572164104808342473102917564315702183343494788872200855680772466705110150391796149159285767504383459123720146106461840302458514912381380956752929072273600447018804187083431715429816557071405598796264748929329951691702475594483883982993981329396188856628609424655586760230656063683401205454561766772395297633260127776832837786918334307357769352366878585704730206647468230621459804644185737672201241974524705044834209311325764028944648525547091811323255896824974262890339648276864825516391318660067461633808796984523329484605001065348950089595899612052436422607673209729920429637367231760087754353047167905797257982829865525715419265789280308110874900641427988523784429503074336908934812450008074508798295946787975663592766625480894642619562261544403871196103365006521755458442357045987175652141675373068980071629873618857171205568500931757405305521229454105228454597920759460832592396856005273160870389065007992580266816221341320409721732508665527979954040866689422014243377465783843256106438012967424758332048953702012364882696908715316020838893829705864351379639618012191806151264931645225942296122895640730204460800321794587962367494469126536824748774605601956361807349080843906468793261569602593498764118381427054812278004540724613181584948012419980904273399226471128780483232431963687472460841957910406889838179671581172350668072444170498787700128922092196510474302704301910533604745910755033909945003934113161736057732305113840339087812532475738380982127077436040089638239864815143536122467626585741258525919522083130496820915212779151505364678379031867219649732546083687068891917064686431754146221162035476199920387610563260411742645251483055511375911660692625733028868057178127735308307672783710894942423395680077901793644346545129511177862094423888330031736327063483377363989250094516341685286787129362583332627238504520051212672981530928114981139891172263444053292256035201191208674709578664574799676072949929368857168676998229806418991619272346704518378616105632587737512834352948496328564364838212799946580839070034291636368475424528490791255442045348009769015122985430762880217863203589568312858847723623772843539545734312368843918149574497836937137721397817080568330891625255670857475939702528136804175490843780084402332828376375600173019659239638546118995618541223027944906916009930862773850066794651944495998955350522396045751857328194933051935740867551340125846482618613746342053881985090144170157593595714450933144907467078938564739409584616083724847230259908284841471483085997984220132930698638050391500685369173238897753957866614471419168574882040707456422914266308470434257716447909311118719594118270989573750234958865503766469637145748071597788307853851248198689226034698089098113908578331972815092722167539800067759143852005516035852491084664648953543200919186593194517494393067263589662717031652492918939020433778346471072631870451649069962040350684548044337130121505960707736495118715354894306442855367831356986045021911704900682617117992057934825423568260440909158292963679273236517874356430168381414208884117655524875471943989652059252021854048521335657277308520365321203685768992876781549558353916197226377467746530991328593341028791459051188586880323585575968628710687344901771124557990243711993733109856425911791679592602585914853550298441919386884672825828436181126361101156492375331723132040585613211523839747404429118211413714742092414561886803152941468298961755705639988093692784254897288280491941203754519352462310965896883722915749701984822316740879434843431294826821437748867258131085740306081738696995698100410119463649449632666150422709193554860475819284560424272105104498016022687061778439326968752044159022326434164005082153332529978269066530234427873825471458970309425014192887194168003035675270345246054638933271492065870458813039716236039488551034829766728866265038550503746558089015596080706963371311183010025195318706952622757428132852532161061630375214106517864268140866284675424319974705600036070421152388747151033031095725306290849064203138912435525207008409092035906818743265731751586417591561289745270032467253997393908968481269093709034817078832565949404908222474176205439603874122588031906825180942747341649827064001701662198113608160039597000038028245858948825203092107184220779207837929386146278837177053409405647521857732251936272127422368928893489631085969992822496235853346974472013506998878329714638362164390374832418348257950690606755573113403058500868920963743544432202178822775816242468957807955884989733128887200428541305501404300556974075239478359950484089062660157181458276530124472779168764688507355674875782617808866950117852673354876659298298315840968957964995113044661542266017990758197646735833590764029127320338094915083334526788335890066267621791898938468594672643706719303734773807285691102723063561435585979563527137105450491158401474077121467890567836241001060904677803115912393406756420123095345598298787078429479575324572522595100842134268802302647424322373706717117561632809107706525087271519572791811135937630907601979565934137288031128281440935564713314761030238481672674536486796669279442291171315430206478083101466566659606253053594467191945378215334111983192385912417263884812430181843917929495269945746540206717291072775827670854475022910086396798495841449254584892985696610180289115608760519643110417987643591400692093283226055210250844387485141206452719015422510924335776600502175965463414747976030054105735058529607787894736531444079125070107590479261935679241238442434219864424467772516708416219439505938139048571339159197414728688131957030811359233529262275649663575833833966414796148100914126016733182576681225547981114404377610604426174842219677242514854161885955766915033627840270431242245263597124495182071260737563111316489910034541996903475803519065043892738076076148672633374225873232673688542415365271832751979697009935589091169016202228887811071929691968100440324807960999056889990048176538505938374662311004638649731169221402100871862626683887581268993445296268080506312858429022198059023691636606531040586767806998838658015633091780791964418933158336730188299866916618981586064015620744755771109668400322438710836256482601327965674162526244548795555311195642705181893369417453392333876815528466252588552191918642618283852714705128624853888918809914117904592316324383671357060024790497541610623918570687550359919468737946725386115625661050020179033784408533234581719022196688021837413329359966382546773328031213196737712105445078330076186244285467418465542622648935183762101171852659507297633732688031526833366827248672265882510010347390231438264107633429698127228147438746390246154704117046409916049515744027033507642040271117046162042585678146815455366598424649489911776974515878543922478342048769880398202166629296261186110311198768001070093687171791029646761837954900910648470857466877506420392275466700458021783857632028800056865469658581873009822939567521393467184283827330324792111250483495585195524778212475126753810135555500736231406818128683810899258594160238175051551485492468600494479413502361096897741893092331121858339211549533202222462680130929174707732990035591310231638752892876229116492789108310645257205549480929356781090048093715126975990870539473657090822523955938451772051021624859242775381879606275660326027227894697492043908496022879913320618447743638702773335356700490921563376219286859650843785027117717699748220660945970455629278089119567331149135603309119416417587748186229775377520968699259549296980533003431731703648832245135615110282319655277717841340925001296007892589252844585522262789848157090263357312694346100587117753455760363456039825656484342152729228434682683229770234550430098267371661771876758541881626703126339336791257279879788940383540991627626036248804450419899114555006476969364804720554998503796600554833134952284969463592495576710407112958446514269844260278630267805427268279258791256575142473383714691726871898193800691055307187713257455110585885231454352401616687989642832913196483172777786055542564891093290176885588565888760390199920980465458822376716678415158546269533394513022753003879611768221965964333262242211505878425603048052699909561699482357060524704363675931838037964634313071476473038132109831092283872889677048927314757188828810090530639997221215126731015326820790803388474096745243404591173006358187508079475507276324535437130657914224157490621385332923572116744589695570758112710408303116060596293371184492493505196936512868972261806390960579877226993735587245791433951251786222420526381793206926592024655109437764476347461997260778372846484082060974412630793910103521355804466424281431389360901777467266268570797599664786063192006673206827546237432187781213125189673119543820560749419268707970475919992164615271324572796977325655690432124805420115482047851986223186852270624589488737957386649260209580961278969922123678664601347886896029643205890915763825164127591741181164523277791999243575529080311739931701681256704021169299557455380247014669562824320769673667464149477718182713207908587046469281423597639741797467857021026083990486524301856165800599568356714581178032071305992745005673410813122228206744246788587801161589943620234451389868796297449876962579214689006553898214716091790197228824590636583547894046306764042797260555026855765197954948657561304405056835280212564995566950486289876622441795498959033600245926157985904750285948249758002557781014391259526036832548643140146411143408027832424435200288520849780967215975178659700530244482397428763574928323934225420256988011918396772571829001720332113017345510428797106884772392506406838614429298352741469312611936522244590409966496021168021978972590602038671812667919355615697742933533073039239454423341274089425074140457416527444915788691575335460488596319090211526626000882622040363523283799865547731140832770272452986287991089218358552818014407643147357098584063775148877046101162730420886198991613900281724593635886836697336571607678256042646312820943250413582296862967881099103384923174113515352725889287555311797443284076613867180218076013161046819115411814813713980419233162745758394895509301722734436387940402939395826151399654417637542999793085691849622586434633140408590798862237670900133623784009990468980189273680729824308499737887285083178641248024889134093324819751226266639475619621366208639404600430031930802026779289776990114978479096096943606058325005893446879105112829490028511264884304496124078935481814906766458377906639752201003188701020866957326035311412151626299959270002727123349120382843126534853148686597340544220647984264808152244887729515316009730552330363075346563501264374348679282437792408177134862701638130292617260847232040788897552345024964985235809337605805372314771282887830821498175833894002496607456784455001847960583691867792360878528433508343224771618893113729067450657744954606879712931652120829255347332569352091958863781016713229426467913305755044147014917947923028599492798777877877380751070023904655675230071528686744426090144097658363462416146604002551713878885588817498727152588564388910783964254893813788155723079308234758416121966553223264065811241275785510496677156460277322188534290413998486979432519042260598525225271038199764849929608935094452240901533512368995547835333777128429960978457325238247907691317751363474510319593722282338860117633807911137808057431448316045633925449807539411439990433183517798497731351314266583491827178161071651530037932719760149887419548050241957856057743679481359714813322488111743438544836303764532723267218114727573367945971765351008272965995230226807685969375366516622297646369565752862530882062166243391434201562137582977704162201524596928318044070947996642592888582713776997722080374278135066202692322445145838903912382892563488812822428348274506222776929234753599767586595342202082820223619212613372733518371459253005923156678085317885481477320753676086065377365443771882320819336998374785161547007743462156001801489197221349297164967556367664411964534362455881309012349818288553979851209725187129779958600737121555300159466008565617373576700634883372150152418722097660758309313691768191122590196678721087408355557265740336381820904743535345349771134386481540813092544091394464410107613573644506403083549257529516752257190748207948104084817842200355653440718240410699891844183633235307245756086858488397327880031669078749749444775362787568726813819998425538331035489633206714473500637914582274172572190683902052586725643300869944892141542286682238441516894376509750062313551723351945014872204448854203913376472113033471443832692941965390211245988912547122778939981719514365484847306490309715298839204274416697868094478641414313885434123221371178725631895341393476184792351833711949405288178679319752674014981273782557272005593496012800834703513337837335137079433324114984286986883978459646779707383379787612566078432542831995056160173396513178589987842943233235610821079728847243797185970051775302661232176126278534045208966454866422284165211086338886711427528962988120562916012451087463522608415273088434712499719353312289360013876605153067888570579208580260958365692881099774375349539994288399889378083799854680234758939188080411805595386028017153094421911549284557076286582435784280772753440625113352707733154509353772462854768657215176713699090532727708806247149114377363414338446625414117628132534257327341757435701768388363437856218024455799653937141422745835374037618555608061676834670061087822526648244803423820828860537140645750073581902075827939456761934497638819408404454716924326748728345422800310866335394271364135658788962218377994395107066417884880144793655989582117641685187771173939067537056375860670078298749984522605234059287352464705263207209809977344746626409124576938352201427276947861536736176133215096651889980508857192472139622689604090126811958587132611495164095622320856884484148325360775354181037203349473112943620032393601353624745509196635278094047240359354849677278212500005768086997620402875854433812967184832713722491923951511751391479207484144513382398865520844830863200369066108423075318481814128192686715150375675665535049725106133039911133710119132084481321304538479701719707800303387271351560008931999860791952972222116249822692724107392734382148734039395389449756877484980384385962259133441339225279278757195453070311172509882766659405945111553677920908285439036751385703353693287579522370093532419554956950250095805970342868177883575502376687799384302272222633148584363570696469643256677376777716439633989091787304724948614090474610473343262563042032976881336134826169454135479664263770783148335236116159287103388501847870556889495212068169491180031814317932477962875579450099744983851202241618260140205350714159343037161299408550077384647679468892470524916024641992494375313914584063955213412658997693294888399150778574973045983146423051991986343252046983351569531125110451886958365361009758786350317638222787987926860884870554083900656343608055080042034713794677301316675130136685612891090508027192962900809251049956093968374034113194339486184732835616246621618560646839756459332006880069044441172654798019989219178475096417048620484840633807906584337031346954480851084801363773970903942367203961734475465909009547062405058228210902483254568875303515072808612018046393012108804285202613474001222419890842449812217333970063290837186514957308785388264184264615710308777471308584947174186108707633264062068614187564872597615842817287999488028882160325017615585163981694242767064681317526557607375192967993730145160249266076594951465721790412372185736658636313299509965725522229056241755882195972409617064196166755112106219826945001583781113510192115594467467296466822428826764624193261861821842079398846966349635211410113066795417915050347356522622981385641936161318226572427545118655977826660989093919997914219561142179604007496103440448407561511194058795197787121328670900750218453771363965110109113773620499617405936157183162028455596311671612161823052142259975969453071882301113362305951247678311629790311435020315985377052486572882581926070113142073706105504773930814981780616350352733453045992666994265037607777442326138234802740571328416893693736419965315883527095173804252498267228455712578232619613974007058497980266027511177489908851458484093469190418008180358188473169824630473385216669614454803846780375439273737584167836745727703792225018884772186195782826571708742947766555482978545926485109028044431596700963317909463884164636296181280494849645654412719179659734917204913407639020724769562957804303991374259555614699822473574836366427888420831065136981245448399953708065375629124916502252444006776692753224277081141111913338145510880119134647937336190140400030082451383083153967562156659399538370153126015359268587916523932303778630762906072294387053417368251573404691520979960723785567341157060497736228641194184566928614908901384823652291877282779804783974817484249937868740563764130244360313468788106511476326594878045369461117254514973581749726103141187335655734414692571634896882767621210553096379245348691451340910662931031094176131783825275861744634293105681528408314136601253642990976714566659933190020626646606967616366318660038263618749512777251425976491298603391593370373814964872933411719333336966637228499664147722427032772583226009823472623157715080588688162565090496839918574923240386038531596350775160831710509050794308459035420319228244003260568759499748431015709457993483778633754795163991170090185698626634371271064765440277306622350462881833042181829585597030239645959957026896851356761712169714141123504439693977460454983449737900467697830938799152700724253786191126125521568549486791371996782817984249028809110887431740286530369587031151875317772786044323461524652898054786486667430241316068101720414781326755036441712348806891959541962410010742348722388329652040385375338625633626981227542917354649640063496166147262049849399424122956726243898095351069818627970350065145970699919998295052911615132927718458275530699800777926981511579020174760068458051311520211971911500816084152301925171517031301113693551463511565552944999192884268816092843059793440793345317096526106123332240421866615326878822619165150401859498750770263264097829071065017113746603532403158452552234173750493098650577558459464212047826428434302747671483645109406473543631881128293339779939502733340290919730371269166656792254316406647110486772166615673943605739590992609843159163630471717323801077382470821572898588974160371470274036381931594313106780363580858494450644052828214187501197738689852672840959422975571051896138312721721600497124037850205809799440843503476438358107729292133667062630463923374750140574260998102557445316750978027136634604100580302244257931616008210514138006260843830558940815931130624633797662807522647251744811038045700082683795983414831786781530856215196860534447169046986305930250386137116703733685572861392149203349422691442105477542392584483214027354237753889334383376724770362536194985424848716603223546719275831602975354581864176003961319172527603295495418713021812486167658588667320301868852796341408365983749499815478115049902628759213383030304478934732726572631284341621076371457676445006507994896134100308258787986900812835936965485224664519756674626515902335395702759030296948866366994661171112611245191887686863460640140964514953549723824394576466751729267312406961908706460484619271881645984311727851947989074112793248843238735476234092619024126278193976860617124772868482029142520742311460419460989379783161282595533272608288720499359247501341165545889038243452822290635071723568789246214250085477597611279412291040785313486716051270601408217360466803167838813263564671170730485951053890303282860120721839191671597293999859518672194527818725781280747802714097059568943494867864235221942939548852103533670013908616664142893327000531467858584361853721253320229737349961803826846723939306848211139347524025190809380951716939957153121682486019323136378597261909101485751314741475863686821231744534819159721397736629416122052271588834976232647952129509454041181855684206893675523088974283677153344104099194505579628047192065807528101589930669106134810564231422234523490245254721935165255469892883143470377768075518858140717643218220791051006667245376790428118324478981413764475863285947065348748708773217219863916607048954129209125814928639977661489851585087407326541761420256463764986702212876333025938592124696439330754697800604137336179201548690481427043181286092794578705020436800305274948229522841113542371866058758877118863408228267712859188988711462269857929593653431407005248369042372806472982593925131057352277885359714229661528318849407984228876362200819313264514596587202445013490425468234032518062216743020385308151144529250167632511069862616995179208514854211252787765780124566907327246200340190855123573845198656876403912015288169117401781102268471642963872286793878763724466584883045878738219041430325593675944274634579216707624791795197641763311872896854120274129075494811169222499607747519329457794838629819490491596891464280341379397252187627534966997472617116315383776051687284804174762052885836128825680382540585012029499144410011805917927480055415651889327336055226870877371925508023999685435754757679799157336186400600896841668558477982858486132377587669467465290985903025255812619478187263257088604309430241230742441998647446140772182424221876497538136466341258860211311737396801055565264273566986521569756371228459516567749264901471436446319842804849930004885927451140143984638079095352079163641799387864125068997294248621179770280250652160773959389338630056634641288897572550598377217649856276765373864796273566086604651709895916633535459139857759292880809271709799705519608282397292127272608141520870157673147783146501513996230785775921792718526119925772619257092452572320169547756510493674223374910493888913829770719918075829177709131293050611042021230362539970714697599609216527130905630506897301057944865828303040528502591725019689599120460368921931567575602677525728093438185426611298243412650261081237512098710086161452641205794721826352713230858977379142459473116146034408962864306141579592100163231175840838619372989968757195708067934635380389680022179782316859714918145056066411812998630243730120895900636473551774238598115377441783790215498681896222042285134980639696942413338616989504444736403656372345223627604737586555154020095161475625513892510170124975954208273716946726924759175533918542590198732652489278894993572135781390315125226102585773729364827589930421150537182948698379454260998802983147631629839594827329898370899508627530857924632170487946084520008486448504685698759363299070603548892681867532856201042539509912825272583957171389973589807313719397754351539072748723158070531658004417714482846723420508946946680312726195162165447627556675550368608121080217428303074752265949810147186443515271041977948475504203464495843265889684650976465791618028322444188747830970722016762181013678906594666339521530461925713713875551624811250519474102995277198099725903763021001477455158194957785797098426999213899279491826150798146150898736799301300245609046700477807409015818427542871242531917557054232146434535812528433459825453902736312510240566207213073579193194687495556857117145947266718981274791946353859968110164235728688582105451285409692868789124593323919505750588745077786785910210969599368783064436945006318960183345790200047218664787853405855977084090960647087794209029525552972486143567179377351151455891094067303533981634719025350698040720732079823580003199874686353511084968438873564629229849274345511375132698644623754333302835170907960728405313441901484082119059088050406229588784337993948995310978395538877994731571838444677551083410406727658112851795583790153849248670568202594137233274293688957355739170442114619040180206333325903771498965954866548040302341404431869674156315790177842176620104545858548409264572776751705829936607904192649660692037732524767889152789337451915892755829239740176794060558014828052807372315044935375434662530911726145078438418765285260263648714245398066414323552533552819184906457583733665517467533273668746305199487880048439941068870916571451521008955626809811231817413847820966823580145058512177657634421596080542432901717791585833996128998864981307825352650918001824346045825385024786226450707940132184517606233878407804981990441905727653728190878939411580166577003153478947531883318753083054500910292032339551977991218355857665867184871828826002943425017877345186146281012747824478770669929262161015773589928575811693223429916363689098634380518138437309298528630907747760322955230395406998348666098196036889795737748849492567032266550418771239247109998564938436555751686078548372613423289984514458726557106227202392062391555328312812359669990626666678528863330548180810524171717197819155841597336253463050944781947930913637471080029954126034318744431388004327677409216220134857478037712388073510038689746464240191525882909159241616344523099739192823524307876240577509351775819749538625165140651550545107396716586971892905961455779144006844995670954666719723178662688710200475463773920726410198135305601981618259121663753935210047469163082786422718100102109761811919972280079999939630851544235748858098952219980984449627417658459879600211369600717777468153714887151765293801682480895185284286997425828813042255097005790852041602151665393033579049463373075446364082057807312901293103941110484150415248220500546701368510141174887415472765405779256581093234854033748963651330076163523906382966862472550746275096238258890434655846352055733709744151966630462197246978440768426257582015545909351824823815402667734920994044949055362465402906494819322016116246102951384481827706387324895397560888747616865619113890955932491455332055241110975383763467594444251625883353343443454354615884846862903115490669883458691007984120759523259379596324294137063658263332055060256650271552238829609239855822199662196141709100584072297849837449121884639682949340583290113861711077066194748396798401978681606763545022967044557160307301610981001973535737305711937751506878585565826612755393290412300110392506043707958434228699784926076064205092209664913680190298741198289302714185890463843611329828183869998236830689877525810938535665907867281392947704072216039318247283474645772228355228650301823522795246323889767051781410954665837153716465792248988863163379911486172365747049484638314773476960673101411458384173173536811030726636304763398994872967592594986360931465611400389510794185063872616153825632609633450971017285591543474024230450957782476081243333017034350547554738647027938134187327572946601635979221489793590771463541664481096868553273798689503116092428926981312498663050907186794479288493362153788211983463735327113285266539966745496871379642691056179425150336775389788134249654923424940088637475090628002209704057948551913758475387609819782540790249439529806853018606450437130458372035318380416974389858829295898113762147301122326134039830091644536790760293650766403578383292806286989710888705348647588840658995742226352223816607638466051544305243903820500449793062670025182553269353952795652990170557473071857315657930529516850497935631103449935165067891052830895722777119674831308823743869169498922362644047335854476926434449898062099704627257815471796049313570329452145267045671579329651590295301573523954514024861626831062643688596246959574510296304828168398773463435244412683490891836842667415493690102408982970935549021698319073593777606422685343769611090512523676190970750725472409727315793749318090722448814904445023923763557292043000469091370611761406661334585848346518276900557332821200344676931828396489555376472259004758281767669632578995638578539920341848867283454386370544176098872203013626710877078678838799376833665648397282483860109972010026797434093070516673823161674024618351585523276291806291802974343308113211475915658531227201862043932496762789147858535666548662420461734885168427069076189156072806517522865274533405279752728452338095371811786564067360297881896536945644086530311994539858087355014876057382260910373503083303862699138141187931029089068800638670520529311376682042408447056377123662740557564391209202056174582102065093971309079730153859691275949579374800268465945161447307687868111233340912843434661447760044622646045106801521573903935344908913655077071655548885019290542666489987804353540551304900717010044124083289486725673127229857724845417323836117004383343590711015701618965722385065603396317522632514903812380452283112119644448144246061766064998256495347236328947834984695630236913957250681040205222744112800672099732418567923196946424729797345722355075641157830070934262151439681398199564569349001096883789325684038051121531687847146727495042335604215172672423965163045796971476911688432759766300067127294811373036645752446999884480398764538443695937497267711907042202980847677577561234354894629583776835148581192555536622801828767856951380411637396321371467167354100345929033423354796802488693671630134032548451557492961633826357467889525407296570480470079856738879375604765645024757631713896601264315777422348593782272354373613392546932721761195792106801625568791409526736234625605515644739055679320041438884519487682627766719161817069995514258824865917622084263118679223330026615296689173459347775488574071843366752247729464261504957430852128331027584305823482648365569682263998715123984613428588925208377568039091918877956694324169617261742746918848942751667951123655711107498785636412511187107948870332520971913168875739033372271630063963585846440375194464410391911918571861561920806423709822352302760888739828659856762522995110815336089250746395307724726269086565102205561792208538886433023039128371195798579172899134292823059584509587322038297296147488524979347983283787297400635388192191199782798257176211811647013592793893157093969446830407627053186440906387680531909134858359129170874680481274456630078417435959982439444748327962666030131626915240247892395553541695023314085228852098008981416167361659300815268151925069318529460743775434141241993609637881417009757443157255058814011839368470868558451896190515089259037555902862509159417956627371662358946665448706947822403166770149564465550712760919584415585957309072245751180735857935848714744196737262372274139562706829379094483701347454405759842219341558659046316691095171904323125039280833763458740816775754729528656063653172677072531816695670781799162632718236486606127636296071575109799793146435650314182026865120206827054403504158513128999196173631172750358914556253212634398699029815379046663419336171661663024768458449944463737686449071980706515269946371156001295689109954552043231346276402069922155561886506207492740416996882054456291818488286474312598977855597374272147988925302983702333522051676049970292372910257938621413791334312403980166320050210937316618244263154232183749873624948967867809709787937903217805066318947228313974177071068734536893242692723822285126681131529245017068514151623240244172294076898775635648832668406435886667472925711358995046943041201528566794786085510112825110769719070610995414485979266351899367932536819722213247834012820712609226659773232831049294951129851663334674669445221597597099974174575830498587471909991718950019425039923940311682024341536973938250529780308497682953103083361716705351200212496258131374662565494682778295906468775997332766133516171320198684254041660895280215086328398720240163696980480128955167328854152804036013342641157012511657592963223278744871904299979163335358180679099354732369064759309935993780607254143316241608686216837631300652646443715181056464399392343733088405262061757778677886134617407946532302547858948069395637336607644370442623356457437722166302544976424215323982479214255500991820382423681666624866918958393108248286281558290068877925734829163715755521175677837574960508277695756158000062851958546191821640599224462140945498606748032764121521213408797394963099003757971970385490655004849399636607519648683470517484953568219725083185040217135937318149531252624910430213909334458513378974322097863074438184485075142641683988402785937926185155443545780615308232970055996915458158982690942349936930561261938103207438439311287084581975894034750975287163965179347750795120645253629040813495076617420929244900321222727648843314210359473533401769164918911201229306370064935971284034834879990596542201740473467328662053536030580098176274205504914037438260078713962588677622924065884139817516500182608959585451516850340189834826293221558241604447007756812039357180785462685620330815631829523968611670806190458545972663773269125654181908550924599686406905228929216969017177286705310061559066120490886937984062104826272653168509945286126001988974764622572256885866656014591893797005923183969249438282145588067670298977741138328022263953058850008941748448083146969042608241878653311362751615900014616229291933225440455456544109340196707972184773533870096036579633580724691517648141723575852347934879708714627323628163812368711370689988741057641048577747337515010898671896972083051379410621216881210895268161635600746470283464921017119935082785840158957451249628650495766826987959751709712973941357837938152017146285649734361683835702320081626404702220845222614113229203842931337669604115530678189063856232983583856486829128934396483384682197406788625883928373599414838127668650307802463428964750891543153305240770239115898084151061435307730566181749259175787939804591775988397530717014564944097630837162107736649417445441837752908678908342582024101876514628413106869293826984969960488472627558920881202951562641947858443428930546290238481341566795065777885014561797128979610068992231045178035944297906645227456032151082629507891704237634896901103646767942522117480019575100439345752327988332892577565598458083005632509266713602944358961845900383645196551562273289676220016047929192653292502750182168513171981371507550364962836276905322409795881630065401927223487082021523701301519034400848828384289785649133520269412396402112849756555823149458774012097368703846748929941143479682289423406647521926075766331017907522146463229447477279165711773325828566194589006774712542066166080290618210899258829827596543387258450662551393467137681352179288617322920024980875805181905943278884220722673164630496309185407313732197300343587387024812662416577466717723306270049597886799782754532404047686459431831502199088510294153592834432984408536821730213093391456948254463334619682038418897712267298801274858883526044540314442899711122658559789831906016393200223929893109563501856564730868862918045689934434710458204482859156024726222058418988841735730736182571230972341150679216190632349028554976630914676852671925666318785465317724904327930823049589110147886602844480016058496872589815754571997168494226827492250312579727490444325646296357650405840465783183660206720997636790605956102904599370434463405822730241392324763687631975223461468341512707139296110789259106205821459728369182864543115962404834729717487778964911582622854683469317333739399792264107528449912226731637935165848410532320254592343531121033538576983920056670897339945504385383893229798069578838689408620211608810553719933015938502847025411124481016907659690746697445965378438574812423447506816342655080409645789881276241371440543506305290951062593748044793889398505954317426128354692203367394166066774856939025372336045092417308802950106441816322891406121998047197763492996525918912365055340684900376182369187169579978736260909261685278673723423326283545581766936854296603899070050514630894314498432797092843824483205027207303737124921325098547904477425386339259313138570858548068520027763678865472177316932588897386225184762083318413375568245075002003294063834165337517819708439765577082499582802962348453333990075294405001653698580064013378773048564470034307572059771387117870946530119098160660539940502920631832559491280257928856974011394860778391109538267311879600807814143671926869811508127834919807755028312357555219229432610077669664573118851429364237405433478600023257347512759282392232763884451762652826545726020986154519913420370094400039071368241092404702989451970028574913614476071432611207635255571777939257928325142277415202724341637637438835890285326970323735452968644355017472638729196795698560548892494541273409593103316862284029603820970572968037827823111811389403753433600144454151735084408413363119429558868459291992328307597105167218974876832838876942363688904339217573860262733958221398502859607874627009245168556656744055247577230752084329182551514723553115696388545558917508698579396409123513017361226552152431356394220806322314991841691662644875822288803045599337786559794251545759016686564130845840442485003770904069270179326496451133938803545067269675948302011467910447211833683607467317686923328576170406733335971274053620373783677870264472129033785296955509039748123420912000646927695256074819371868131125058108603378728806531025223170826450456674159738798826416471045865875751131106470270037575899844457368920669794695569510929183954253660221749764938509592112351723592461136847449768427719129178544539899133089250177475928260192908919113534892325987727992004380697030211504190523426136327441230696363237567618751325114043570256932486513167674010062220951620397903311302220682940878834697843535259377489713954243147139431233442386989563343892289983131120558381652434697046845741915913339930071431673775296733336036279532260086638428083393197354439189138832827392117698077536974142992961127426398737469345812864299323722122035235992220734190234320206571899064891567428969246816372319264986688445017003438556439273317120046543047546945511485413452893913425003327767573219370352008364234344212028460232900695182168127925343801172712414026148535850630259222253031581028743512642959914252425073349316032612010883295622698957942560644872366477444599745445420827651530122227591087603818329055531805505245153708522729185710520798161826855185769503683652870730756686347022175115835030840496530821883614435561626518572460751574654901251234282866822698677470279235862070547246831964729742177551891588561779499084390856033177527984319644058133213842933697449840167552336994615524213605729278677758477772713571343446064759983980700740022444714519118498248319453111010549233123897021283768593429309634706444957454379787961119717547313717666672610862000384134980384861206917579554947489136765464071483399330977652835090122297046420486108102508730661676545020121067998211532066698379381776878905915743568650600185669975090064197417860061689116462624693547640400649353305169935022381002723103104566211833132676334723827075746370501844955774005749346583768525650971124240279732353037953830540939282123420323876887745358861445412669830651401698444495140717874939308645120201594095516980150735401254922661238724562869162689773495511746822154689875305429985441288129586092550880831022545438249459143280008709517922230759921492851817933996827066807787721046361259860651538196972413161012703334635399008964560138817191210086197173440054269903242795128795578630267817097954707239639884913600149210530353036838491514462992214891991337895088966855846222972458553754582350444688880714412867440666167720334992808703649714788160459959727390976215017736899553527661324938813641551752351092715308451350482813916918656665423195798451388160007900729576331757711985919708577638842330066481455322636957123467589023662260049580810172034312290588285892081064385408614366697634065750314762887157094763623218924899803661000300680854954062048260288387880118857525052597735228681767765645620988949830796117702082010700105492362114028512936205399182736051330608273154864851253638192202236696431274863764589624584731328443659833471082362884597279213114440247745624505604724878871590879754434232061700207822962586902915638823609973575854455054510769762965876268232888345838172969906093231135383028379813978052275945273319525596823741310155899021478770958081428444727583627062901844552183368447987879898820937888829729887456424216348090194297334914217515777004040800888866499648203930423106224629628819463601531386730870248318100412700515066389705439852709310351353555339742458995944687048642691937896383720502742988126775557268903551743107263393736762983962963387736677681837703707606048546742637894629816280978563779009287321224798526473793789455064022497684356213056635710655069814608430114043785118242285177007171267020753790048246574441716472804385241801203425379133532292046331133680821478947801137217759525369290427975110931248904543579934144708917394816436445022869569285406196724984445488936961982515306661574921262216639539670648027549698929975372404302834013419250472394355905363710720122058142509976505114370572258267303730427833445032453395992308610813794626340496384496193728427075930854047567764354046600147095128593158407406872940222312026098775622739906054965909660031569865202153278495899460129192663814323397144546398387318264373615847341536925396944420270165663455566821293402184821412413520923163228546158771784956437071727268717666508821515763497509013225581987296060941193970617872690467911292087481996017256497746720998345498948691205592505974491752577312168096731491914362029995007527248958108566487317017055358109522249840290570887975225536514964151258420749451999151718779759160772135107864497707418534530329916713145189113932951085225448371982590658170435866130904512202127241716059119931340837423799902971051626648021641312258039333950460028816028266089655188868831920705747092588356621668211085305916532883219826303692228589922752790314325350771570212716853644098053286541434339790166527736466334260454653999172862025967292521015536990769309339149987859288479962872841466439560623929289989415992767616558219138955784784444370676781517296358857005261974971000172645427546932140954841755760832118439405056738534458885280907255516375573786534838800785133562695493099932042465569686522256164267717650626618421201576481617645648780417251693134514275956034448973271953857503347500452214214542741229074470337226024769299334167083754319146428135141535140670182494661174025516170761870827272786906896298353486000616366849418217744448445425263011722980140536988866585387136042973169185680419240927102164932069785805099545321601067371520551326784018954314389938664302239794473506034364100105299690889777429550642497177072093236507172858371311964100778323355999596421514647523320391123150019547784302713299818456212366954584008857356187088571922026275765660844556791433478622107106017743968377179970115648527773242223220981776938959555992892200691466490124313804229618964857699881122525580755780603957081931110051705929149961908336087984555347118767324961471677649072698954152609398003280701979878394083622214974355162276185990946202688744486669266230696056408509070507888679149652689509169185358068162256131291137803306988899322775328292236947724831748921812358666408921281954559534957596252974584421045914074174319341361666131836294950647151473560140050090864556385161004502926529675687496811349723605435768355144843189414990649235801484391258844068619800152051280282790208967638899101533408323053807864563947288843054705867938598174828221299175659396681644533563906444237265469518311534589355984886634782594356359590110939244878358159702550797418840690806375751220760429357462643784906963461263070326549090087297558152188297700108398860704730102836442781341601784547145368456801591003900647450426162116760159601468142085523571812177749558677627369525760361291573488460395873732281635269287274579722280450808885133465866029278415266975394244642338588555856310970698712375805932233708485144048450910013934814478462009074165783216601732864055984314549265778487183212083729461874997144700054524857667009737328646246228032816933252922617540839467940672856192296300745343734225589857623711281157168141609278338008053614642980007203355900251621825447459544496932360728985095757076631223857450332110124303144487268189451550101175400032716084342387395397955212295785494383356839312486842089461042626753548169924702391731936832845932119238713206141143234521879856100891403809567307172428146743172770654046563045195188681376166322241453048216117123047215138561368037207996798280063033412328314331615268447056278488538257616342392420833865761367775564627689952030592606877427635055370104264168048697497048623456097188271981099679330674608397878152814220709532513893511950998102568576121442642475276039729875788805942228684101341826447360833013439146168954621588047967513101919176132005574046889009365812626322867989253951357317705354210782362134474846023987702983717000179237493150546979514439377669582908739911474602232227477689799730508520416187818140572057263173086393020689245319898597927988048127601350704186793313640683335840450943679444576466220422454098137008283658699992369663960712676625674473024391467527010309538672412003213763253688805734668269863806435597609250880690995799512575082821583522488964760429312618826595604661402911638329572407510619149647999231721144199182026043691416838017557978813274075586522185061354738200501651885498916105624541454243127996547853472290529927138275214287970015326868518412257848026296455523583973479104310967450687113355352548162355263778702111487421735872208652341958192607213530622692222331033163219463140862364442235478199153203733901364005521536097529403572914152738675305510882745512626877060187852269850307240583589612796819416494303652144031516934757916338695780918016014300061436329791830393549324294314268203333230292799039581088630450776104742026846906264845494125788252269888517869958916480006994309924605659787495734648666244555047858802319965064263560358445582517883274566636040396386772977178923775427163610342826490140783205523635416421145644802896842091136370188948319073665382489724174177336656223177127515123252879582631751868213629268492449983983463399849250992898655070561425540259223512330278066878351178241680408093671300040361371297608543355090079526729125782689984088815775945453321520085569340895044406148082118867402051984938043374012699556000589024166248749532331026207124946086346534190463227787130626329654810047630393537921060014667929306003721334178428238430935593829941439947353207442929799477623406893189805161006254321300336406446900092632557131487464481022414146780353003495029305771064695834851719054776888542469778674871548113055489913880594531512656732769719294070917503110284076505841490208192385383241720918858227201367776330704428521102245914326523557711797211127182287811280039499528607892074084419416192146478663085100069747938588151546320263040656397447694597841004045413485700480900642779533001487459046955461708642997548589631870800020967955320642933532817394348572056716445579380389720264547476795386677279652116495574780567888170863222561886853871204026973087499112886427567120951974839237255339545329627540745859011411968459044288930602496760492923507654188964792776108618379895684078990155134474794940825814351061154142901510443862437942689597577881125904735341522681190211270140466951516437530412309937327980223816880109067736204179621455926802283926990045558726809086035754391491521066181542994630180791948738808524377537590508336690245598564070250917112582112144866726305538291255635742940635752717881620189003672130483819911675833317156017607167279341902736260943707130476374435003287462136707413404609151254484411729380676334406695590850719756935803669688436583129786529482234627088682384705577454179776060113633838920317849518382544634568390552765534733747528020861735113651327288336088905388341324887340986464605334779923586903943295466763027855168407210316399528711981625970817324098752213597985871151474842058417524598720636589053969669311942883435070103925634425535694820419104717361907201470294041712914664830561464261383019678848671221351441358488004023599575601141189150058435899366793416112144090789460342204026903498121768167619507311675033504066091470300475338133010969548765733477817254325211528623887220345104177093924558192825101241980387860294420936633721780098370297061584595494803785292070328803050400152253765204294243352049771843368325325458531811641088133990918404898693778479463366624022624522931642368028638788682550879663240466688790786534406874191011652973233558467029888672541000454129445215562896312083719667031301478768241500583908710159132341184903439047321113929992004358071564453949264606821922477888722289072193415812641627545488224379397986639527088035462390173339648298309416196350661770346333919382440317024211182952115100699719065833122510238541328369828638540506356263604871436558621292256922003356640752280568151017939635206820430073145808210780072532333997461372356491825291709568547132453264272918986675414249060897376070489410589559986214950014709485939591185597749145269862426349535025348773957239981249184695029663515926125603289698703261362151927632814828894422167582784555377151524091863289672246482099369821031671189783422820683361701023969574342853464757979201021168998438952961007899144385673062043799356587715839690089737304841679372674721405167042910808500109435371385248566466252166545496947974668431507389183600292115667755082466955274982547077134959029218213290887901010918137785889639030763807829567822173914272936314716399168929806064814255205412001191674323397669442040820645782582718395043582413855095410793269491328903159916584315097634968375749304020914855295444392468779943068953352254117463834723055521241773569894432333732364387483789558249078132255932307844297759932465553245359827294786521102813129166490897412656886513007262136899026280566670866183872399584629180879882304240903715919599621712564008390025379846739403372853166422628868419508204492743173329626310036689902075413384929627272409042878584247150711043553848475698903494726906604530507657212411698909263019871778066753784867610290326158812115239377941230486332431587792108875981424444122704320586923996633467980339438874466031391734037374848433779621104270335165338929024189934392646588633837496115672328493308922872607643957722098439835597392145355253544253034877653398907309253431590969229159057185084146816485488323830368901899523749633671981149642525288456376276472328144878908735909037420520321525037010217908288453630985038793747523637830456172336153467971447946666370912905611809313936633558014669888936010979664315182997770105420302910244738925521655757759322402256012778832793002542995159826581691872898037694965620784230231916840620340203338692365499261155482487061328495793482774035368677878320686709753336869471641582912100951616410827937542056546408947246376544397932860711150769301147801797530985514607240549313190867116673685071244068911765175820788001486532325311413935002488466537631421830015738187286778890721995923437960688781740888017813527228198631329064149020653618997945983770852933378247182031773533552773436015522889921879297599912641273888914024897539880008848365759445013595277295190476786637849561842042147375940764087902647346789454691733969887275132953749657301036122814178757481249439632296722749157159502844054046836864379073746505977685391939840600049640097158860057195587680881365607071810854218454054963681756679372243316542741721952215313430111773045905463190525356062437828962257356275036296137785520744130189354578670634359205561638583216382595681223458385782381376677925528270187915281776706557849211657684965506052131718847618458171549464727210092600087174082659842805595582634594672029695942160783075422386559107122655141369112844504627988417806084225500903983047084301435914159000173397670727612427005871827906608546071199221970439624274278596454585495274371280815443483656535608373500586149184758929910184918399244004455653506048672894739869994883534099980052705553789707702193831421159386455054408552792884226069892623087748809981807986119830969053949604433654044973091632055865396199060636354324572825969825626511528390383737733215673999887410152133989052966024625812754124645365234637005677806935426834119125164658687910087638109117041752674515035299471856051514348788499060011687333708055037547018357077346721967228960539479770765136635117288606796995454397447204543240192810136912036077956615076779103083585136123446419390875937087347058724336991992265230050630720380656861484285869807726936349801548326160008968575620848984385560428982677519894964887876639965497515825277716443548403847761122510064795205478881754805636712669982507234206200232732868839224109405784416181683364420645403873338299167915702167804519937470458031884194268093834770797256525614124032362980844517833202695307740591434401660289560643326868990244671406527602014302103556469169823835035747847668265738048061684501117789627639586561143154653955801022651341263516355571620470280286890061959926558384877749654273030654667490995756231052111951496641647078934586100840474128255498942194500476095407013214297492648258785227248158234261590425109803448339139549272897043995229454615371123112251990872061536370362560922695506321776992036475604464617067030865486745090204234713282002638172728963881661995838411408548270014930959513766959281535632263592168674136231593300502375528755302995284559702917981931542019894941158251311513938549020340087840082812075756822466286818448661408106474334399925968915249020956823004075271496614372089269700844677819442230890864128913496302360813735893983753367725944193325904049683838135790339106828304390148609987915306245435317293731520249768242557671859591874435751213390651925336035135709771821019142956223432889021015960125913963783935613121463137570319074894990537431480738275855840294082946459729568670970701038194512711515760153687716175367628465797458203094292512960186966138517065986939400485401937342118379983462967079989656067934885839866377187774244801180607493314502161614646589478791601663446814736650314240303032385917291713715262478248690167931146243540941415841740192285487946637062158986481001431137589391842692521728707302437568772650565715271263354380561262075072620289709424106850605368839739800205513721516991912024182797138852751172563307853393436226306117018482074574529084897188374990595866716325463060550913736957026361019265128788159418448318646108657863230466438917838000987904488769343048750832219893762002792799979666133298108495917695665722748644314586799532041619988146485769036250004560418259673532061243943408813622114497429120946679137753860742774759867638478690783508286375914832719195152038549834527697742483792241700292276055805215593618749799340557302048766615813941659559852075127731644633528816729316439735083821133052697697750395744806526593469929480912695737924794627080764365290704712713972538038703988811520979501678894605598786678102662813973382919186601098243773235188843950215193014320439657449186858854460916271919018980721742687330314578612394861936408519821426256157362485941839771120047159761075779593910591991501844670221021906338863974378590647085777141826951923090672578973837997625401436111586048135224685960615480869563352161811728874314405699286614194773595212050979116361800600755122098191029210607032049262834842417684175074344913876125372980454777118341756339535985120588208350654335267946693284817143672474344708478166417649825487839139057579073676091025917875685617056486161223993299426761442886071855645288242861197811738538581394691176968895176168430940544286230195565824410151563953609371366450565998424279842327184659731951666083467483626594037691477905985024809746037303430487116781597055161367247694871308912774992853955359521385840208241045090403571909332655321964475484749502187277265925827362516983305871852898549658732654166244429798037082598332256099966951171284527320117236105798567039368168718290912254163214081469977753858873285444447118533373538467218777250773918199743460512664996966923518263309459014024691515756731189077269970763303775138050924998814322870022214228989149882405042696828325661334636873702489061702554733270593337051979282047479603357603028417863240808474419769979429490485012884529236729300844564484600833064572129228902275212309504308409426253876868589203074245428366956232451629489221158704956196361338995181320244413750874956225370838900233289749000164083875186610949837599754910377845566712923390399902772176910642145888673331354014938116306531560316160934010979212913692184036979928328366301275588361168783540977628950610772946397420676684552591284843290666973847863927340771494122794725155670480810591691598950173851117513522381495833131731602758634585313501990919287469123710282488772702912413934969842579338714440336667203283013662435899283151043718702647339923821923493679247672011052007418876423929939578693570415959509902563058416085417990437137047920864474761639200234146715604575364506269434558983770422312642520511936367596670318500727307399683689384693244018345988787492726132151068748112434704474361144079347678919795889731111865169237264337561964937700378146964126239478788844703023189892849542144690396462481626067329719049128647457522479666715301497333021449211131352189816219086843053139052149720117243145215733901897830192630758266141095060640138131460548009223129021263567156468096052534456207952315259778899960853090698791777775862330561508276331307014591841970407499143052196308754974084379000397481077676463595601989685537441149918212491227904492310131666946045106289092533373410927656824709908468894515065670507492995356641385981681208241670899006374808658281633043653837267508381965663663038644856979778746948023189669928229823320918166800959165807203550079259658354545744302813492847003482016338212917315044317208112567597987436035236867549401406910624926603881825323976983825625084687682411820702007889961742171634490507559298748034326948758552415177877661226899711643737893034894769249041489990336327961589056379988726556262559520438700779536790199471444283615003075615858507489243291530427729192838061086589546602649305915907559736452751407553480303900497147943260513293892514199525265151891406863244095899255712011309907086154979405193654258033041371497099862628280038184579142499797708442787234760905619040409377152147193979575799171090649278212058823036915807200350953954172177200705503693517974699118981168152477734255336005419218718260129420615021012700909984989965906103382407138511193727565229359383077617478291599671662378987409343923020535963128545559011964015114617362493351629956959403847934186163547727253282402656048507229571515645334500447463544462682882502321796612093149901392057648267371890253576584638077878921341126896727905794126650249461182829281657564487120353963567040384699097058589367894637172008336801376497263353330668657759015345903798031332081876307547286248450928853232802508915123846524352396151321601433349352101424993594390879429974232415703228642941066196059263261298395141727964735862816613502227340383945116271439261369099948601862429145664058424810009245120397100284866191586590134597791083642651670753840059623718302159076948418194262551330117015721306239474069636939273656155184529199066188738330702676212833828848699497748890281316227532844928224081075560127154270425104068065408355864067428305465626172766764538068523817402127974487341225522116692372037362489729605057910618608605201137432243466228161917710724848249179247456536934340355206382126000178386354600798156103654721633461718063803732512748806822717412490597295395246873377368220273331187430436476120036296124781626754090143760616391395201992500790880302265605656513067741079687023719759226545067910125422649975712831274529744817743929886970085962974552387539111238879452156562642248511143663329035828108130088425906796336822828494157767491955519071900146411803836057801373506434092737216802838546629345858883512193309868140245516392663800246100496706399046532130905777719358071787360007518919635002712354357857805498567459761686509820597220699048752518998976170901815673803548454659683243392017517189490721186711252635128097205765630305598269258978181483382287508363867682679872806826399103991056596403508816426516186566437216492873253723785709172858229619225907657649596820528153672428139809304445457512073564312516058701279158015411485215405617486537103513361375687744100437748589898848042984935244516597224449552600669000970943524709411251230736845823000087933431549886012895935098771762764405451884000522876726016988466015559474727353607397249748178131314068688152808049828112518258619594555484146292730863982679683963193345868662323783239868011075007919326339279154599589103678530993302044570094351900176322895086061833191771494396343013890302425755564525166449610332563670262133161811990503990728845414878947096164087398240757309601473724040066013786194720205650490834722210777183934493705102681714666412146242474321609997015148674982191982613988787214662039971570966493464661558172663310705371529563640895061825489245691578620322061669190279690119070773850208911057379134428216905142527874870508778623366215437736472204296735315522177151792811021573855362264566567840432454844436894322855519153442166812046505229033805102019311703324370178477704949627818960861974248221608715686026688411982378606323941514138389418973967745533067523053717836812342441342969358686158762899629370025472356335524691540733949344627391952026983985545314245978159484336838756534165362918890984410170991723857848147962739812979476490927146577884601009864336411044756407758695756046459161788155096035143882330754361709766061515957625625468836188134647988145747812960986595813845571347268802582237565152871380848446115724350596317662351488218536436075844645994870859635179138128744003500406757129434651568493709963717859961244611303061186155753215214970947984794314292265944665320468304700233490328302582059296544649633915198926851666638577417928767816859704709657879608257738621760906704564738176904238332955796275446980089839232823486325565871610937776136697010297247104501022740743379844055368278285298464193966828410566282585879151781563329223402290086942280598262926650918133390603746629708261348663270160429626687105762050172139762738535366540227609613032013365111411770469589578549335811274978076598147793092051231707603881800710194845584015202760476674608918343538991094238122175011245776368032264867347946421972592941437141095327051827083769354135128097363024807246351498705813199988967060530148734050928211103032483237910084427983429091923621356020568035828966067928180662056096253688608891942341315383281155203763693122200638422769185206597557429720323328904656727978047795619236439162239665643740828268195991065718259900635021399969495460802238077265555847977848329833041468597851289358430682684169432579255437550701950156700493934399733764838619089479333447219325746994612298597844234931954497306290653254303298430256262077423967260256873409935012945354959982593275319436098675130420538026817289207662824821045440753633806194536503278984194941799762876987597014297424560481134993950077945145052473315374770352652616942055568567700013191296035936943300698602055268701512243613158245458905348186237932280545854758468713426655979310583226498215515929906317821017727043063468610206155370779207204088046030308820591461125771995638873485358684680391510441725032879804176630847822385768043310040447156063237209120792544474547676951447512710032273601661995292697301799832655899696726356520820436877709918592565243679588795825501921736384782040554184676996430177560229525975032159369190514127602438234624998285118921744727094871649138705113567463441120106536154344354595234388158864488665321733865057073557669798212255518105107224498059873644577544469837717665483130927580363290462872745531912589933762145109076613412185789686721712819167279607996076277537749275688713701639622628616845063004556559743746021414484364994651123615697225881656729000268667027030550782170562124408020229781528036925762711824011500632766635583993152182957910261819510014446626784042042689800759420336995036704628441624528350387417159183052971409378334828394221426597999362161305478350194696771129244298612452032793707207000916015117652293036424725821171275636174291587462794802542486798811651866576066476889439333994231521154205610029980914533546423094655019767185404937925812650744744572385041222772454591364969509885198892404679013284758147075259516110624314162070031860263867401383630069167710866637156560656823217873919069673757455440550405421091966641534400661168807719248300691655879329512191555165500421766873350429455213175452120604907616029341563737414467544794396935094516737800382843607204045035441186164092193711758274332768750371693253817673941828096685937600933141042200054940931377755241434392749472321104865611188409296167676408106377869845049405536074942422659982532820545053232885478926468644864132980162437096433178136308950422761491325229662144898097186823925173584702055924719295784363695694950854598400379315391529574659038498379761276019831105396166082734910548451206355639327343601154969263967684134626213017657282018282429824893769439602027927146875057060219821610098650225421184796124760822086016776999973892721830799259794091720652233185165511444241057692150793059207776678890463311807352126554663199914375999641007961210072437596442778701132220180399453861125453363148919059574170711475193854424495444932312775853590118577374470013677649294526209817815953485665823091813367169642446542641947037425425179082602870426061189284878185696159996435628491666241609892305543417102264296487030926326841995993743942776301980233088143261446982508252033147536209655160192929477157726774841002558342521501311020905167050498325740221898515457961065643722313196328529484617937400189173008064551644072232570876459020849369614769520407893843833483111681756445580244789163698050259854171303386301803762946772620286814911603105583422930988122773410132718541445378394999510609161375412646282031939340493441199577642132053567268274707085960335105356672859660077355527163564636126216485205344244770821077679789896531701709065691792052487996452427795626746260345589987462370346494165961407124741847755141836330836198352302807996011756439182556672162005048848508698512109752408647209576503741727308183845947092083382651438196996111923205818130442723536920879625676780263501647167612784530517179564599844810636540605930674861370871063930422577322210184697750253146599793039373909191148085015404031364537680403927449671141412860623278090359182323255954963129530413526173469210983479819607881495355324625347755370645636202547818450683137251592221514879746219804971335340236280954127623937447274160432390562645639804148736520089765124560922799629078833293460776618326113249729873078049392719341881440705727501694962659705022093705027337576089811127456006888324582312344172829395567614443995607366933307916652315071365706329570825110850553605624655539075914047903332082803240890877179944903816938689477114198692762659282781482387238830763100260856531383499686805069781893892223062994480470038109483950364724732827167810191917334120715359503700077115751232698358042757128224594979217857661474201087244174902481563962757612838339737786125724608203375962848878263457324338558280539928740221683265934366003655470431516209650063109908035488207610440023489458400544514774953293172657686407503171244028472898652966343804412439150454690150898853303458647679954771285166604700093719754399179469730814834190783198457083786783373441893446750750479606938141107851332530998846016149596439524660217724340897229656721028890210277749330773581688018362667768014819419950866173351493256207329226666160881215747594650872003110662987358627658273875943184337582539981888495860529509989268748903336269688119906274306391801815123353221884991314685509879445266516245663825432245693807437205709230168583482922311146541068470083898100691917366433840782470078978288483810907665630252328960010113228417971699930843310995715043062819173343300434734703583683992069748342334901651880511892364455951215325218167604611096926402944727813304108986572233620680784900620637127402652962997374947793821531233948903841543891497414568405050985490095125624223762626637552463937873000638402266090008122788471002403814087972594826198878268302683905396891088440153457893950196878437333380222209365596033183666261499549661957479466229373442442059886824366776703742865275716964455719436331789604378903062308236203451158378577390837238082937296337140627840892083546052451871734797972655362555133585670751123706822392816061472338176128314734539893606208832467418063455799132284883804204643874963702030018803476925346995569157573168976334312468191021920900826387262149751535853346227804835653424049510172781917685315928693611135542273519137377067044472194276025033198211805288494856533414374451606075773420571241420609758993332445831586852702146503046006017463105722670918803647985592558408719145011245027348580817859517128159674443073161140241315120407995647955318032410975620379949065166197685995375413100887980624463050422177000012143230563783806917266956496145955453545810649455206568684263799527780606055646504768363353789021451634225089523926879035021452724570869755205081130921155376713085576324677127140067524889567128288574055187266649335003238504956925096110884104984052568084168743091744130599288542202319805531824942672787227863241828541445482213812088415635582217944572135489039469472868167590075966415578822510746400534427574073603615101345313096121818537466500191698893216983653726557250329472158588174520002864553826727103602434822678756148414781012475496717745909696146319004688199988184636829264877049009074159825872395424865341433601522732855705594733216197188130936614844495249633247372988614606110969632641263277731203796484371430208648963241340484855925613759290985250745909536636969922759016848583932695265816851095703502827532650485580913148333708298520392222083589797019880738460493183169825629222289645024805156352858571921415358146885181860428332594419803365342879268065547230985988963189334233201680238790115275288175243913019877358817501791217886557933370548004603712740489374950687139018940928321694973851762290813859649953836477225767080438935682802890371420655939942663187863851148930163070837465922392147818248502067222580138268425436125670111900858831978550836872793588671008651135170294792333129277077592464229074294129248941171968311938262984794021069805194556953267726495192763290426994127365026590306719890766876320662997459935504506903183771049463880870676309454357891028692314152482250663594405771408745534006439599181216722048059086742407933384544473344143022887583580808861347021702947393155089706061303421159684947495335311003353951601093729653485881062521063554452153663228343640888032117528462658131731441501494438838558985700264495529160724325970707169160133737818000032968013174150257754106538921761642901286494047225175328386249791750228452299234529117252417749389135604452215242070701044039630335599765016252820769507304618055372229429483431854252976096056518293890110247951391231759388806991573277582033867645961571411629993858169771991013092326207436968727318727883741234843596706872069479052692444569744408153039745676990749343637070258844623049862763526537719358613328098789829248252648819309786922671599935893086846937041717584121858715190210444818537749586821345526354963825585359196946866640420090265761965025706849682575135718625685716210289940465540779566091608939518578173694903619012680377323255431125113296448740407559709373422907640157727135527778562052845133070742887143222364758253232950782723658607611225421644366755322303502674501468617059259816272084828613662107399453503468652938368853533866802606313459218927439031122708697809111072950122518123054407443613131038939310347594702284505155297356542373257277082061367670838152543786989271550747086795441938148124044017565274349062209843224429067800660977027215675280998938767321752779844442981651125088206331468295622507090985676382908672303692701828532876751251939304330090284273347131401735241385529934282170352083789114872808578728581810795981968394387249078825947708373766870347857100775701727525002231736393257223497789756977801417557686917570568864144444402699404331914258593768816664319997870347875406137143370567130119113734854463896054518269471470061143443456254122157391590980175549291764748232697402562388819780514673125328345255598711893991848101822449341626060964429239298752576691142115046165462472054674783620889889582228558852139188175394153431683244255638266859903612802827748685168891625255112388338695620963325887203336534011959591139641905841976415596570080586214045712382850753902111796989898421343748714432252390614889084008046346481670374442705322080344993624986907357790947701367345990935720028651633074715569381917147334881867726552093538154216837502528161632782935749615559117796529658031017852989183536284010097749482702157851140638829205248220805475314055355572755214273693527562556455868428657931151983875833796046819911387732302097430039174526726324236702334609301600683679027981382663346749996834781250489922095042667864993561924602403446644671533766151905350412282618703351537258097116578255903307541034653516793096967928551130160623552044353128485754065201926628672680368452823186061598214667114378787177738744575338876731916595589207482753748397211354250482404729158615871997431035916950683563417095474819531217162855740840220350583959205733192353474989572201945632668661245832791606865128310954268191001406816102465670773710963438681594884883165711011419912457226978313438344840325074868788727845742785444683481153355577955736108222091482959184851069101315498013173016124699984465559535862675538698348843577405192175290673568503277458789746576921862629656097725673860770477512277756041463831368218487177726141494232996329372622197800276997940106726044042552650245766286163415070103364114562512440633547779016683375754278709900757666685989952557604100914369043126008936125151039450393824708344081174408051813085580748810990203496583516357771725259732200317277380925239042084771995038026073726341944948203823583478090351734471602256070231632783191234514776401840217166071582155443836112887915857678549957432695865626768029308285263514136281945444264938592595931003023244101593106117824524321845409249649443509711266084902374729091720867740623978773754906488845404745647429364545052925937488308557369217538931325436633014117530603636732294869932994255481735927586564524372418113727498191675044048496278129678752720404731040930998438913190724773688625454948734165260723035286103870725247153566442628934061327337436008148675685230328665097123418386509875404005586087849054160630038848321623824092974041576857832192365188105770614594803057666871986670801218858838547867228442815020144878285552921261703545201308297311153310736583578959389734647836717578260503142976276635353878368042527194030855166082389060000682865063504581689036463865952813416908546975992357948333051587589226243974686979103938235615864191271676591126192276676126033544889537675111076867483283730130276275943592227823138819783210531871616817393445015194506312595969091649699346099619849360999150082284488894499991421129186654819173648453346141208767338467178878855627911605857731084228985637706521743776432000487418267224767487692440814762688975647520888114132471126825791079271501379111113619913508662440136112038472344309739061709750792909968658886182146638560482218430287772291833811336465016057494269265031875348492556430735113459281743213954147946620873782753713650369299562552789953910566412559066870974776807083526978435477875966619089125535372171943328442416879693346987780721787788334736141657365099954635882368671543924520585525630023381595846374855586582917558384666600064175008594379735336767850111109762619372941994238764599967903982293651384612512898107617027965974056702092287590334955681697334808266967750042491841697475327093558802427676344550053282251965004919887143396821702297950076777967245669890395959904712959290199675036965215984008281670694202824631780690067824551095420185980568004077706918879135459165252812906968613546705624780246982528871600522760275280384969422758400337507886495247842896110607501132084844165359314995226066236026932402799118757785124289851842050797801539309645552525768112407751388423941846012227635426590614990499270855213739964633917235541206193471614130881473863923338708186635412199893211990475381156688873732709286623224882617644439562889807267715837295522954767003906778260398488365689837270479162266632461137297073403445535462820924776145870730301686366851120352377189139339238136365682154080054790894686952736368004776100909339331709366194042652965328863488812099522772062841737176776144138599657670177693644218963743469595460240055568172407823338468088199667638553037892176488293042480038768922883756786655949101503733063053683449373094024391402115135715687496623394435941991001404816827998858734889289677679572954881371936390614058155570326340990808970975546178860616710924307593985145769952292509532542049837966869560157655910373561738572816876024971555998559809607434278795878305486365001993741061198809382795733242289577944340595164909269158714584272794266527007339060166352630702154050523871124980634071338452145137614317788280069511991506540183558255980357309950013148591114101529136041609601000608636476868868588697166519971538308979916985167344305537814898898918370756889912059252702046823363670504034755442197288260489863368878796597897625005952836946868955406117474240329400625632187361910891941763295149863840213097408576261052240712186725609943962146795308831170052440635185651229249247164468677036690982134970202803697968309519945069490584785286131768505457949195884886517079964350994371234149706195273691017000503876639619955726109130512565984073740591294002719001417463638864461471220026503201700931585629385653242742382569375555160505439227903061409434318254117599937953738281532353120750994986494877365676093123475513387653738489203563071865293115887211845928415163083613873739352032014508289486696051296282335832322580924657939630626286494430617925463600769305264934993445700916928877475862687336099712924826706927223698385659418933567203268955727153555346443308351600097034865861910361655726243485361610716951048496216427896258466526450444956382231328112356395227244900367015018974338112882420847769691096839395437288422288493793218509847800521089508811208571183885826787266406541984779708234862179735803841826597912492046701363747497880015513008821233308156884916811125036334457923174422534952850963772781420603968488069451341290279163389294397002549615386379896596071489212382618279647742753285240604484880982688292221068996065436201928773942782902297626381841698478428274143039522667113351787453818368373116500532573791842047386157615912132789174299161277155510826338130440535344229063374620845556544068801676643757116751684359344298469494476557109126317245247666407680347787284563348538519447365659465471577077851308458583034328061326670664204574196597583100697804698153927538346950830086009562784138341786066668193286902898421828580216635417098567576937524018146766925209110457365055592749260056375280551547377493472860101111898427122387525927661784916085250843622114894443664173820349739611227497240565258302218778237958994352740558685588478332082811925190343520957890726361024953522103510160918619358245362533484948654460786787749090871240706834720422717947743466146388717696109129731430566054136584150399999351232182532514932642932582752594822611692624407178437458027593633781182453210758957383726842868854193415137184460431783901933499570478018977165049998458545307885323613343258401969668734435965941353582684479952693253321844123373750977232563863753713720193726785515355564354349838007965987668060945707719200534387719862968597858298988640847807517688220689008657596190373184004942028545392221284261494101988137586257815272644104221004875983612381544001376566028596698922335497267008275832234649569732984478001304335788238926116157536013788954546692463473244268491637377134871810153437247869043861145246615892067916069112479068460380573307072290998010985033260779279092620318700445765798267713941657258698683422212102160892833304729463158893509181945689742844641723437996940221807655276476979913264643509455290349861348481469374518337104222362056062605527902076543864411483633835418659817605518036088806735174124027350951483543660078274512468704918049056965766209740552990385544950372720418854973064588395504330546476194791949435271901217765025597974803573519478592389966442882527126407647083735883014561460372382567573912608659760268848630376597241278955683833611294697361883748839931740738146938886711966444723449100732664384788270601556631804382569003500925088791032595352272287179585801305276928769290766011884611544494888221614598362945365176159256108650118679393323965347867357042098541385077387573615419198239467292918303025812372009174784400611894510620787230938285905633830218612066316026807073531135676621919602948480235620368814661289036069931624113761062166197276621818683542422587190440250999056381706809015305376301722091542407611133590891117284033447317652518280336105087574515946722127805397564479555790275701728393284502110635119406922526110334355240616139441884873400180236926046881170247563834736625242899465871909151379583241401175507776631530229327471574790917938561150025228009124712796689124507154937212384589061970118042991013405210231919340065405841950673679382834981797503077352606421478978570012062648387245100274457923132464302290986852398958340500094915260820304156678109990454191323762293044789222775840175872042581330487625662331976390836716105228810770084375239043960504433517865298291816713211103242780995516573884348115237436646943766048159290100985685927217803303950402193144806083883221016432219522122484775244373616107153074866146770157284425823604943728354558834618806944502534003180963679789057147895340749960184477688726331815133024220652151498196565072191128593452358825908755721269985273043555079148231230749842757504427480164967651395881989402113806467877664034496391097643262565905079177020962664799442030478198998455024831803189975603963597122824230270439929562867486517281944601509949684047549905269667633274466528857391781386813932558439602137040704612105136402407763956937691307907837999731665104485716569413931287574290803761026705225011815194889811381626355254986160947264038524666667514150187467489893635094567863274780310918009724847382922914028894061849022100744829774762604846825012792472797411241862876819057715097046902294763129061469337744815083984146372760247545939662253072501310235300625272869171653790396177184211431849711484934228276462700204649346047720718172881627310203175334704649782259254620416667315125543333982114092528443958669128402939925706024351819155923644600893430926028171107029750766391347403507039598258599092159384884025301806060962159880708614745673545559049811342785103782236864081793914475030433062780751423258935843273478539850010001569763797985262469325071231473351995972977913923358899707198881128072157351145306462799807038352744071525551760819822177465774942670960582789373173362362873536655229824547189671734785331852946040435635631868540950930791218157976906603577218806960550801671973006697968079542444899157360879603738788082905496491843157082134567637665004574563539590552355639639235482946643040577755176745015164305247838392336889855900887900722621782331638351250312412187570442503356177097435352113170909218015124483074753117583181098718247972794169369156747297514537247642954882229705920611709230182159369938956808915703637017636081247818860423463815172473439317804068137512811182176920165025947196692746389399587729724072956082580130263815382909239533898712703427020276759712464468184232023484272898921292384916564327417575180864486456171795524669054576805528492161682443429542952313250802768577898211535212862561749490458880693697353144110056469780145301050278538737479720256761053613739122542949445157913060050975607922902509530335369948671280879744292964355928318651370538315579877579056644726470428650860278168049127554914056365362173307746420027560619008517608673932512924032324774327399382947091428307918052868570480551274139025200395311291752655275899422756284071260124256314787601861115585531584169518949857830645004551091678695719610640613269704935645088283868184021887920921620056848262830511619396774067466447795095108442457810584410494284398543418585656522996058845810300396040075342687922221935923782029645044565380017026349474747117124682729583200017972029699951621145877464072121687275207430948860427826394009105886675760653126767734322476884472922993209809349497983604748971999590939233150074161335928099555618715044954503072696644160531216686343429072176644770623735524291871862946285424555517993220964967991503232425447910668806341432655952633048133375644869396477306037529478786663279848993943709908757574456706789694770172031414499951029957213311448653450223252449453106915860175185553296103562771727966444124273828431052512926257313308054191659523470560007629042347894771230030490984718220226445788701389184668728115087245566937833417452789935354719112927557378369080205110503780732819779069610647634890734101873913006143229106479417420965609355432328068191433472948006566846749109987567825453301473969568630139990192396150026477366222799474684588314633540465347889507032017172631165656887473272285966315852718983619334037200935730308583400345878598318556239868413452300151608133130013970811581595833100632916488312293890678418087286220132972253168763677154983350033462709558498512841190202519787269687440909587249813821338802289800191896350846102357570293819490967284412674180610002918171603157931335653614543719447503178580443304575264361121598745212787817040954822660766210023079340877935702792968526996276065228896188015337228635700413324009557208352288577158138744133143427941113891177993631212845385040470752077737060110069143335508119110923934803867441174380055982614230675801093643436983930065558532279842200721678973151215081127977779779544191211108570666348560457837977622024593496905584726980700272809896614607646174928793807815239239419940038252218605499457109715364619099286661288896648877837132692934781770823852320417950468951750471255987276026227720284287480075572801395253995420414768387408644318593272066775424374027395901963491427877997274610360352835210939988119907167016071770711536547908251237462969303813095622219322680830735088406548524301396677697784919777903728263235643302966618037600103037258254957564205691040656128944534896918107454607308624931768651577018233039419527898978714940117366889470445665683947058629324866012463262150476756183600611356668881247339847313126461145527719729670530906389462736646832254095518155518365492032521948007664086719210566596030646911767188105039115266430220539807154310444251826595101795657962280061742087320483705533592884884696343175089956096847543334429266078866786518533078412974051326933735036892077552809776639009624559292891991431488193871061021437751534457233429725475039958317812314915979105030195173078144990869899708333644443806813496749281136042921372523525206741365111870383449417774672482566736464104438331321884913980025216902714237488962202344640613086041949969748654796071874943426182549543607916427494137220680902268432889820013692170268055890565122076480465860282563727743447673923104208697835395991704235631544902250883540142613841716854254810337318720700926987628705287767822618212899648271137316316706163344666179522144127413972122072137563285812556032815008003049743349814773710127474947807043428371074030703365254748655224706396206496037038225176518238483767866101949420798883092501985307105974211641520061846775290224328466787120312367043273978675243823854484548237225895462952105046332706208269758303564594065740566826951627337237391121571021894587013882824351287529479725786467385866990429981538449066872183651945231251015315519345851949120178069841677283541492616747458910273748713843631203815079327284571836218196824896615276421353927324899552559224159375192825402673563463894707195276147895516059109555918174781485687020162713388599014249123665532163886630277077533308630667965182762835979476633348994517443141724161772945776626455884459367373817593723110709806173838679491444777072052504054252826239750541629252328933269008270573105514453927857519072951690325956756012042655955278483248969490677986426222132708341453543208867975475636493533066981363768454242693083951461751231760564899695148419772439619269333003464513049396659581024119054137053657105218675684992533518732096823197540119955104130704979827644194107114050711681837149509901469960062568790191050571939751959145106919735918478574241878945709501149734773156252751460587202695975628062096258820329078796604852792931554755680537054199521642040967091299181100541900778658589741814421408197122397865583541747903853486942969163673749246247050912981640644163672533207606080209656258568120116363195440221609309085502275130795304281194443334581056006794242366983976129054695244299756868180317533281683240482911800192523381879274695968869736260903558736296478125798612881289612999837966914670804666047651744960143249938300560439328978753846561242268437010276259655192922347492253724902311633376479086567437413653526665986997007177125020361949024444070348007997722728149740051400997222060182328061317070867086767212050810710452280974710850739361449987122844737186110372007271959026312413884823312492207188253193117909900639473753901559539714516377411280317553751531124434683351495669150062463299947632222106476817071203814493675959305831999409484022353918791119185382506470051313574807875362137128504039203578001561595700783244795421726348958821540471207349036879423234667613147542425267472371559219252125938185372082275412923231177793043492806554655359534036510547014627244972334677330688102752774326066260400440899383212705932839203056208952816409023581104672726994746146906070529428941862700186768536196125342648118260499736404911619737723352020198020717841944890533592281242869096190499089006011456490906156887906198452627894924222628376926198871806188952598239929306684907610239511376386909810125761051070234957020579008224668199411813570654362644919138590753804858265676629256718121739526399052889612172351977431410638736583533394861807229213605661301458666217563507681606131264903449994475238423750401036475699249211461882467988164034731702576260267903509914849635140115898327928134964374498236746113389692005681305863748503128462120610997650074639966141995776975022564043757748919639438438785276871623628645264310045583310915422747879861796821321703130493617783518981720257614474110137070517394411898666728053421926184973809014439694214954412815533047079014903025668916825323137689054063385985545668733577116089667222814347774689510343710116949849946927375141470641507034518792729689081274314302988427452671981539078458844714018620569593955559396962651813775178638402176906015552542295535819717532876100693767601478645957571582383492598279297115502308713879463643280744646884961272247004157612045544781803827298703143519962607687644974199326582898181188533949258908670699844561373968629913681542389336754614790544934544457067506739793141928871363222591567857630589571196255811661238792361563098082364119977424287199996180976964056316850633632822643253963784176275645343634323239947186542562929447640616481598285893898111763141684246010856515653491605997118890376994465838200526642128969565974917253156819512810807086517240168181533359142190674736507498138218700927000052357814473637583840650025878105170560276130677610839697775556865758569902519983772720200353271710534567688431495667087443260699432798137484529046756070830470501793648962805420798520691154685828934614760534206063447709687864603142582759069135478490191999818539079794520192847603643926644256818484668951389483730437589495538788058716511104272010406667256637050976368449559974553501882697199596788439426146328829907401965151704529379971396695575779834441519122900372170867883666721824416096501798661854349168133806924306438599372366596526526590574258904928780796679932434721416519466666118471350244019290696843525171275808618564186486410429885586117258405649928927215971216026942302888696265653302511630915425600325296799318798413627082895200621518799036222566680865711355768598431770331094008595221043643390608605859759687602179221421859222414757388225784242703502701959163802895411067169045170430537501077965103604154721766181535797543674300040724791955634962256841191251248399508690647204723178486347440165385932226303448126980868898789465819968759384539847050490128102755582355583983739661936277278235050175318293986611440019142472001964628734628953805424195881778831702625302039766702099453547027834520266233424163922628652034058821371367630994586461749041077438656236824968916093521269094447177924777822177001311441467293000192486486983803631067950307288988949475118658639697228813831613181758198786940757892948828837898092186107643887737446392732154380247707848693095341593075918116491625284460988622308601195801605765221922232545811511399054454944610142775901793983327158947863593500920381484612709078009055128257832965769921953291923493538606320253063143038647529755420317226885427653577730371719268042533735770129660703409685702888300147993146849706116688812010450974579473883265192611909640088166882670716346247476817577709929738078290891461642391608740266506932614835421778174622161692699232737398067702670506254324724041392799967360901470390466273934702203240026183278716502292330172906543863717935858700299817452895583479026547715700782821233381667651951869630573579876132567259036828712757703487596990604148271178117690060826861358497866846906129341781760285889810496710267808792033231286191753761134054756578947884103062443892478978811322464974612959446569788089026242894724130288220665358681713087531343040509921267051212973504095611112377539522663706737041178730342548020574959449208752575560068916022642278192013371836169435154954673509773479397184143710101380637708809790975630200218604830773199810797282693863461676279349897315177719171985801063939728202875556648039009556853521707639320381701501660616505198350840816371355161947450466396353296371245507960050015957933025689520077614258215391473778622011546235676823118827101356578496280721255817725055532928768174015172337926991571688606434414724483333993074668467880226325921721388138872493944354162405710736042444408852661353106912893027886572600474838245677903261515567296905232477511403350077250789424777230679663051410948779569352839349707200702989440873159932821553849367289756810826511696136964520132199412249955600572953683074062194553754681028681408438721442673875184363702531754321908387789671394544642417203169665546029678552569028781573422399820328620813300779945997796608326818067498268282040093344480972566649794239004016218369121099883176458634287969422752051685991615176673259794630910156836607737406988860078562788667577698613233873574516468367161678042590402535082081109779137367413278801834078263052353976225406397562517374060598812830566266305555669126727684490319985017406883726672552523497557910340504090036538258319986739125527211944638118112716345613675977067003512973369095526239719169526160735409730526520203153266040892677879646008728215687699043582969765044381956110465941280901316392016517739911959108985052139432003305524643103357306294822626478045786233411760462412686685524872092358362553557063613011688543806640525603547854291671241475096289685361181393513399544033205253851793483525944545612149988227965871894870687324033297306048155280752428703475456722848809681520189009064394839927382919459984395153584573562107539304490972394081404677150071222990662385067663566840387026197739893407548771811734280963170078371453456509450712913423414961563514513441573909379407924831174869502664532297746902906630683131326159933995384699671742880739384830452422447718388531895679767310540035000130839954868649553729333564339008358591236281031823036198540036400127477181834139566556658972197036784954220357505949862413631974513940555108684037128887158894982932782822265037639107593018130027290371573933176950209848764859259574613280590334455512451196215988577496977616761138450214146684075904581960035051105024626066148458459967489809608980864102702833051073597919266074307128375324803243084136164108839084440118518753702969047334023602756181095611762997258968125153315488707592015790762552340018322702808564302944297121480419079845655562967914356942583376886153262560947822598207597255697483366141178493405416909738929669371166322978868102674960856282518094822320503389047552814873947575609696952750205412734262096951254668376570443733184775994750840340784752855582001698138569373540718936322429550613119594216100245122204233677616223080005037042199463797462710595276251735383217037980321967211852248773232338913607355561714438035046350052662750962144279941852846863604307618250642619895480748508349546612521772058595392764325247041148601134908845187108626130327795479701456771545684144826129195183872669916681798480946144462935560747472976760333382168924553874556129141956057703979550160860139557731106109575798589353105112184522910164812102534359595323900477600936686135444377019074143973725022398451517022916577511228360483904270554423107025613438739961151370079805433038508551209499418290738559058153022374488685733150571030978146930440162900335383365355820421133786272575032468257213242519484142213149287155626488646555656613722554862575008816908396201705195995724225056289705839335328218276514255889497561424379129699863366919903235698546816542050491893062848627580915016537496593494788157067600301597306249164343676684956710202331887740771465515320845216175993296663600734849810713362868083486449582780071858689663109695353285346035305449973330097228216126169235658586846689763051376901754787042050594736495958974818312950866265632302469829836625050884668535919457963825102053100275703230782968952101314515912218759599214507393651726980035093304878566508232965020194149652563212296191681868787548069483941225791843714641723979905835668085905882205360740900514402771696662070456948919222345340810939046027094034484490053699777354511071862721978995277792093553720202084024922601383631547206363629977507940937167215220109049352584189874942167576899387235927753811178521786174883586762908784999553961161344565676557367901127813349567607476017149659571058258554094192093886289115518239806579083162679409744821626343057223265191113149961214829372215753631374047170488446852443038480874664515403298336634817335767678050175584395152221413814214047089430386449563902482254532836611918046061012630615424116663677227467485232643858671365632260703040353296009272751857195100161586583757460948079795731807884307765880529790424672795529959707837172354439627994826678554212799857333561647412573829475573539386814822296681959494866590755801148447814774837887329820972188799032672579123434821518262902143765708194325334382168997443663437602926811791007658380340497912630813621665017467928404523764058234338416173349898964477464242450878852267966946139926594401535643520949143582806952477479033468219039549630322982878116704859894557480190629784299563514612051356607584130472287406517366252716552599420597071014172777798551671709483931603051886329684309607459864338249293256820460375785753524390989934513400740568589665472213282298868312649428272307487786904670917650644219371261540726692527956046024807741131504804919418467539930245087954275316893067455607362084419154800149360529659936215059945682130968375862567332905634725266992532304688178465010625653471662216916704996533657327268363044720791107140028209270960523579075258918588711744672424223024077034793823761288549917604768083929716903807975962487389953650290206863367324701546693822134929011960534312250756855558926391514500901381262186066309038167739018592171283496637026662988356218325822081858899533126222744714526900367246724981309413690030458000504166692474855889169169993503177400296776487678693252843470688737912704852876078817158195649906566151877506344000437027756576545610578360136159591652060703670844473470053351216229718955722461107080024448326377045869850824992500052253017365424953521707804833408713661700761131713139660541445399924557836031907034039267958362103797884829214076788954800811424012854809051046879132506939999633303335775438439972117114866995270576626400075449540234184402573425701217551544525733143143016236606939153109464483176975787535701784650923550482875010926785866380244318494966644269243762072681304874499255719914244277530594726523759287869811609863969227528431426555452330819122945506178523868623049939099539163637398823612821550004731920392088836495166399401871514024033460286193878308141413467707527793289473724526222823827401562183087230305754035870258111938041411611754566764967741334364634739200458044201551933172582790341991034296188846229573214021126251282551353112746411962084868420001864993155589143617058420242590688904137948197788331589757719897605840248349323477564676223828888217422361277849584212295899071668783174869101091888566209236901655195672748713931221921380116250186530761030452333006201776668055399844495603937210445545795362816959694901220044565646352236490230877739964621704034328649930470329056707064642927310539054237601905984034401083907898447906498239288295293420498783748817967907644105350414894659075578123510778334232193691767198760515639494111645131495426155305768971487831904501608541308480155971563982882969881472929706107691706299828499030079291291967524356792060351073494978569356465879315564243400848136339129678706755828276207287057736631222437959480035687343381007347003506023561462398053899830789119034893583792995394561270548047305354866133184130038819003198920932621230468657580518357694578266145436850226561609058119835677928351766736862977055462838698903521922120775299332616500741272828790968020539427320490692025576426852475978566917443964159326971297423239278503371124034944295920445471739871388005036605851188759897945160547291194498556234458067776894597454219241577347104213849927437148903573657176822703591354376206668486320659207743850374430247238118856602871450101947675094694646585056451374758459165527205563899298034045602338682630615669691634578514829439095121397876870185397390956287502742036551057357878522521787979935431219692787725547980657088799945257161814720857207233804119290204216360537719966381856168147975943444189278016163170153877388391537136648904549577775372777738307821843672701286785353018728078998478853023092658787269590108281942834136114266363492822198603958070842342764161452444796865849500175445014415198790226180383695772559008015815952344380786886698636593600747223885754286435997837892126900466362078092830300990585073590685199118965534239163412202607019682970055292739837548902039158724581782209785368836027724318018314084354299251576103186792437500172718760806645749106136613874083927862565696446041987514173605282904281333138192422477500747285229003332236066659262587932233177094140656309455135668693217303936433414114859067146003751383948054897450761165284965023775709412300763864758993976997868770337508704997853048412109436490995179922050229548207702546681239148738361224114155420569487719879256941135454931896052916227458351948546352921643511590421610743902268728418952047542017332841886954255300836905775012835657383485333218740138692002357796485075259626838933739181834597513460105995210728587261827252680534583232702475364962397658636327246723249645945523035479815969473189566492113058993917271455553610235450941697387660596594138463004334508014644948061164499140190463212613823140764865704827586881817159122604999409860895183412705036694031609945277838013059536802889622314872380408543876197962767232193287072697444028232165546459524068498325718468773719942216250185306121897685402625162714003149038861952292168203783700507190383983382490490097266791722000227925231867977409694715458217821138581204356461257778224545048279125324564291478402103717498691660481784044658924053146767622547642204016514850964889286380277634522601501906447931319645748925029261936876683774427927672005265555143802422825078436039761089048180485514483884086042879811104944690269639138219020699462635765988864775705709357014921557057121503794037878844392320396031890968645056986391992630537609785779230882630823184931661606759864974641565122683127119311266447747565570663182838133505248906266089120817746777196033023298824052927330987856884616812046970652792470416397302211743296679910717958126016492685878508818618733268203544499861429010661460126658503379684443666044076406530615091217967259447494420961031938023538246139662073935055495800431996425048689797989815561356724864155353895886375424373387571815218707855176482167380342018929453275914549722861770064531923145923659596928918747261972155014758488577137942394446225296830917162328798865476367552418459400425153982218548770497195124299274483465965867021990888512084679554447191847171646650811485894741000365018414469193952524924821215254075013599038521126414835167879066845558278674366026880787776369243938635365245351577055032181378513473083194122672998120351715117439608105834891671156517787066923886336862046983561328404462187497956099623191884080534463787848514294541914185586299803932538885001353321751035288238200996600745930955448312703643856575359725992141047077458436696292488430820487519442783465228483141883861817896163074197377034360289843751202898703312555436478285681579095255633450614456813718766998922532397852518735141713957260960651813363325402772261501120743214082463177879026122423889614815799119963183130545976791600058463388034365628717450127298719411915532659621135306821883123645671993590213461835935115798220679818844391466025862616564032985505966712903149645084223159934947058065063686221699858333106823078780767723850714111736088601307464554504180541043632186108489118012529780294523117120872955972746421115367895449627482317859380538573518012294796271908360871205147807769746675880346027709342433400032819605370667021849729342018269286033497182476056025055598260590710688802177335654151170944203630809154430065759052244282596097695822983461090442000035921909233968134564875191508821692461640116534839497386197991211288550698399790516307183938673181528408550501866481941095454991862296177902863237597946112387194160068073809439033246264466392793381109683540942751018565660293256625009287467405406370423624346783841126648716920447197324357073118799041865793500864379839370553528224653731046386942083192208732368309788566259522530477458411638796259760966283941294005142902653781616342424432068618939193063544644847530438720237181072739246978583411135833531291541417750993454707554458548971888237477503250804888952792530010698157269594064501074790352634407233850672157518851672595619024188804157792022446955401902112113542071111689465749813755543688212084607180669217867453687006165184460605401939010145322478013823429411701753097522961685196386825350434504086896235294044626879686176697528312320247391099479268173110264911984250699450123329046996702325952639098440591756476427285205288153983749273479988505358492836947309701230987086103326664116380356431164035576901338143442277491258841651781439592924858346254028006089979223642336575386383596422072405367941898746781409526341121873650552226196078780420039281961872852103401370682684952709468869552566472656523122153206979929810820599370674015442995101425615309203585058159634230756494547239966940973510916495574382084189738095781728118308922255526300535477292922517186502872911229988776604780114103593644661404749076094131902996947970893213886807576270800577021009681449517987375985265462067808413846415399105827521582184297121166445512177679958913591714458062779507413678870731650474004412638963179034925463065084491662273550206088382715886242149622984267777492683656103309226151471926675268711355449929922324093063303854807230361568430020891225689098855408369620756542525975176442990294008244293509260958104768854839334638862968413232353101146102610035387537629580982434519113497485910800617256184222368232656164333102608067657762157152304727456620341622638729690350528551981290229502839777330315330864645294696452106977041160078514357375306941193798953799749822806154896714638170154988579163159075212475482886931916371467909031805895840942435193295732562123790110353263035548542060820563774140801963047755333697314474213933776593155935991023382943291286056953966469499638832130465193584612953191193807922500350348797024276529789878490031714842774754370302075119146129730939675651684570204176963418474258033575837986438658180360876340349645849153945903502414761116718804599579280761107470762257937174293390762253312017985856724941780156228097460284285993957734526068943376462514487757382122051828066231209898845975942985244630053424728222406194891348597070164450339601611640175024569854436949274439866377659612226364463076750140741123758405071633602384378966921546262282488353551368803262416327915995197869281720618173659855981090090772141309919028698008483614130060182650922815387216786180198235580851315458190758660765312970746129639404115874968102833607806149939775725968638961974403339911810521190470746165274287996227109071056310712505856468770618182356680181528472328522118675472255986138707964934495612324642737410392788851251069666361818720085472338964632552657556554878879766833644000401664725679068225212597804284458984460093715718316164703245285142096761412493111064535524906878695516396336459936699128039023589492743119868219505105068269421322090301580436701951771031595621753070074956944132207793550464866995788807113794534231869737975662176231039026001736027864365733946258193570889335960699246756593764954398178014505409608084596847752335115059893783803650369750335417075690192797994932381191505924270908184428383269742141438782429112554019974931877807302667392031535942050407200410562505008014952866492247739068161295771896100983715247282360846393734080614343257953014661057841100842085669160912658973899693395361633520097566937861478876237696825645758923960382498639392923485119524006634783619416149802867832667190693628700963835040632468069325351167795265442223629025621989888639534853178241754221508669818456310636439205429591518315009507314319553934526245470454533306456188514835872155487839415172792437908485149749902200470316463953516294217686935951307839915076322983367818870181709521182031061296811925775175199324043866790157055093253924936668707346678984713983114866780332207007025935267504192059536558018450786226907797390366170987890459641588832837050882429934872804723906189408176509333671807681202377106990254214135314338144580020156185572046574779730320887818638867291745023547115740105648138690324771660779520073737164655764599868447349169630639093655578802804270398804837914962965253925741266760665886940642126179221005556820478241711540358560107217721666235321025644462891944023933421193561612392459920699034620365583138225724603318048867405978057713428968602774703277691631701900122261517055260943588806683532858211514738895097470914560480504265759537774319784042337510324065036214397950237569722189329459956645041662585964501438242730965309367559343646224966172279398438724583415875965780337762529700580387346005633876895078526323285540486978236075763800952123123222671497916962593747425258570823574662290113858652218849456404507748658713975911296159730504515150575559117466197240953443793029619857959604315186714339335107626667602147809989473679187713876697287224217506956081510467743121939825736051369397776660533969354180813316187641457246986726846038084286180943433224078786791232206814243729845440784431886196585075427246855915898691980729419029204335487170547971488004462165502241746688246213188861377668544053252810422822095669179575343234178505875022908231669582636809058378311626372473061609925963914799771666888602053902703174153830060592750327113632556469520602281114007110470491394658577149682216481083434921828992886945554359285922320792240030003421829608408688910959584696353544924496054074210038789466026703515321515928614276777304977094104058364318294969825161565891141077786761116686427458320074565615938991156996756621902075826839533545122337709786488161137016320996634297811445750353561876262376730226316966394202620291969711473591219513093926772353948097053430898994164931975032494963278472551968412674766638806016802196826280254168178522350764946003628434196501150137044116816695300027331576087953232175405984967267622911991549126429193922727364448838100247182198287196604973139984257317912205700202283137581667770314041857757637436072514956068447744436395845529158843770571639756363063610522137199442204999961444652841174213635270031059786422831499440475768717205915334688404085421036154640712142695345165019053402954864899327458428863715577277070237835890672314926749880030541169506941397318743128255357387364245205473943532333658327457216602391598661241336889069192139023341045931643544627583655271481787196371229416377396127321397233184288942614785229328179572483768914179283455613114696213919703294894140388417912129967827469355103505300989635648377970071209928583500321342758550812427728478653596804767117712349342709811506994027085472650681106141097952980177333714206191899924302588983679971713574886967484040575337917165404436288451620809899990065553717136137588333386095285384127869139080997111855992394997892069363408871694852939069905446664249519536627886995472787867875225806924090350575506235983747751329278433638881065694603643898225988001951157360859188439895134392015651821547181206011619763878580971548682481080325668464827069034525214771505793248089458892080786547086712802595579564367391096935868928987423848854689456458801291269864847013025825726558488702159039927724191947694574847875601082001601226861080886465647126612438638822484198042941072163747644427784963913823337342230487983095912490408667045627685728933462264955641249509650216172844145365278510018942557257532659438867664802449040593423700864319631948405566373538104445655927227100600253860841019856170824233811315605599808160131690443616920057790577824324290898933160973296844615912196214771851999375482251360459807893328057873659136194103026345866867618313009562072802162242830324029166899457374933272381253990474842202606523682183632689344024360174670047846270007447872326742644930331094788059791002368785032985974456969340690529149213504441689728334939056544463003404906524979174765616032720018667090396666181986560415045588549590546193154412469784366778206826254270816347115798113199964481063625855826680158542481343023621386313262142978115621382234449387770202086790387577606110764913617571991304601976943551841404725431030990755067060028970756460277044226307324913359936878499482384635126975630753240085701951963973305263293984121575415799249476890127343072848833056152404762214940224077327335092859334071812088227516386416726159734897162637014247781769948444304039058192574956692233592837757841529741497373363665788588672849376584634386009763026893312470068226839024882755516696853595469666831377466542253272442241593067333566542042974019423761221278118834081221277070828762939309687960498671759544024952183134607181455916117577085357973045112499282485856009439183814677435432933367182313620191583580713475258367686436464980737490684788287462514620775705868496615929089623522338192314388535682208140608978470523702728305525411289360003209988630205137848205305988446375467324741077085996909179050094067942066451028867345279406868009346370422431047440634822258191586694838090430784676772323109806387004603110575527447320837391500213381511853392075642327634182335805702598003302229070581010478199285874929335634696949483688438031397057857721001390272305979182672320316790622978344452600393454572134039333120136646774048997864366480518406121191561678903926840915909379180051494270726116426821244316336638347734940593295490272355251605262920761415606184036223345649159613561986821408994467723619132775913017932416607140248129901449324493401135764509349920785427493454629349900097894739107910758091641349115683553677778529016731072316255531807188148463730014087947266817149575160610362717917008444136297232236707399430248673243505266529227704414749074493666887832760392415414176836036683279519436417338983824296454375142906475867967827375001244182229635030427965215122981657704096995100940525316228184432510287107914479635910990708790641350363455444138860779833058364256754302752005965109620892515225727143329025555294399907343062452481647384527444769701528320016163661629305816963762682962071004056529006628869310225641472181102725823256875172131098122042361204452760547901746146312119474022890276943083105615053246675521072193178715783150944606639956445222660404839960462468964550914436254558412909002913326733849344255974792290297978137998129327174254654644714744578237870682710732549727904170511978372776661545914785228303011262968324928220160213003415592662762966648175451245740808133862329674634010398066807868014067124532905372837934649371201428570026373766107645043281438401361879851254826848389371178261675640471198463080317988096084845611730041389505183304203695518244549777304941804786842647921868468664556070450547348393658880960939617901096823203512294938938683251162516737330212216748283009982590692711541247913444584873954043698383065676934609097615904463167209525328099421270043798594316647548313323803170092978650613614988726540918545397831284094875423514920392334147403177031479000378713350092994900039716898462645689890531995282675687106805620436531019784249917987705204791788654879028567915240964087473252148950943317736098384477315440743346618815390336663087370798837967367943011454635765695321900294340832363772754752938486144791838480389744750366290240064750190676530595313092959158754580106279914712280329110305301900611094128744571937889181058774094414882529219765307155211644965283862509355646419653978158028238830311652867128437204498223289248972397980642960529787544127247091893193718733267087154767682228632111885182875137915546696324801557916782084326753796077264092156387192165067350335542750246416395268626544435476696529537717275763049999006254716325640588480735838107015652639417351873649692973150074105523765115661745757913864135356110523292212500903462143170947896871307513335266266614945391621324198752516637367196066211668052142983764322717407520504436755536967041266610752770352285380495034984860057539225576562162028096708345215177198757102286083519381626309153025273802247740499312821179034516409773105222280363877459084452611514415282585760268198488841216054429361586118594969897620202240503054797718895164073236370424045309410365344050884737319740179873185237328599312993716757763648309422779451655283887094601860044187720235950579903037754730895680664740300333648853400758198794238025910312694477610478408215538447840336465809931226018960201770964843968792714312558914164824436505963213869373231769857581791265928045142177668045460656633594188072261311606085483096307906060414586758567365026317765091250958064815493292344318203460364451280887055346776111954922710436784397136754650292529691041575737673608874583750082937474341103893322130207006016490639898059940130548869074446877277418200582407601397012952643445809450220020000448243249979490698038020516549393582930507752738175856767779585815877977174508379233492087903601566725056835733016278492783338166062770426083722577493377484635387934239562204103209815151371769984616309820022077599569332816929274178711763077485172638171076493215178387920143634414418066144294606961989546090735396322723842269414989425610871872549209759480281814596303324093608415697248014883971642504779739737847280394173396006760771606992904043969861620062274192473085615948934226898329050185557177127302266961311147552508923019755852605764471825584998091319471911664916087386926295431217629678707668084705314820793380742260618314550141519860915033526028483093533392674426126405826958358361409665576861583545566931439170326140138663706810749931227999982981217327144632507172959836670584194436147974646746999757970660594412876869548050631400340033330280415138871784696303784342728510813716145176104263057628833526668909690116838707979110704828128583007741501667403515387543447846280290514014287943911453540375467159273774212614882797254893858519261523571800705223852260050322712287614553539360669545601049426204150010791271154444589005687579353286679238446074563163931104647254454184594473036797576357236716182852443175073772452292765981956901650630202071754124168069238350651940389126007718414261551448656432659265085051009222114039613521300278593574515702440408246287875774947703154886053000297431316293097515284466755558935878506733667618262025997544226920486587958552775799336554504679054963845983330077685600796282876223421211748839850532981934509592973459918681068139527329153386985574917782245631466389979677981735274694878709232679363981850621650275326977145452470107789164409934943502811640104803695598682486711404530683573053646679801545986440486800752661867875509032186330653123527150815413893514022018308885554485020354386796226161715553071883610541584121998354376928793559935882633730379258310114464498510272072051670591158642589302158792065742167098000086087984093541335662505064965638198664625201672009820687400426914306829230001800793986421191441446861026928332548987935337307391827156545890576916473302465584000848376627909822458436900733023132245225589360426117820717540650353486653672441994213299919655201369976555445076801885076893862973477337563342009529392311675407203151527251585503034897454232724991258345649333318684512706463226082416430318575072164031802341299304419509858611662785507375438066558878247957691565437067620717268747620416071352804548813597564560692890435386930283028045626052860243960071657149426227998367283154112809960961859048429066814745482681083739232103217359434307051664831543623918254461769331186765790047569476429224354624208934204795106156770869845676229588921917442456674322688190212695978892113595520870938142322945812329216508497441715587896673441522116307864512841374743992961496151357289221575529425623277798794704015735811195359290997169290300887226370206957761661207109114515439675076124656746379542032181085993813059359806992684659655656782286440001346020853773593063467885922619246511022107878979982069317065490459554633003770130133718553922488837384258144494917230176834140649758764294416666665645819859889619738970745221013901770209078366736207863947934455657340503255089728530266311060746237780539155508935003035417502914816369592563418455854334330510562688722213929839596612833192979121698556038108443542576752393664090673706539054706313117117312002589514590619224192619348773249002974191274062452862324447303490700535322099891582831203012691765318300237958125489257525049630310560113906004571269108472854102313256090511304262531524335671175382005056761655761013479834039311421746808080328168740261761920742200651356904361451777657572645915643320981992579498615290905619351560450305664027363377754980332331302389036643498248301781363631060554871447369609282883725047743805053809332770626577672289435651719229685153952625329018153056325009209394862353512344882568631859269672806317853577326031289695232933142151847770341737041158657809064797748375768949538157992838990262941628922090692030332106389815714666367655085431756202750007320458491401358491820733339479706081593284344305912895809594911020350291100817528957570749889266730740978916195430922771406449561022075299309203600164813140591945026470051137778973744331104440933465406320552084731603507492542164047103271259320715023885900668862439014663048103648709838306747298263278512143138970790417146066230011946541997887556199454203729882568257627074655531334685407842575816477520795249107510072544352829852271472213445826161556936293633476053808596091165983185418478860837589301053665783167266412538864746715950264867021269732189851411378811657402520143494315702529906198712318824739128999256439838052112588903992595562756567486202859516241009386403210830240792552551501068182481261867705812159234575904388410999205816217530216940795972846118550812579186279575238394681371576996293612983428421919828941288173439358867330630917322346995304106167091519885773112476012522438703525476018361202402544917401870683316671568879760348555241250890397754395296626084337495013566471755265000567195166687660303687099833834923102826683134620542238469320641102892440630963834273546804795435416364595438928363454405852415170161383330844880072656901221371350920276952057501262475248859377063687592296027443675229752550938606433263435091524818610117071388452028203178619796548364202643880228375928317912585348121367343270527685735579871590646722926796232721877473882147673258292239556576497702922261237470416051102356419281337234039049634861597068780180539997044583452477573874822470290560782731813211832133451682011982659311513144056304563440340068009748622729292834914983448188601200643944930091127609643065269725446660632803782358066207309480202896118729910534343393916287625322362102484771645899143910647925124640619122039324590919403986235757114548052694857410544140958463071358498079055615086782062457642074222596008914521527599774606822251689780327950070729985934403569778844014671858975651210939248749533878068214712533072675969548604308138689381084509993987347465907005756538483009670969178553124748307467064969148250920813269141025930100349263893432777999326370199294640055721774720907290420723376266662256680185353273635897705408940654835891080218560070827334456736143825632364091984332792028672312295375511224049095923389255387126814236411917033819083792788797667137135585633958400801950596640954090360117869849983623391594426323753287747513005879893665367350310036543987785337504070580867775550008225181734096265380867008574815694615956838858624078570892052101376244153354042360402074169884417818809025195869296191443649934913846475122549293709873580777555648732407509148375470721034748519670012361370919427604431379421420141952462597536516910087251712892058085461922056678146094886663430816296921466825690062871261422264162873141892720319782988199112962387250187615074086038593504944667721471710283000529885528386849596801025541400798267325716284939182550013373854004034799188442443783441139914749368589096812610575535422161318950288308627677442821133395288055140541445338262047196646247402415110929600818231623679509624089238160920057486505430662533789807192235359565394565069794034626067299506542722054656764914949424712139876654153278384139523036064255683424533300262654375802627817411839404537669445394637066178855119724473401159979995829040035487793090250947615826345960661995605376647869943878749385148151973819706706565851233830616485426500153634430523439143891477946419740105961775999055299130158435570914186005566774116191554634953149027576239444236227968629217007518183214040874132377635612472850062570290774351226701060724033920057968739538060451462573559188630896231004725481461567864861315460185320332340620035993324591648259429344285528416888705749664087477071641261251656602391802486399961701962003332023223703317822262972754244468600020504377944206511578054812179651574789254947769476115455468276100267918655244733491558172713033799858754799804054308289638282247284122939111270805711284699088697725877964429555400871553926257411934586981523599360051660091019865299238335883679220887185320792769981783914442308494374190095981742863370157816430469648949064469394365082047414942690812630575274884603300804189827008244647709782321824346903570545463365369145641062104962751304918449220668349257554774441217085690333990439488141417323819505412443825161935135404768982147527270827976894243576158245702629935647158510093248441751420904871006363040746382598391112005206021064839044985642424427731375169245113134599966688219130133500136662917692472879570967359298484975895942458054319747801305194454316058712236275532197652057760120984596341246298055398691895987284274814574600257229176985470636965635373496556922172097874037760783250219620112382447519177916791086240788188210262304038460911449132704779266805545237439455842650087080926167914962384234428748151693910136740125767083751400801700441082954996515766494561368790088674329269813964198143717447177896348971824509571355434463835734518744067559632756225777756942200958427395727659703503396690411187343032415016719381215942551557753526646104333664386208007769872223706376241254476812461904787695866857406604924455129436895290880197119127304680245679424921785008560132460107430836622530186169825200258181984467634480214367939388904137179166951076072283163121823114379054296140927157803121496982733115446754309794175179852522108678073423799827949373527197793601411638472007368887205282931710031957148956999447062639581148371596970836440012639918994761466000501097027095757814309140954587674571577765801110926859636911767146509894372147897984176417493854808714088730387388230176732909070466672265514747273470846563998839601723942822924744221612357058438743667580995374759609360766612340935044535322043776602594983345137937503572916066429123880108216998148235374074269233893053054547506740105506027758166894083033322324473958302863846769629476722704942299370948966522700907607810813906956591134959651028058877581377357918075068148543847362190292555391479736591439326674028475409564872422303819894854409066157402239377774173914877969010689851040334696490297070959351353982050809257049092247462801477628116932764965592009461045799270787919249183745338235517301971917351136255098467696739203158080115111820260800819258069742298887379775150093016141896564241702636258811892246586118785421339920956209407090158236957861440557590894164606613596084245398261387008776360012054935155235853642058802913448398428579480215237195839465262187340428422806500754642844749439459426109095094183792102169538824218949830072986277474559203748372087856852160265391161066564880354011165738160881339839995160125859078628799354127648386485009114105948565000852244255755167389920761048972517981330513739875048706377103494226549718005669977506348986926645336505857526553966695351558561779580812774719357709209096454143814235711893881492972160642895379487521141577651000902176085814482554438059145561172543970964610751799091959580367153042327469650706353712017959704725196522993387804789833789487954046626358184538371238744068010910595210145981787492770023912830016497748293999949014437699013078881596116643270695329713355189304675208993821728456018802779467442930710009564051794945252948121852731495242036173685949018568125949545591699614963986437801927617585837448863063964701276697156854513355496614078485103016823023586763268110583207788988342933231630296943340710292463065891329201484633340979645033334852941925328844340842729300221422378384787603332837701474527566546276286212713241672258124503144112433953206132562914754669214549475493997408105716834074318355621474848165489231903092976561532747989733936153264543603011060338947589623289732187090954163240866410412124758306352443632549653327086988710337231184811007934138120697451119526641449226493654767354625556954394113006019707820474078226315064813720627150958379252072194637853722576835379869797251457043781002393819739644458847170573156784906375915764837760116634173744073206796495709143134493315019036887692928752805516644377033573948433529027647794995628277343440402317257526985476891928392547630723487582702096834768763567321139182531064622847083409419687867401248066252578401329675677065067265129069535634692459038303071941700465675902775229655553863342557036367470494646685919902119527679018417000854255862237425670122185030970753604393688557038329050099332450284578036648944215704120361018107626614482534370910834618206040920816024360471092670216191660473764034752164882763155634341216136470338070007358242669620729492418994770030337387302940228093305509128807555854155695309111525594328532649921257070262500554923050967903474528695152128657689990166545185914244501881707974834434708966425625823104603271087158484129321743940161702545426998078261193947513555006292919684955750495341859366021194730941958788499086806502046666991864638486131215963831439203693943124261645711015410776311120055384138323750104681381351950483016490140074343944126618009233372263638283885410776941994497286808048222465542299583135511233497910340625959978377834351992150238259071267500625233425084523265554702922154323737605415518723360285651909993619545722485402321609790855799092815443407354065048631601454456568663392509121602175638289464640521747543046481562195674165491167414556818411192897485674509456124584984309257723075472660725070858184633168594554046768963114285673013429355113976675699785744818169602442804882411658840758210007515934719506865443557215509858023146588733062047366676090860195633129335719226389479984823483840023601868122564873087770419035182696441123885657911999585450862327085243685728941173397633125953982651948166372820784319185451026593071801771142528484346857757905024569471314542199211943029171695523460425468390293991324669124443710082179172617239022617513872312949035189830226682688543971884580013702363915915508183341089060122416532059419924056042245360323575322900514290298113487555171305437547679517254212098272415616865914329036840795691182453995694305547280586194968898807212405601194245338224812996633335533362999560564897391854061802718325136110946110096392386272783397420131854992395998741342130796502095838256374784817026364989141325682620833875208874168490846329504711632804375495598981859426799676378237184324345053522137824943841464280386763382008000599314530976846687944498378635761982146762682450853985994310674815446774317459766600934813545681853374103286798194074688233651949049183215344258540407965199526424495897022712660682606033060069788576989805197488581653967240146950886897605734858698525739671597220985421622157043183155746459872785041223095856835045149856011081810093118696371924810068953457495337029252081491127131529744316179239772334385085273432012691508660202138516450890836120597239332803395074313917517521800439861266701539094072888551570759363779315598937995068309879214175343723683280410213151458576891344952158269481841494547741096478831196828602288610076494958459903938661599297569362087569637898773562173921870196883968961870265318064065522156960777377340987665726830016704045328616755286707394566901421829197984511957975801206794915997365778691695500070097715459583692137001104404806784547884959018348087769721694357466989996471116286842069915204745147082262535477840939085076409057973069987535060007855960797825266266713037852725918916951437585502798505077924914795871931307492596674437649839999052542985410687357640990142413372096326662508317585905026952950537827522379816082384296761726984993835330209105547753446395433218480315573348482037803190840952226250966876107598350145530323717779157632705218622390489019919136174147827210821741147825816712019081959559654290487560914056839488098701988090992480910787037158944689045849579898401625989197721163442405570702940447886653241837184425355321811479149889258639109420532398815767279350994785293378517530936252256293802045918537866303417876453920795522468502078611983161850904165373625644104638324511927264618806496706845829814837036049544537313652751618476392806327225749861709022275900366199054840065946106538086342631979949669022766723620988530789882048406660736094874810775887333861639181492304281270021531399247388657628329602115923606534174609205502561751491344154441653240645390564454505255538347969289188175977001067526054479812559000987183767946036972960018357201820521971782963388351169940123872677774989327761749210865912932574400946410064629055051951625342656533295314992635222121510309409465264294485820455865717604693949207464607027868976662010738595896105395869557081297021014309326359135407670037895091889271092476014535940794577469245757720344841298805792278460287375600891085996712909024296003858413686009800255720652269434941708008594148883111734105226271886627351924988151744273549285071890993136837104728546589912611076305995298262986725812796870859602077672556175560581329731450221853126435076524128078481081481199173989740428816771782142975208195097495107455228840749816209146368700671689978094649488846554806299248432769139696870797357185672434741186826328983648129931747445597980668403098680561414986324506074219410279274840387282799219017861283425602764531024525130774089313099906268982824670039378015068164742423441635059558949562464720536438979475408508925956676848113094461887473219681323715377490341923094890079688260901030897407959581714537278826098785233627882223601563569599098831205092624404976880691165688732588907644858673939786696161914619912948006510123255455159345410140650056365870588295894140102727652456425412531537450424031742399226952404224721027162449121935930361013144108881834824498391788577873001394335274077185411668641974538311367389823844188590227550684987917637901075215432977595234090425439766658877308454525871281623486519831321448796806034184967189468312295791518908334556825634340080338610882116670556008699051887178178349349396270572996357699836895668147880339309345136354994622814399508324019247719565665733401855056816887240247401603942160168223532912818962174354725239612064682228952010384230761316699050319021694023177248605273094063510513851207362136787893896586269392488156767084767662740943221115307026912709319139117897852500520604752966205639976319489841756739286623365301976567530039804897966116173111598213155817400169904813954316242560993420170694261484689525587222013059195627537363877033801779213679383253050564857038123735630581785061904316722876522978553983794012016055074207925884407277423341775303711972258590411335109835058536841625811383795822369201885010247579759730525701927699162811913620971176369246148856784204898744639531816556693479212539653745959064009465650334173535619286862201665605362394603286482087735663336546385020014339763917048305131599381423557583078656781797222475268195996690182656539954241392040961916960447200832779159356885680261117065060901450977583242694743838610090212164236326684301742203496596562321467575763259911926068558361225393712940612141467617974517284979583763421487284593624022284270518748555664265094685557211038780294718209447990369763352891607984680149727443855705366959121229229502111514117889116941065730525560610945428821575306288460330881261937526541399769191900547319928180631884079737180638905074292867841690222623346345184984180095132115290743711302591360711430370358722102233427127355889592800427490007394496892752233181686380702547629751109733097268139848006317834768967728545291114122741092131978046037120776101625106551561367140309205729788576565864129984770764704182921637334515745558673035760611636297434647298485657296743848315177628300170191551416792486093189132454657934202174958525126778842385632861707364239516998775774771311194739696909613922920044216145418487436125886847167741601022172687603271114253031298218633332217335973475589840295936415772198543230775718749207118265855126521378667366487609597806299778736840710621770149098733413129530372619531402560155821752133555906866599805578823143399369501093789363898899458804119686453478048660630522489376659504520069542181031109261558642357447919368746984826337868411720182955203892805165934996205839981957613862864053755679856408911667149341105278834256367532993890660393887682018104286946633791554020618947316842510661351750047839587140564075412465913835536480119892478741068249928350070027436317370281510606302779019491039819871951896948327893354424560856102445281434717188391076046959346628310114672900152724123663821848785919697449027750527302526499821547869728048109041775588164992673599525590270573103717655121796350893868454169332484182786789561070566513617614631299113997262504801276208369305811693241384617258493422822491340290912654302170448838314883443660231560912271945900573916535261437384187803898265432299500250669757125459770785719483874442226415317362886942487244754324383848559536322176848387343679584354325933080069318408808335954680728865447070365692882464886150054521273144101500544788888858949039040660573980296961434364616456660931707446394891348930137728644448346326761204536279320606257139718851653343739521451632948284646583760370886931175323843764207095787595686483064722390569767914427589544297412557000582188246707156848628010950435751191660720238858143866570282899970790760512099282021845369961844931565385737651152345041398731601518006300294995894426107000336527877789807164170453830375164370647229136098980749791265430734395343408581836533233540761532764406096516903559459087403370210144835449161309909550180417205867252849552294633284852634011416306691143748548636498535435500875747621153111412579015835041750790384603747701792984629607926296488324406484123123959734747424159461678107710135046428147696686475914001449581021907276059460755717860255593832664268122060004162254045254517552976531340819796575712516524366537811227146194491189661476949256427075599742908599757892626598981662571614143189531169710454068180937161797901544890127596591580526066953823707765903410355676911769646241861339424442713040396154887070342867009703428261008874056192175476620457923308291162440369068332417437998135984996707880429438368993504474237509195166473946135163191690852892495104108288871972784538543107607111962619203886517564166870872528324810261897556421827355063625304915734736971945063449757072468643720757701269174353291970753042681005316915635790238134154460489309358765408029230858170529288311526988562460430882031794066897287392800863802025414503872221400926098790704202838351438809596807603534166481315056611857824978247473214928875904278211250460980145675660201618849772046844291312215753046654205609519016194961006605051820338008781125340685057593255779205445192674034727255162936042032484666089665687347124840993717744328795168481762082212207106623417000338371296262004460349852421857841535303254318790755273702782683960194706989056243420530481092294658711771637546907875074420858851071039799536441194645314994679487452968584968864304491088977897851976059428862101572963890228152709993519417620175357464891663124774733245446651984115890475250425694380922697103128462365781088327630376632885513553893267813129293109376432998870399064722465516588111816585025952862002120550489535678901331645755153995961839194849476681293824773766657088150849822681041601487894610721423236284490191777491848548243769073266469083583947817870180506272387633444467845466852851885850097375329634476556907618337810502056134304329368471357876191595884252730237925377535972270658004981177337282382339360623025147068292136763700402901279128566845593027112228641948979162400673580181211959661119167943072413792539590944785775762527796128249191636907486295115136427464076953040851381548800222221770223054574919886856517906554030675939066908674590161672271259225311478074547409949600616446227152650611683895640292122626202896905972267811477777433550262487884203625270311702325172784049209781779507996476442334261202275927957392068029673538700970546910322638139239432022343027012624838072964242339591555153181953636134475698458254596122386768332293047202451770324735225398291422963106942308135995969890294298978023546777630578642760977466477639122479483824125681147630183836490163231968229916866622843487575771287204577236985710689159809200243664498892110347644972703224388596511148286056979397658943989307303503331348930383995234878539490009911531804132753504106044102365012652760860966863262601118641019567749058481883784895264743976414918874378019036270260933830912567189853759923382996001474942443193353746930677640866315717075995495329477492168533655361495177487515051710037596296494201025033707300551223206946725559505522004723106778592655989907213384819854246639970498451035171749817355415112525374059933576287764188662911795589504476408109466619047104556559608051986636068696160583960398469660298207261139190440752923635406809035154595048199736133353952959140792320207041225903336258927726783865910121864452795193251882420145974798614476373143819723464409152609223480668349482563617383910517189228519535613331403272850542708822765327827666201330959749860121451834250241693858250309862828555151953702187098125147888817523581268462955079647029616013651096912262573743393992287914960647038381848449096920686167472377476400353482709621697909630025818077500544033252696238172125470176837651712891021683715327828436177551219150793436043401567941589056543471216272180993410994759168816791678325500324642132489669462109381526155004889070316331002149230282434555544478210195869828173621184324292286733701358365786979650230900522330769377015865281039115782547165662797627064520781976001341160899816582173570185769342078554376345857990822974570215707830364834277019639515563833653150781729142506569058508603117352088447834060650247805862656466549153534103024048966866545589273325924751827042158117933353446350474472536002232149855155609604051627564261951266145231263417159125554745657799040988541810611046599126733073852599331941855382953371406928216250300898019588359202215215631023621509437538049968324959993667099786673341120944054869881355922974681302476156752980218382209062534319429073258132298086969440797255174023743068652002377664798800314975226117182618127884915830289088807860904764269127614592644210243483000847486683971916306080521243386493090540170855673179966305113969937241800817663053398576426690975404491184344501181207034072241039160635095919703761374048867643834851996597581205201065864611645845466277982935677618794199617130543258194927244435901119452838417780701279397215094970432554833899088529455544671496721875854179860552722996137599099005108981447829137270633476144475422349261925890628213979295270720854637149010282966623374898523096590053590049116874638309792804814848909596353184845848813464175239300532294638071574004242177462686763765652055424701348838816731725079426875955394401266585317286402189889209338850699457179932465006481935749299395551613664689627749256089098577811439700013283880001514240540784544459468370501818055629458225177331523910425445272574456947723933604482211863399675154504923114706256411180671261008062925767106805229383666015427380987438586835116448451732473317050270431257754072918980260691947105555305759519252409734848489989249112841772753725894073694001450417909345422907495164201218704929339086625709264286294880464674144555380543139139688077446075247136926516260253745065800314769897750753853190543570386820074293582340574881240192988689678300188752073464590755280292012332580233991775059681152783849253165535140231400991962827664431687252077392305501518780493301675176382310451380456395599366574166209230079327007908424940469152475774488686364497469267392488367571259367091690540085973059953908622096157472340119993742473327729633996046988708975804204394219747343044419641834958054508330212782671042892570423427907547243083143194813626181876879171411858225147281293463309384768584947710507665887280742116861429027844271335328153215088258190090197279167205512442724261981018466884024211967576011885477508398921397252777933968596994091340709841302152579404155148583786816173723370681397206384716827374435255607899306883003702117360151698803969268331764304207286361703716863486665034856150892084120010826363231098779218730156997344696930650230893271512362972355728622099254082765488990566322393938096066478864021613171071272337007250324812938700245702576720564274412885359285619531489874525598943104891895165062657601958660700686643022642389821413852504986354168365783595876521675252929757346890242413797254845315127408307557181910463833542799874173540406360807442808622813785433651414580449702197855026892906675023417839899589664578819147861941476043943843562921618111375404008791497898530501310856978274678185244696318859585821872769127926005648138052185392494649011201316490663088812925884322181092743298079837616366589723784190712271743281235653266123912536715628709667718760949813146937657632246779472717079317985300030921258663778662027431475058438601974494068468919019162394471963465643801223736247475575982712015963433936803155326100839335096062694351600946509717244033172150724358639219040366265720837212268708144606998632956847802534248101826430055806654994314311444074152971739597267475629061659091136181963383463004565235108851557569256346068210687707405819650068760709868117399085764955467535934511650558854692299128919687113562413423834843282375988014285955725770351133709217272857703948287427502510487793162643127455919325199038580657467141207551849032271972091445729045091625294764010464704492669043950646453700145735546985556655250585292904914175254795485666634238571416135037531594775656167982374464757317584138967559212780968958587643138574790734508813402394146440765996859293702533895561746303381095857169098993775753038090700140707017586316374815605632885768264705000042216163955812107028609861117432400885870264654802731574310341551350276389298828030106931051142078063210094750749779796942923834486648219422845459663982339730187755367654316953173114036556407242440214306585289209738262143815082453955400349753177947382002756445486965106574660747687752695773830468557313263136874640015762229618082418947251157994836314347715514659924053014788880707648718551850435292161643907947603152970971859911390189903162051725661402993265779124278611162287883852300811468883628898220331260992307733390053009459765702012829643151163980157032359318993208944263170990542346012216380668378194718080260079129197378122204760451502839653109946723829223811034396482560209319100639411970238890866363479354090352654612143301657570439020663929383699079347553315172336197862256188570853190103722770430208668712484473839062209264036936803798790009971447659931053056879349498155513501427640133014145907432093918202417632113256438145016764936548543197538590441564301643047435962351419648256660973360576984422908531004523164452589837196620903082299520217833925266234765519919588392681462828876249958346238253883862312998847255290164919059424125787135193206610550263985224354184581200559435549955127656203557199560349154592142767320251820871611667345394752694192017901500738261730168137579552503090957166181542057041206520141931836381179283442358946716450799081574341528823980373178366492763956128076404586677878163142709052881378335194200976008637411045705974762760178118501622467781295863899156731578354819795904461917872755213551358688250923153549971019213370242212299437503701148925617399834473736897171031858839648242114098507455170314886210643108481787923545155827317316910957719469935362268098543880479344549892021065330599898758144836179740515480787829154284275796112784882430759952707906995228047760240344579375663998523246325242409438719572428350361896930578873710645175729102113744163984104295553579356983148060505019069161986763247786338106205201727702968950137049960989908530138834693234904790531385304282221719068787194839034012399204103585036039980722224718251836878420855152721344217774222531371616304066328901765472537187289577208716056977310454991692125572793747977081825447378257085333286318381005914379296773052961942957803022232043022742692829238431482402960949575787124463364441701702322025456972144793816966717856393108890964497145163002186509999322122729911783537832594644706817495046432796675892790312913126552694664444422285548080555698866086235277668034722122421331033399615743415152741813776193145697755991488951320047633236520919556191106760944213343859972445919714406614552602149243809167270236075938811909523030372009546598147881132254212135872161105520265088416727540818554552668342556228655075774264396972362945248923224360893558806611043069297241079106015300669211165879966527538722316357387769845370389684443108180803751651157524691418226663829673451850719716066254724168928452293349057737668197212375107897009329155617268703308643723038164889013631156245196530289076822151962978558843434214799272742238070042042704679088521090900099430167399355527524623658989577061125181447807402982000927887247916646281843162242329086859230569997525910144520155758737593485508610330841190548466263864225219435507233582624207006422077734042827537466824235221089693872707104067745094934616813384454670825989399748931457223230021573249523827120854674310235385221017345039105405721516182668597175968151568868519477701058126384671440889281475926717516141783942383663701373575734597162832337366264458106147111079961459181030630412825992995913928750978585913770406385708216130746252817637264189449134687396560965863942967804427396076354722770398592288026552511903203919682251077781821657293906097782207575182686879142941721838622043729304495309314243958561426422094313263567676500349450209736436263225482330655523675979822741628398901145743800677954316133901820324349930224434113661848547796185033080409984900249090504678386866669911862203610767630895435131382042204377368355112633225312478635961149256519494202817736555283484975108972948353419345050654481354549383365372588045094924449768129595850894650611670987381823550582894123128214845642944073296139143450657862768714294513675431880923956854527549410231968231787206051361687630011362096142162245216668041213125905894317604200133182662538183329183099754544568569009255214450606702112856876148946704601557325174410002735704534944794456638813955187764232201454786693051247364518441557403743800553315776567175076941661178784466562719820447480533744669571451260492792909903610647193176325499991276086530680927760719712687196083175209123684991241337699101677874925223093356838466116699408539745257377752053953485868634291845951040230158749296585630607715621708205235856209086890727586843442201955064843976717397454909219215992906931281920686789207811715825984592468854084904955537356791292923311098410064971149899929433699857383486523760507821929705625600380078208415873464188106572588618545640887423473558185704896636647083879759059149551123530749181595753005867425872323455087131754603718297387576843694724476943630188744386164920707333368679061422449341994419753805502437767626041737143131635229351328940383913061462331591414986874770600453176664692644062068686790724322499157811671421765151967346326290647473529468620417090593040942216081012202937331144526445600013784250039699972570910525648718526162750216581835039165121562192692035828253833622603325292932685442549144297106958961292561918300478746748159943987264967664380907273579127786857122678302897768620393254709939324315108655207831733405535919348708889933017932168270963892687903821307321175786494886512822238173190718385587604206370772061513798212016059506635377549647897783802806046487009979948545976301372131421745481735859233956049481791884638158317612464085601371770675931804548249649651878540786756754759521782856431069065240022037762100831018864182151834993880132841134263644380389793528952746673581240422305981138990413208939812012771029322017750734051526571362994766929323455290168653043846179111102237394308587429593341664447833189382131216700349682157191261142693072327134246755644169067846148295206040539717178868444822030820805451722404686088225277583236017108011105147570651988733838126693644736704087225858639755795704132726771569876153649673438193781076626680416060958165840954924978195429394930038500625298862423645901340753022592841692542673836079981283478824447674796382893545297836100621087014336797487280374227157679951585362488068152940320645379101130471711877684605632492061470317029999688542855501714973277370144939117355739284409420803408863627137051303762616022292167227742537586122554024296667107053061763474920588569568302320673598973454648401729185246906949562496032869228226567704694458572115458686855105707305884256700120877663633530739596786393818724821046054059649346269033954970328271579896678132110333681502924691298663624210115536093678881273386600428252594920288562540270064727430684284653156216075161845271419028840487429717411593942997543082865547408469505700246716296281023191335186138049166846178529840913266006877806256806332585356741197340100945752757045363435172946185307550877672396133692685433234738296262609129426651276263827303134634653382317425882204818318453379520787077061883749638842832949076192362938616354174820900237614547021229108614567714896631163286107810701492666695009185134652295329437283190025389845788013597048271534769933211862833356645665548365160831040431342719648905935986489821155449898431000609834106206336607070466592936009912537944405576424070630368074918765915870935533154787313476168174989672612417947236247126935816114521056865803112037045872932852789352012698937491276805280603400668262680667578730199799831901437088611940082993336799176573902597465002255626880433949709179226640927926878734220113238093852345306603496791141455857274605205673646121486909579581962001496532074039414581201718146160660277300366522451253052652588844884692038110884104235650366531345124021008588405509697997607715812337407246673006112505707281510303418215532877131839696237202489138905998802776887419660528911149079919995839843853230182227756444716283464465684710659529175358623163323877826649282774599686391091365790226226103497635725821301643261142748928845222913849104551093224614791703940642401061136629726806725177219478519299355266024876849249121064557942589050715122618185082213463810820383369631012002726287076672007311645209690659325531940913219372904311982509703616441225060525960327909796912899708938948750483866534360892923552514324376571122495799760204609800492015121297241464734906881824744091750681792110571185118845624670112428598232299465800825501742532651283460329325350560047199651449392723268671177624886441171395102988375187401383379886586855601945191787906029368749967402359245798730352144909315300028773206608990074981196648393478447504149119586762828055724531580898558706852243674624897468609793549463601777953823473774447333550283830341112647146989499840855844198600558870654811897443301175183939585493481803403237958596586769174646399243685498388506748735886174391761082436666099196401129424184743979539132800032513000865846898035881526101615914849652716725668858814651409111382020239911181489731366729377748880556159800306439653297904488209355595924948325651136509809223910140571679853353885580790214821987631738584009279168821046198250265190579349723022750674501129019568771276280279854592354858419843163737017593567175143370963798751200772291303500629403178439716510309696048697186119030386383741482439877799214605262551842828438438388716647424857452058072678096113488790223820410692568196874476411673948880489103280739039953823044121367873045631455197116493793633939932363271577387394759926907913685008612507089474747319239772062524447952956475718614757803040134648381599672477068671925163470027907515023579847642261708039333942479884236150173597762840777945055042571352135997688365063371309119592555090129405523388381857975552394503132410649284704644332604805959098597833942674814280057867921646675150010613930439393392921176641610944779612849027975141868328883435086551343150608830668539120988551202804388197630995166539281958038151174112117552073312293820730443711593943915587754192205934346150245485096986060502508693843193364582795211833769528131402623424638464869462761177558141498713082272905760572289138875979282763643949402987414145684597894565263005205391698607007979685521841155036374460469656435743142273388013383005447340139204258402487510583363605508833112699822735276199691658320142657017940296580449177689442140072093453595351300734403251598887524926925125189977356619085388951981351917119971083693268064101828486094689417735066256185887308756802823663124149435023126337307668602972835652239203791200825116652221688844444719997285509857406023327113881271842523408383014842827976227033792816134561958449764517771705142496781311038875825081501305646119173864848829966525534204865262994131566138952991326768259764115576658637713480066850370255114213543484681978724507301296932137459295759581404393653937664333703764709296239006836229008011086643202837638504818783572265730791967609003677045856284130938077256441677674925314850722780447064318692403888274995846443934688269157543666092087854530053990790463561779970668143403263211038081942100611907613437703162231346248550078225835210620971578785709910714746398752611413831826298961707844168844079080832221807484782856450375774285730284198331042686664630640927074383723073182977375472030407411085221335533458350596398655047097744144485932956303473168805842718517309944560092956084151222462217681161694567453968249563444397663593225039115587551668635337543429647753922501548688772634004802416137233563527179588910882601656110180433566514297510272505054421924360109587483330617542001940838985274962072631318116448933763578901644773715656478778959531505154890373100299450139559223082127535746009232619280716135052304075533233338968407397707663757587294056432777381677283827451914389346222153336178410210768905611373919034395084711539803630615971104407995439378033757994197535021064214441294180797473256491174630645855028685761882311517661582106570496856334350099182290053631315675849296538290604117104098953946807601057079812340511889360979810356974445741683237181819284694492713358366175585244924435451591530313310141337213734405691577333128254781765041383318544449857747641672079294659022611331534794211837720017083548207791518233785999167995811583354608910245784402577875544643653710643349607821683630705239014695137418798969909021825135708237430203171010900405882363345490065338753548534864743818669570531814655155135022545778368871570164080825658351667425392226496223939215398989160370640735557899921592648078989915930232940547707983106816671527823551952257944856110574534199621532278758011931413773144177032655149876107837172869425691320201527385245792244448541128915816044555402819319871831045356407002260132281062267793174384532708657239685426231759826299409930258117555710831823915462448069570019954029218265811308478554017042223517717585122179556830082051107302975048982954979864891447916142383143931209962864521358441841683456456161094437427141352490583029917041869250462384641059906518300744096231434409207645118666331830880150297244389375655948803690682623233507647921609528250280640824980270780176969831212807634408746993910280242572657838528730957881489986496760788978567337573807476496609063457526377817787490360240529524749231394482218242541541839796835001683668267007706571563782305256019061510670748516248360561364299728478542884153234960624718044219381404275349123613061449179580622386948849704584487219553235674346128511997537763781909456427828373937372505120961606209142486986062739136522724785873033966751112099941420535146030602226598256400122629517914678332194358751592755136914351571593977033610543647820168882416814537199304328796969632523791808792645229990362155681828369113651152888464473615903295543816599093649864827551380809605442743513303682727788177126610792700911007828965569020374911161204304151734728240361775276679437482485688844954330893680277960476444227211344369506101924534290067497699447922390400263091788261174859178784772953344214903953362634007412558647299332667215270622611168149081001671021866663944434875995368959488123282624561988624284975762816779883924512714043794319148566884539401676042050140180379118461044091696028387277735496530186530552530525047090758400594925389785326961204486667028734128280046936887967954272932162823625838205938091050002004379832716114703452694915003955829485039154231633817969114320086080437620598384907391597028304044873246234333250957720334941615273893162545873905966401886295973559414888501336594717047803628559342066042145063755620539752768886440580847890498274853819512820001361195465110695644322754480870113705402985471736755564420803748898621822007349331001392376801145358560803781403101567400006857654678678812055437475664887023100074659198184102216809473539784159482080328013548975264540583701540210718187723829779539151003803063672561983917524748047288918143645914195249301836236363488258937656907716831948801228217573414036141173931475500806810227040789782531214888285626215315158652402100419819539353751747784968581191911991099905139983319015938823212434723195123629675853445363664919885187859384466040211056759450500985808194070251119813473200993157990059986652412372424451271240183975851921758232905587280500690361587209153690795600247233650735216843855504563050535757505352872741826576845039566367764592845721711263377895185266772935428177930016523748181232263654164045460255129862833955137014465122272762741786517134194704146079226462713748271190316407477404585737934310733733945994219160077820401010365572852068242368907449798550204224193297892206382905202321037838114732066584053736569625188449020259929229852721353231806594214073910978874985004657896323477162686902335071818664119795239746507250886520349790817381286326968037169798567433986180134821391484516980669663701042471624714602638794833623345243909751097912159795895838122712726621884904848208552602005712691138891456016738835406669980939363199677651655785775944586314748986548342601279041246251403619932254357542940323585933839118392459522200215786465441376344834850668193315033856408536644130699795404264287253327894381064734017808923267109858324559558156304766521115974279450730356401921042485653126899694293581957070203989298776076203421636512002056197730512456296666125748794577859755967200125228997435318353778522472109211451807634629873181645453555114662954571719115219568015257795024806983003363542441946230149886778320175104324048068569065168496418284243368120972661285474534426307803478945307789220600956391399030621622459281490054666769663148644073286461937988886638789230181282619968556521131224868167316414807175458780250318911121953298549865920402888750968464635262324172639185002620675325236061025517783818597638394700991745257769302642603741469864757444004716878474828299123266960075261503816836887300928712197615229895378827656861643914957684761260203074797390248896542038451933390800465911865917582645494282991565128851971326428542439084559917564046069701361826171129745869077780901880467646171124508584859773430736196134649326908608470174411277381794688557060688851581250496706924786142798767849342996225800756778272745104226515881038152737449545016880460012158610616761379944938757804959925451810900195511646500075333876681794765578867526597443970691701790055421154981914693422350413262640944304863512500699357166071093611340320594252249931968180435214499158531680301886916592963460986107425122180510423474261696267759700962521165931945008374880762018969044883911783558898244157741700852898916872423030143421531482409691546518370422616812824981584289234433438475768666647142212058551744907294078697799561056221575038464084430316607254996338037377421664528345631101128744794300655963666699856328723337967023798537507286971295599440230061629886206250383010363385829180825579322393855827608423111495653041603376241334360143059871168131598636271523286387532665394599100449932829024051125786663758850307117223887281177403361287869570827163741572000743537634907697147155237133119225549181753711372330356162576600922279807781371260409617187460851729696911064091541964760289020000892460169640407346017314735357270417113391077908333814890676781208046745614780888269667603228867053170652957208899865010334811061818854827827855608116746226521285479753877696969796648230764263784397108259978089118073625279459404432647107835509509408379862671265928400494965335288463396234409301204866886068305317371128615730406586740021041644444603932409499871739008380432270060635070476985329592491933720222438627189990729778620658792950759646037387409050716961475595356832857464435450384802087289408815445858347340155492882182638785079713307255246606764726312713490487567551394923661134899607483110189993453275223615005638302401343759346637405579037709173069123202199785559628924043747426627670198571365216575957940833416527391057985362831380889854013673289882733506155016726294306547723201261635837893503811920950444601619829017039422915296262930640142222082464886516613415636175962512143461595977348148254630270011935251478177187324104483666596267887979829645376973463643528049827993417693353948630412967059806190967823976121892143684490119025342254155264866542559215924096277900032673928823116887512169138702575598179986543464714491694374598364817057964882277728866252352283751873886218281042198874381847577236455585504039798067546396732431980914001324151952950972594818364038477507383068629326317772979369206162994307734804983915292087808955593518159294988694959958001471629073215941568418839085037245172138690497663595693600803432813925127537438631347844902083776968028707531227347338545346413803756275985644395532878448395601086703449391983362387779079489473204849307786428103963994046099069024399258903041488317135077507809399656397899739558116576192548261190022332899897014513381480964861143364061658012215935993578093706695452508564615032141553122796498247002110844959378172048405731258166862493477375136269778078135648213753702093538766108780271116267172828678019454493807207432436526557471962008862625636010614607844095143438774444339979081720438027218807026526616148238109087296793697311213523481382413742933850624003639050332156763155544477432538789376657599269738942138858301081590092959431453682801971780920973623127098689794338968422597666347876664342510377425489549046291368073720888280595987167147419252056656776228180365577322480461933051884757355802585524283420004725985132290475130368851379688838434079283648523108663323238438057627074407423110018778560327751596106771940496750430933260407085777120156040612502436059094770450868174330571056798855005784997716944110247363607130320942963678039226327103085583749443113771769393038381489136530513192737221683526867001177172042854526115150108886686609837527691336082874513930001210311971636816713529146419101611951210227301835893741926578521248747321493899732527970395139620771252794939052360630808484103945228081947371585586826528690301823287770216075229075138475848345173046785283463013498430605339918788189303404771961967910791611329869439607564500162326077520710809443056964301475784093751959593699966184678805915901617644560736293620363511641165882277464841477124747885871115470614205174559199984567816862473271137687611866407254767124432265252295034623589482170382680278525566708255024768363395119562935044600928725646227683550482970927290842925820428765952166797073644522982889262964261869276412382932130327277047041308927801412586336491028738041100605001598985117759324655477300422632731269395258752513748336301190103617831697875520716030486316415974363511940252154731640265919677293050877133067868797098171475892759399713228931156072716197325086018005160456022238611394755021495703100785080839067509466860069326709820250013943434680648663766091827707363149569948938390669284783505854659811489547324936992109385573610072827595294244795789688065568572912226044854215342108102659186793263064454430405423052101839650196223867199089510086316330708508174843758294809421184661150779529277278298847436890507876887979404129870239955783483269590819004165648001024723741038258442018956912790066376912732167969745612088877488619682651487737633681714890767622295497635393063168870213092247333128816053196236887515373739342921448165209246742500162521473803683863737218255004163032599881390492362104378315686493115122176668853686320493694938904800930240078399726575745652049595303942314699040775628318770563501269575408317463447171746750699713911214812382322191578796126353825785798991781289097675655044337655471102323409520076816122159565926712570894706940576477731763778651557283397188784386558885784363880593879282159211061089854393406085983668034300138206061093908280777330589888880179609592431977174469252999202893006227649850973315102991120097090664317557799389445359644666219514659894311100721007515017995678743695209007056372029589883700771396332198167678354642698661870345074434927708646370933507542976382240011987668003797771997522827935752966364049382175060540682601992657067058947683802645238436809289908431339526919875415832028947845705148364090018512399038021800533826616070091190758156541147355242738149300267443330229334934212355489906908901824314343125971819182790338011983470763528088739705182310517520888773439365867804562845893316845707229699109588407407236627188376331776515983497410459406515002085859729641770738327494679856104076471006878234632712561327538135805373648332239781412568249354533343584639148238888325541923375982873321207250726107791211818080559409141270034066674854602775681393550515512841369074946435500655444726634024650352467239600483145262534073614625285769544803733352578109434851344016624804110910611239725290779687358971601054852318833629228809643602490058086818710948760713311261900634559964076631323418830842976000615920413895700556905838594271716475545395834437485574133449330905095046740743850791904471873653456011161531827346751016838368186591520887048176584408425838939184542225198995609249851416663380897254899750158190790251376466614327706783286702796627736628549224807334897103491901853374087021006305583483900971709504081907179292782565603734874024376303692059539679066526748789639466145794679456434606733910927706161791856282347500658942644612497700920993028028627317977432626665834546146591026067892044274148452907681097473896587209387185802725322959474442498682935660427356061752119707124730173633309097884218836314322033552175825744662227410323875365836055017513940037507263033664329537679295089181035531731341524781764518001122573516097554710692418428311211664277593308063161695849421581813035358045819798182428364108384572465584543413913337980491435105616310264820272805388313576341645523728907644720673966211706685544081100417273996383566060716452096892799791577753312096230809131239754781623798883357147586247062547386633343295418132656185182138418680736570461758531915305061704832075299907422591449280527650808046880218582870370312917248501634903893123171446182164813667863122911497715548553936927052674923020460385285766182628450548789439598779957243928339197689134619085572442616222308648709226037101413308684327283350216875633025874511200228183827908839629925686005819066979981666234481297533979666420223415909034942538529374095386300024364138906090288145482838776119036525515468064845511309085505109652545266028331861605166029008236680131699609222697601251823857652941874586838873097918858836053310501030040912893355506491065568304225292034981846467674798855847593649192062190483247106694584283103037592992782651478467224663105932956269217956622588662613717953325268336345666547719587478639460743977737298433549051621304141160920336833015166341349224660230262751196616183748696605810511810269228745386279161550621935222212373850243706087304918159691835383614336342070383009705969164155480374160559853519789637748749179117507066383080019106450027379948219247065170525858851106380694406311229965000601496205880893341757581696777012262215070293544465638808871466613596670688257147976471039449574391240788234845333527831657757338494573299238023507866157375576239884762712988867723200876235866143313523437569314797190139493200363077657801596224169478089541010839742991586547585901176959780277247525947779426315461594870145157541659148108387194881573597031024690629854532111244655486572227756779347109884890684788035066277996089945833661808460738280644979557152414742324102148190156514923715359953524723942060537973081217808418005726239079805514418820135348237717020040350347348432414306953750454925074049966093415370905797189884831424844452397845820322473050738872875082173127314624429566915864972932568869973551278279294731104643992309862925494614104568838343702719395912703370152096803517419171214382803133751919171157185256271771585038559517151630670053013422363445541932045576269455802245428916068072152371692768687522620915778158642583746544361751812396870964743137030480309931035720897651806960230922454895138698529278231878113746953007498012369414284182149629974865764838447752039205654294323369194892844351288117665098797259812895818249380977097747615126562211804571744627293115797037580274188998786640899509369007765019590109331399914584401553841187783059297142622927952267255752471004851640781955899121732944244905642650812631535272190473942504829949626825416156419882250224391479708893541124539613868643947179303131141864817018948711421375730159483807170136121622658119295479597203767952193927383902328914430575340979849853878127278331207838096738977795912660914298834601473903568964597642196948121562239971485975100812852057613739472017065053964975278413007238428742649932862446189106601662984656345731930104408865848630828243562311809780753405725560153928910832821848897879734938352139229021451560820170668022983318196089551270986592704336523054421509926153409406808561381016867151016391760533110347723454812158625406447604882745832099009120935828340553976307523653686645523009178089838018130748036023309873610865989604359847003665711064195480637896794341313539794774987252907947539416689725043194332412583586892300635111552307134135661042341778229528948660756601741878152884429490768158030640227904745626735774601864398527301615447530062985188906710058708660010374599488454887691632287612470046547112503626747986841511291952963983836552820323376858064729328060661078492994922101985925443127769550850388667963118460655461719390426693413281905372735471431870250382529841321951880832808830801008898941737152390853455214058617646415171934684625296668438657933010666035631919974025187882380447598863256765750256490285113576674358818265190609224707371169808161542542061967659109958506316148116986711669781528571892997696920585278328472546748055374599661682459844369597174157877565755944009339470906195539509153521637666241085234134620700657260908832032664770127260530698785277212424059447921275863525003033493330651684188095003988393199324998516738633403242150039127927736784345426369500229100555756716901050238957295137506641388908474024748665171782813700933321852423422718419113103953495394378999847014842031441274293518693638773822577637160305394227191303110006460904407744147893421220026585276646773085690026452301004093455237326554204356560922793744621941552631861731478088739903432279835317023245989206010043089084345689434139169685593331928983239264013150094797703554933276250005623833884916671229078258023578612202149115835614858957128543719685070076472987799996490664627005856683616720289895164085952662322177564483945924702105199034801564648652962181413532107480584996890196433523684527579462239231452678968134983504900197132548752913088537202148860229289777631728289736551528427973537173190472773034769438030305735776259566330556735816410586522652976015768787697675813117837116161350849680307771544933541454379369454197466653187390740507132844547840392887625048500414877956489043669255916917637490486452770362278610664259506022205141411703420333898738184421154177838529284046240271757274956866531881821191514349727833990943012068439921801484998714367521815947069582399452990800406388515310400832562380865082573405119543716344754840098978537412752866494170984495488103973023226106118212774469810099019470306227186983905753902130059219344305617183810490672450074091860756494477310113773293298828015042031671820354265724636786331638596800557790987873330739931126012298650380651890869761372936087763930974693949466243966088600181956361865611741739144302372784153440880023307480319596547309798221850238269463688884684947815547640259372812639251984172705635520337629991795196111311662345905167896410228187902910225966132618195781347082540681736514066581518747687350500869009586314975158532691286359119032541099243648472097176173944026351198114513033502774853505752698295735416099865048728339432951292193835975443451418173900430485415157701686078776510207272470797609867109821960881778332461894829253193197327930934683417288908673189532296077861209962897949544137528825704116945166366335394262407530845729604495444216100711563668507685217510880839410364030405103524734105339430941755826770459440554962796352814884319721954954539940209891778005108702495954957058527698409053508570496537911510472796058839505067916025195731041430399440525845859160268268086006828874551492077506967576512875412750247231070825375694528408635659185452832638452117265828549880729179447534862274614913944781051103086306650637622275080332460240935458826364876681211548456093669398781065920381303334521804472934437879140334806575315170121452003213227457591282438624113820405228971625826809579694967487757639667758075327201801102508545085075379254023119342885771801356192661104327950871340463074789096446606243264714920847011373333568553296319996291953329855192813806480488820200042989347307565726683524443031123146106630422652516985531469208940621366964851717577929127169961669131514581193962487059433299007196563284470375383884064720755543979696223323122414275562085725840146558740648912758287670831730239098548964840524003015982647154912703926577457288287708485603981474483625239893297526068934249628289444700445180155659093710857553027986433742299244857553646097953249389496123990866676880080092558337333403748988746444457112612411312938779733068713961140475420652320976806751229539357106002784195629886537440434652058066063071226499691804637250435540835732133943183719706412624997191860152940962050884655712787378011014515405576305073459648428086775911549630222523239002522713287805745203794155733657728393899996714002037939383006179559118936902250574870865059147517368765870554904665889741519610370782780179254356371896957548266169705555070224136691782719466412489887533098568361939299611920827665235417970954880498396154097325985808833267115345422943922186348972993770767625900558731531729833107436466792330676352726294402475322162396011496809002414284262972290134602712356470930791726560429256098646797733679784398361930744549070812341130061253951619254428110646677221268668545753231630009468693731079344519281955626691792858306374962043025852928142877094075346891251870105016295056846313916529836832812113128429980229105123643208354608656024332806716459417639914009274769642751544474629873582036970136968377965532941157652158958664903340994612685737248697950950625411218567525634336801131897716362837332512867302479340872075768882888583548991570388259719944081973308189727550982993670192490588835452611582348009409284491417425696806502434193745855065060112086914337528630001192679758583969971051292236163473957404189459624260785703318403039505598364560288894021161098682962771093958973582177252142912536381051750847226684148685528331976024687264511966049137878830999436845692875142525056584672624174058859540747108697712164768773398041629034292100052717352590790352014228870338221015791650907537576760695993874755032468919727219445625720502720452853637534762306755929853861232604861805524394499426738534375280684519394458801775533363090933139802726623518378948893205086560851480418998156132932754865425469388023545105366967046646551896372420970207589418321713345896903705867951577959940797135055395194022198232752636809214979601727381237249118050092044244317966840216156287996110642550772625345738068819139674604737486397618165284709363999605423533750169613198032950809889594346201490121312010949467468778626752767168355923993180151748625661138202132497738560747526308198030517048488668949787813224226920849060958432987621552449646882185811971880705834523901716278209470963062487635072612494196997804687303939322147143740133834723695279648758634351779458460165620834570315416227648570560229320878398424505577572124557607788389508232174773791334729586896073881093489703974964348896392570055856115623090999531317186522439688691500381630766521853830621251481243395329593448040135768230306301332535811066445839737766692836550180400446978846757295996218975898115349983206741107891417055164622136627376739765136362437424323197724404854973840436655552402977596389146588916412646802086637840404535282886723614993667629576648637566211575350123440412833778509313581453442289329287600980535297502416076326340047010759063351752752782779784716507230464891794240127955717497633476867926713545779382086145389881462671536188945895770367769463052698599535876500601734263533540078390843125002632858723742740331310347985382228039558415901806863000612658603842121922338773642983507801087697020175852614954749465892754565960858972861882840508899385377508164880962222663253603701190368779843988759684983479025038128258833033319674553391693604396873039512069868818662359529902702655861150196661055720936893102769407027769388043158263261636311921603031375408854253657566495909781392870764454543081872237953992623992961270166505902753175943806887960867257531649612096924103848028580093053012372300429553336577664662620993422158273503161160583880261021874233660948936977340680047329919230257430868359553088080457333970866372014840721072282451120783201075515459203553885127551253521413138809711539619866632953481848071632928031318269334687274578615577514290589485037578674336917735106185798713115298826000024106147604631539788342792145023713279009116042030169022993597126559330058246639065130736296522231649440425997123863078374662628907131946520658616318764103511038635848086343476438077958086360835913228974963141835451478238266331997076511393378836081320583593570457121839411456015444983955665905276498843835159336508843597869265468687522771039219926509242725353601575385017680991596263771566099542897754885344850321353588376580768335765700351731093814868722381769356351375751362939472275942974508034864324135578709403769464393555293343520978722721117965551660949448777810842092479527954024112905146082300413695544427510544096919977829919318684716067409093920755121525222847847519642484068930280735350477598485273000469477773980004925444236388034447364763896308094876316607402022320839371527647485155500318809321737206632377550522684935605732644832719576446863949606991794067227411556154459346597316676224954439419615717531610185137926716363603261042196674421884480995806474969322646367708561592055996735919834286539401496570819228746597577870684756974550888160450458122394655533123679652808532949773714731713976048948214456737413260962844006815647075681782927673067673931988242747137230138191756229605385200374120522030523597450597437809792368387337172299309032567988010383313435028336013657119492722414293098139851261616792584299518625795537969937912749613131897653465069272318760991908740826108919967712976905457472171435055724729309513749025812658577042850518313627668627022364632272310615014041063678266013762457596537709106491579436413393652008295303527464607761462754936239218247629443802135958490357844074409354011152277610966720059283005934262956096407853298419140805247517207857462728043621200229591212861960748145564007443673269490342234783025367061524918874583469653797334742366459066481335548164408393905595879922226018455623263793306325990781147063444537181272050125158597228952083072293655938006359682884801084144035136584980682750790719768080097644892407909329166692021448934777324996961659516575818705067423236640120293350353018719488802435615797661992765705118001395042917069270517941937142087794879054730124209541228030454217763957680757643304551051917853614131050942350033733464311871980255263371288322322276388889086993825906082942836677743550399980996618365041021235316272573533976931390396184435704322313932541503418511659240197310373030842063008170588839534191109200288139295167649911740600091118779738213135191457175296026569010067469005044101793332332976094307009027332300184825061968481296175293156314466750492341441042173038034673885820869962922321628714715759875801791720920285154718170351852044202657548297647074998028935793764869382639888784825392712345017055311758382214328484330425188982908826095268572509306856730263716108004179963734630303314040481220610394169004542242768917099413728152294639370111863263431524644747494144771389131130917713928197586305460292627426292330390240334702999163717210750262717660836232646784691958428172514173759367873799299638017489715063866765477570574901989127226843653007101714074262117730027349989066680319208763261814089109227501929537273341258952080281910941383963307605540077172980815338369969821225172809023052538409086008016233795902965488504552446629984315400134705166149174400167322338898181398023307916397020764239274784798680595550390868608658538966757441606174622731591399884951192066985123223334832221912965288943075393387229530502790718998103641568010828812066577880019099784024823600431328349276690926680801163134698874090246162709191048676420211605227058822105603319737928204056748645360286615486389409836974757148466946153802196660545389702808854378845333012588156639071807169502762617608980774226282448045623559616503252778733932948719036617855313305835638194058857547368250720077370437915231483993211985272364440573056574924705356307950122202453365422161015212978371428466702992801417734760844557857154518678811840004814786058745159146318254859590404627646033731795084079284496704261134739088152781114471060195737020754440241445435302309790256261571730453963628776970808451011057802018043144004659294289739921876199056416821540205025349806197036035736356565969604928611026096022506589576309097458157924609831252683400000144960549439810879010901167275497664575195682194244525549056075650486702616803822238944560026755576262618273055093956057145481144106163954332591733322034077488432226725150024229619001578980106009765656835459948294647055594870288407129477543113444759725344956532861580600021118500488540897928797696285489684748325653757540392715874029879107420457280578330777357714631725329178223899848712236325913329453903258297823692813171513790683725520836564057050049827663841178713002858295020817232609154786882301244720673407490209751705428541359078183889730928182133906029786205625314632312648324007823128139524127718963582390236635273493466947381271131494404450593259662220224297747358763222073771519105873814521434745740733401343284768302391738891013948702340713055300974805229560347704842232594755826281454450570527745919771643803514323285693657331397151495358009754396579131428315448457547502483425069332467563087308498767721342166239723785300344088559723171515360859258681826961727106684244022994685145693733443528568800162007545371426054624955053645336485104384216267259309362159539196881567624439299203023807739682515711705678439685047656421201033550788835129393347439673726808619233226054294437906916481249061509963799055962014623232724784208696870360520499778177414494270932235879430217072190543892891755303676649717405896970874138289522937110810027888615499701112058596760708458046793585513932216342551359566017672033221326935420193861032844785860379916353038631330777069433783098951664645392759239858662941068903681470156208199571051250255846348713199559163498229296088256497515139149223958027535406444906751160688731168608932041853770387929991522137556928938630081049036166002037799230678611608853166174562772743206490211141220438584870865062135836708291002983179752291351860147832940645954447191560911318578696161897310128279227176800604572718027719929292079952932425269631130500774120343279119356318182591635774853947984113207980019939259028708668399214635605775138426819360615490084323648781056124988575080672007038213409307360114194098747507966056807251875202263377487936178820330749589767911489123560620968715695165062102084732387423150961019295662705385818525895597224522372686407761639349387038920289562260591207673335579170507143701245392792853289697159962218862266497631116073664405437773652197116060126490232497303986096777687732505313615644311077102407955042887160039503842194821719686717672752902077495443311046931572723609775866212941483538087305339069246462840149647693002812083779475007869902218173183817041797101632462399517053040846423542338193786586191826773691453381937386258090182627053799409560538186590187809960386824298589124801798781321712298982203209664789382388109742890951661525075520315522759472717057113370729994117082135887294581625239747305003548558431914549595687160739365486758139952622864389070965800864455547526336821842715760757170112110880405604873471046478535172459623690115924685562802266141262066002749196547303268057031554000235539634372064903961950921634785424254650415987972490180978856282251651963853509899480778926484454299612554013945042058160308756856114170867850789226441194029068406113577246652395737766425480565609559029383212187182001818356190135780043916384406900486588271097811437381576612212309746002609698041473914758216412623239583168427788118052540836377790158107618689227841206579763271564043272796510752153731595974454721808625786270729482260430982945194261572143914355325112838285819339845023645911987185611217031515543390241131988458759288564834198600920840289785039121228884652784258143210032990765391515746559158492301005346509634879187858036282297297823197198996483305776419012816818010551150610912579299683494469529600464204985450432018678409045280481991636608659439326058938326420422662085803642710825543237821011858158116866494325227242978132677348057760488657817941940782588316471500984923059377578166827207302186448054523805845505967697656423673616952486547665751685644830025408476760659117177301201510549046907899819227371481224971728238559922703963273840452938953026420373946741118633460859426431363698621337145127206267767355123358265438091595635661308419094929403376363920662985784652160146504116416166603731770790920163604696442903195820756729367470487021355103618887952291973072637812428293341101834355208895039975578668996570101247752481145563412184634402152735067548363040415765387771676841144210220475713129676074809633415782421434273352098145896709742068800732894509096231211876766331817683322549944961297272548297107266402046683619934145224497057802729396614373416292905949332267197670908925979234995867272808366526662357960934268999085847564420841128324382121301474043854160591374813711696191917892051668656700259198197573450542645681284508476807564887547029702100585639978544870828415177897192162405002686601019016552433538743732867202695264069360453350735759906655759902934763850836790705551119482293957840360471039295811480969595910492446767955366786305536869576350359663031309482072890336568331149909375721501923636581528816627085183925329155320384763637589596938292666826371822707517262308593182937554127092958938051031637061107353569009867063688639471783398570093304363781070896836871619250017125258957033857641731475435259838150548508932109093835879788706620854906639080682432312209180699278334432750764156525427206690618012846856338514750103265115368438917420843130611371604427055603870213629919199017365756303214773031774404470629918957218375150314455057380934153932769281480819330380805708763156894279623682121627523060012090671571236520243420534855522868256033213293413322120314871102932539121722123025561210682144208283713024748344583795155638485527211657694973266046944245100689178937177404905009394374693800107226640194091746796217227445024685106968205779873128278206967367049777204029656564376094490769511770966405916187391848650621573995004307535990492460254010887215894913923075822767945194438379068615184611110747591854205637249280812221697945242932619350410509442267242468445249604425987581234474327741021615963283650182798000115853625480801997633692105782419926315019298516561107578733349085843334735320260056035267038286679892576987049352519835284073678054730309074272774687422349844451166205067513399343332857408136062811491840702546035214199237190071502117345331217570693787515509864579831723585003446424108708991046028120613571089315571074577336254361477520184077894899037476563131741623463367180665518971115302254009680153459519661807964576896050383765530937154839756369724276842960727149199067904981280807723279838261510439402932992177657927057483518951823800813906823625602850519749473371193687326935948747257409250427458615821827537702549459879244252050356678901472873909450119954642120641947465692115834609803754550556614309027912846102455410137321009236827356233251312947674216896996739092155769206140702428445781679180514324611763219272795027412565388962371485519868737342221548382301313736024132212159127912460955600090804476319612753711025051331880658854232638144052033643419812199760527496468174248656115473480582205539873359540613121960809984551980463120524524786161135240199905458149684950920852298031643939507501894069898455933888443721856329403076970712173125782628786927987160507773288568417357779753074806669152648700257660153984937581456380662455243004531002350431713816862324088873129049192998177091419588040892085283502494162482265340646857819552624518272258784158991580359014867115171511465028232580821453736356692469303137520136693505027082859522120225585304958689327489396334599972300230601292797744716698538778717095753887335174027323722910746250228111498552153389162436503138927327673955343595874925187125727394351564130270803619825196474481344617654525901714224026929661186002183429668303221466290907688267399838278971562076508392414399238727677586557402227520381803265804722507748379801476269003949244551796376232889679272645329924744770870288450780344361580107724556905199992442160384803831244435264748411178406187559265826348223492513227671184130656436525866851411930844498479067971802454594079287055225259490013766362357031850771959230189546744652895631687423051659122356414157159739066469644907652019196151534169479237656434843097345128087056641500586243158061108958756182774661940320460633262050520199941897455783608905884359581333324734678981949727801994434033826815845604035894533423625022223475113887930038338311245395649828090387566852050296519685792165781651997781112421955713371871878970989834858038198440688621588962002905464170001249543643615204817474088821978618464765804938749707680354824538324451828837116576636225114968890819846466569115690571335260204181616592742400544428275215886891196350273671080317944828878997588433348579803161905042722631390819790976219594334896895092183257938532678801990687469694540998046338047622053913404633828979832375281929556058195538461364092544298908451217809872944765818498843582775240879615160592426921442742157439202722555749290395479579719170991290637214660591627923454442588307146514181407034677534605172606566604601429226327242400810860572804009639991120593486579696473679192301860898048322377863598270266822752733256437057026455826493617378984012443197071626935081725355985130707393058150569148579115272070109485892187426187650308934126051100499765306220387068491134567207749701183148806323621675369958333069891000909710242321337789753250366753280481089400001746247204816405200242957803171192917860022109082162369862298521640892049087248662023165773138366819115307465089044321606889372132599892084719937541558096893817178814735306366748123948404938284931889909138594616382218399391438476077836632811163066901812385239209034780358498144079897563075410962795876331859315586098455393378736574515346906723426763463599095664070257272498134189664713516600429907978045900571669589102595961574187750641892703149142368103993475120299348393128105046624373888143003005787742541427029717443492767139546804177874958146113632162363675110098706605670505820720851182632213906970997995965477374295980840749538366609113841878391073380341755251046596097997167143328921280318485840295844065866817450656166130878922062374603531645846227898162566676568873077041727042322921391631143698051889690351557830077263352337781371324462988914450694875956850318190874094199293295150488850106479778804518201213376519797152810384916146266460094281566237036939802738382392479172685076420449538799225814233642079899102196345954189961124277957161918238060787476008660704549012432427102846776644653868207322483981879535600982749985104967301072826007060199854612578276401626547917180274338764075587203097374612630443220110028127758471374034582595245752162247131641400103952312277297237748486082641854603398797599945621797270311331667111220460382942015112242747435413862504826720286944110632607462445743765402705101033627775363234909329134053100747326754946106468517588126773422755780470648677969830875138434883610077835977306687798539461753766378281528262632960818291513192099514571792317877532834227978813155522313992929196290219238609956693451902548690391323506146825638514459145889958408705225718250663627099906331368055067054194784159680011728503767193005043270060919539614618814076348458509584779538390056093268118180605321520397152580362282266922898983000698109757345803028198355571386928932242242967708463004697433776509876591656909643156662776596052661202194973144597474580753053117088248541255663893713767574732842873193448178303031096815129905450678830739241210330397077044274121373325056654019182936708746923181966481673463296419907568370223059055749850396998020371322388008111164479753266597313958909248706198573599413455507172156933985120342421569951261614398439867425710472080713345581182526821563004712279260855999256161320013046781695834982841340897461009624924632077777397530255039989901651086622343316452524866543470165389382505963483505135137053893391743709481239949268976861152467352670525948447018228746027238627236685117833638817170724604760173785877650658044711168213071485955489071274449648021708340237523642901937738098162620317870828745316136163789758535856328534708052596530883738474000960287571343584713480213029184723635784683195464730508478996888741526774805113627803881000443353723843217274451206321153823262444093132375011573179767751062553145704179631646521328017798059221718843189332142418115988610556058585759121230195177624630154912074576555370548505422119138129568412240127621793002524344350857111882496190075980416715073132519623951543664542284633487551420553216106116883188404178434577050535678854566267181272723211826731558208127053026250784155413021387724192448233624005696169898625623016266995968928563283065660188473957219558640525341460002372224009730636964574729476991136174089118764952929123147690495938185152769732255400463556424615680514862542095849267247721282220244574551189888000303927398074668329568554385177264975558360837726553164471283444728796436633047960351800873958482575557563382658149436176053704231100195149389876821308708943171972630306526124119846793760557905461733562019780344561439860752436781197929085926986999429124393993869839054895330557962335101846350966815573889307117144038361848180239385535975341448996932845582840783173250633307720582517570636964645974635097007767987565006692928621038068986871871897393317541429050186614795518048378604466162764566084773089264720341510348558387096113883009592681206377299736918635499686158153049156151745062514866661762530046135393718578407121388494699723743250237224129092849043103550647348546832171598269441035223686557887967304970322350729159013432995572767661213143257938446875278786719438406541793546000937685039560675035513116617268570833108606369777167781999609834022994383514800098807569732726740627161006093525665452427849453394334136421220582036814595394297234722077996253061614901190125658338767088624050260970029730968612498012916166313723405322901311278190399838488672612640907766720151914285043401150352969587497077933656878285500329048488183059651704644611441111225596795988384137436186271885940764948135671976875518570395930202727512135334621034149031506271465314430147024921255030469729895258623800735184453271895911951879873803564203463146858564247984780536984673021816934280984290349163018076035845371322312205485233615128209793510266757757826922040874269579765760152770302772774697432455997528885289088913126699000268647656082169109143611332582193196484252626503788998867376406355027104140307267848453104400918088957600083560829303325309573709113680913337913469255311107527249590804812564388143362912959879677610496254009127309097591651509925031669111489333638690958682301131208850514640291759521175845354036287907918688028231383901050879454066123742278367195307349212568824929374325185055271969548554241211727931875463638728964221056437740309518896203491096206258831273610781602886925215669632327040049047026572937116027094167270666161024702885649134713754350081831449546434412882399715393632239157882879827391588561020242895594007052900041696938160993505693018008683842266178986031837937723082349127649170181099567385464448514899464367817678149975007472634500732242009655456091670075769643499961370352560537608121022098325017778771868424791698661214001295620516676478918058512892885834412237954129142263191526491975442051608142720110493423369894025959002958631740716587098797220175677575054165872849883245489226081702293089463300045917533574865522219451687692139962548351599990034921284577353647363987528891360743463239745450305063505440609827406447922834636785415313934620173520144436033028339058171460036136976854569653834793600425314592236636908001101638602026478980599959546040774367381232017800682156823858627376290859882644798990533858497074073827687160012939247457603123126982316867929010486043730845598485456620634079712121511388119371148459675744775099721816709110391590867163662455987579168706806363567659944692404219263618026216386000948536396330156349019058330310251824709544001481652084051660330967713783413564730373942598730391683785472328623853220034361662740066217817586687487823063950142253100966552040901911994768735577062161535489480084346804609715608163477359677096928186319535943447215236616606908979393305942549102839359540045044435836057019491227078571130638241553084996623047505034304151347562063223775909835454509360057581848246543689518688783277402494909057550211245538759805455259096246523574984319117333347560581794794602325978388581751560919120372540158718635899136826859572882338514467120121752021701270760714368904818176277576047311407740603342387357571365663336851443654650905660831541624574504040499580167618222433929243123868365070286872161989558772480769475780711778278075468673435689391973885536758146734810609647602230130360521362774577139935987873130148513092097887178874408918642900098374157180703932283046995402687798234755805016763546041544370547992891839886116626363565449339402543503620646656390361352427744622966922584600101523126248025315611389667602357349209834833942385402851999452338906855105588531750357907456548670066757277465003659516690844545008316181511657284775653521898395880635540015752955298113242366427038829325479438829978153633387229744133683357080208840166352330452748543946303007592757523186610588792282782278024012741197632621054821491270072978212436712973300406137537633232198788501699354975888329149426586160719372724582622243975055971025154437485430759707068460968287768919796855722646404616353663308832704883679847744816263753405168246942945872064511350543779859547459542059706638849124623763888324933485209234865368381961898166317411558528826330867865967504905561466161040022785757418906803641028349318621739920825540167632065171861550013752856890410068826131625964480836224325570796262798430318329004950326386571853004455323024260443766884472344434185978024163917362072201765533790851911515730345845887286887488967941500408280393989305998440239912121181654105205420421954573919780817202992082378532680684599479628195785702529363398098879388151270628422590217149863365099169632931967503489386472302499460771672886400579501346847748993904895316277532015837240346529149585510452412253910663427180488609035952212751468096787399528850542832774412366731623479756512465825652489975168370812388567143233062599927849948091788354431528484841456681612953974672733326373440592668469203958557477535070956980099202509060628995337408713755907041446502423942583362854135693561455506824751785740664732596480585381391624187567577440702102802143794782287794563658582997123012507568043221001433958927580693764974755922836567479095036812422773238760830693763621700513632319132199262640333201970821954780526787452108846262373587593789492817151684943867628644600456537925521150345175634284502696132019981688589024915812628049797470060907646223226356538962605132193378370438558744672507435328957332849834710942025159650893177922640266630131893627282701522860573995840445304405246861252092244941112927211095967191115349482675581808102748295277906020130759130237761097122352949282919357576558831256948023545524390239314737639492426128865170267961022978634064526385878733852137055543130796856983412628593288944002205898649493526126662557899393919536723160566495010154795490136260235489141593482488039797644443333313501910224442096193006271080090462992807495657530585867897764381925330184328343984153531348552188301991678433127235941572396074932401117840942370416897808203657598908875657981395526633650323476324610806943580650050277510048665191279091650314705147995533997718245212296539087764641592593564276945101207526571036707583507194594866135781295361644373987371812358576719957964057346823917779582807834424118930335029104523941742372722106271643114942372316482420718101815567533114328396790182725663508256446720636298126553146875763389385228948371884346513042706114836379302359186568992364318760918405426183801777113047604649817988085343745087070582666042051738687752459141959730613730292597068897341865501892268019128436563768593917253568184162453112036395700849553278695022132654153425066988312499620177012765864023044633241741888042692837654821603274520429312876292227410392051097735167986754435830739147071602023090989381056294119806142231828547066519939099195724560585863528453666515376705200124950584531173045627019511330722988315886599470209655794763202367573486110421502888952722282514218853392553957340081748694279275026907720406392769733686391069107170619474640743380243156879602672965909094980590553225381518913072012504762152123255358427073253622121793017850829038715154020205122863846582366769318543695103134535905070289444326654817848031405499953154969976428580526621869138797263932857063016327133918832794869431098618415026285906436427715109095985588838106691550743642180337651082422486202866352134753368554856008232715958002110815164783176996979232113801616867569690639500410502862934476460507030122486716438636794240628880425119373158411545448012131926038180909050156085944086347835902345924466803198819712663491122782805867306202230201491426081649093546372274878259939258869759638142932987708480155421510222132111622838142816378011916310610861085742968949655215666184812321541999858065936724279884050209579152286880074889102885195848491822424550126993840318032261286815118927601683179581812725886804211858669267783035485369942208349773252810132659609244015999533761051990210659905330058154568766909763721362882274928104866645196858415457158171994278812267322124571647188282362476461289603622568214367714347130406944599531402946397553552393056445240479619515476190072833616383843825896724926159263569934147551074580455514369178591466637325214286448626412528222685988255448077694544514532539839452849887867142950469941145631241723319214426263861582526013027461374224187223980078209415334386034088673856882386957362779057001706809835463361643944128558309631067247997306799921344670321201856676299154587438603750121963867480153423898092956970592334606118521811578598223527300656152600363424912383363195636010466767885223640539042566367296523550144753994733416702561161849255425571786135591642397339502581530117221717537259890083688801683099571737801114936596342903176543934265458970998505674565238560054036398207125514333682236329515328585814946962701330048281949032522444272728323867258546493172834470452293868325738914424989452007797259893091158826414266043082020614266595660520690097986201054551363508794958093844633181146858328950935239709696765744985830752722935537369564544344266014316869554412164720896802269975319181396969861984003109231753478899288621668078603697559612019707261401222489122378605684065185806752188597437800588160240708305145571542775603919400494476043017530032138945532319447854899784739671890812993886230320015977940299430563609859319232939146034495768062847064518686080159722440200998518566948378646963092342079945756640106458810907667901502932850663386326688598809700438449127799554386274184349602182959846114475994460901096948484165284009857650680157896040356826590822667567845753641402936439714200589328752660746757892998795345936163931123657372481556509226853746582034314189215203014594237926182795298911721747902392482962293728164556257295747833695589573562322980000711371479462576959565349012010317948273829649432835396946720634425190470490717570539157919617695403828609832592188427324174814583966656963589762160851288297832072622955119363199740567963557463312825196844276931079055942371050694299875682933650070279609420727216453133909346704598581714527724357338495424673671464627612903056690782973482255336727786888521349530676375058938797967946935410194864673137501101647113620168959546673920644571851537546519561630880402090027175507037408389994167771006146870250947943006185499706267113007762661445131325933898801200158657019828607627029141188124843609264115822015136576993601137697417628430062611813395486243244910581938966799852426801488546337943475391801381297684095142778873261532882677310647783500032010206645401124943330952012706220040296690901740513418798756448004875491236558782174117523511450106323642766945607173275338806569096795084913015674158884992950357016626462022881097826027043999339827541347394068222244629201112076699886624440001309634421163647939176115492661813009706319265749263346401094743263741804698789152493234982450912750248126514314140219941858653661147229575288506970704350790282978972224793679047533038894964398973210682685083690983772042609806272210383985787999692724884972848585856482560989397599070038996064586009218921492378656780686545356527052968737935167841165732725716033085341974846527582444691217641080654553401865521856113849239692230823831834139893912174769425125511208019770108580014043189340081784688052643605621781977848849616635662640175367610691925634811496106159859535224592408216163726213597492921133799877146850433263157067989249278535014119354226129868926706628740675995876317498192274429751938854826655006468145300601583831307971247148560023382594017702650991804476330232836959215143383730598963418417918910086652838542728352433761684787711842034911166417486422306712455107577163968814713985157919596148693330026048540233172275600709248975923116502030097623600682915631284802403937261123906021215688341522410347722795599751629150232674193441888136465893742285711627198278270227975175902017139506819071965836072507044435775131475471424209766789551508477907792378315931906265190040457197026612526322721581211010679733169559714875243122825799166567030956543605125143975472070369633316153231151716727492227228662567053003354508917041115718208571736391355639108037334155379488067813935004913718504726722571246476108453459509731280466299535654232737804256443782424724497769739122393838394861044517589653239577885788213200335371932572960302750441332542455043408349594896865552633041790833007206897322954799805052916269941484976534246905343874146012976592531769420014007485199417857376999688400318197088885800462168103141680366885986291508773021588531063564781958746167881749122099441651981869114012120595760162120610965627480187681052979754378727279570436009697387925911397386262604656372362375448318770699073012086499120361279354410932797979893309649420745990307431578520528435315486513294619410186142888562761230331715170965628209075397090389538433085719200057128248185691488233491011445380194421431371363931500925682854918763226315124463822447266591547769419056484621756531355990263844744738923664957637546166725689208731205675313859238328472036912091609714516089306737554576996245801987965717323783633279847593629590456219109970461203249825217305524866006800211737786936882217698797931817722550570308251324110849308493077690780879811094150961391479869599105423394641698311363213115427995645962799995766636703606510372964146300605158831478318255791683697776057597217071568335678882334947362854130560122084611328667726896410087944427147195090441972282384145904329901682717624272801604200639563108995279474767380669335092887284827996414617529171236372651317996164942296343332652309220407656263176390768913467855067324471979852432784224975274834965558588927297464279357006430383305598130873743993024272480470366113365491528369962053804532980939060869660728497476216790705598409323776128885848174422984054191196390831744492992619361550954904603963886923647687972913713057531345336755962942980649993255065847831080758417224262812399502785688789121161481480530536221770053854242686228925700877294236034496908337544705684512730787611489330932891794095034638442057963358366555504528986541259323708833877979062097787972542562842463459403518965687136426129108846972447398391626054702614570006650145414431585814486080234566804306810428578265746300154988415227832407895203426110386177859800654549790941172610255119671076677249213999057769028454859524910045431017978048017049250870583739201014941199986132481494176285544854561856141429983610903889921746939862320790672525415450916152701942081974913894056057429544748694971973551153548627168444473767721428684510288587566426891027329848064418786183244993456872683762561298078290795487400408755402197202942422571091401024079122770773027379578324677579232008115529509276642025382796956931638802570874129303827100687740329097831556125154847858605770404893908050580493008198197759333893695966190240211379711504956912785740533484945166209100535198678624747297754826239240421116859556432325073229160804979443884698283562130232390847096976348629664369993003780409776623028265532113235847880030102025645551768707041734447711785957737134824495760819474321485626842640851605436787398020677725512491773349878093466650403780813475733079042600740985935303807811628421673477986771276765763225281288050572208828129330906830059021163364497488440293189767170658613372499107160573341564761500781892466952203034297272914819974488444548737830770637703208874255217136251940568674137073015095161755002272915875696313311523201907796436145737691019691807009407097537329916348634731622011288988091738897108165876436771273293857146958943702366709516627964048520236439663559253786869897771110617074207844542286000066952021981336359824942692691046447407647534717927520372586575416930081994529056349129504610750679588693352784299770831407682475670014544379409004742073738732076573547088855088568236073286374318289233332776064697706467061843439758409169557800537752657086585264824052966393481444672061052471500732488694654257250217790989347043417547751918876593643202817490504296016131972923081685785026589504227631273762276187718357139205550821937961626930918378973953235764414527361242366205533738067518469020837399064958231799227270684966551348113027953003657085708562424787314788714809914768342362837916587289298288366341947776182686949372576849215205643812364423896106585779126812309501891509098665015594105476528259849581604161287546390423546249830594713318628600774952638650265081079080262663462384688923562824142653521569422785096711023289692725980446847935072870352864698521094430690570483689074861388931089488055781763619195150831994206302061054183220768412173479161658083221430116623461559642749723725682499940646496178307018527389665815675534358422510961157773426483506109359621080468756675635774635728457503397490785864417983737932271396112997534389687739870900773467821148913921220167897225504155553531623401042763383733353322915116080053154643129249286314329261647474913473632967869379113323455504175425150780586414225966459861064979180319187145541501287607574122659150473274311457184282295810952690987938684283952003830070817038213863986313985929506483754124075675066308333910305872220828689562292461010102450300144563399312969699117525925802820861092452127425525287219709832028734676314765018608935587607786185509192257677530620633588514536042361778944397896020680435920097193125508120632514852809370130242064905940669519512984093067352828679473122699354741510540229715605561380139610327248692876710256764192350678395304643404285929442225428105304171757945623703880306841610838945253250199534055652695210318711513774832919295240423910802915068248282900683765282508188933492395850435995508851582216169667283752794347461533816208614157154232418670100919203180945962655725549654264496932979951771958214516749292294340569701334658268951589309197582518632574619671354773521309585555002544470509870087394252854789299356509241892267056900973345164147022431560818376994709162916907661488046740125305421564864407771785049539939576105601690175974149828379219267551864374252296754018229500819388385055397551664690624872304849203958705805992235810286615056396048959581204920785278247495603613273321728141275431328725433875531964068176383618794145291046058790767166969928499132299816360519804900333361147323341215122917288372887736034317434519115954814102726581955060524254003359910802505519883389468227348331685840146412884327835182864919117911824075536437186750953486979890282627994540543234254532661296065951575912037626839251041431268681039359548149333068798693374272770935374838619248893059302559692461722696727517309378382313545085153226054615889865299088518023354121697665837023090445242718607345162501288236963498475682874906090458359959906802094261995484102048955398252254410785762628532080465393832553332626437951401215428681177112261374386273354492783560868963356246263884634048535366574105334862947426426157782349936780433377232630209872549990995867871596972707460715710320784031625169666557273310848892066336083046377004824420721442362402904930250606378275824811191496252549637384169229040067688014290922758066181220317252407641758238618664022374749329272473124802391945266817610520664553946760582456550253701658845481978586521510424464967364454917643149146452724657223449963902580080370517702750977899584756619596312350258759905541177840588916189840368583367850175120087864684846076496787422879873708501083285213909511817229573722799028579495454623245557380392098965600204272268383055319027494543141300009980194638835928185463235572782307036798958499146280942329895562672785440021761354801878748329839919311398278068051546324799098555003293263938874442721938813765500132944025876624371464887711178204716419879293220969498915490945702448421306144973600517051473975054614075886272702754884933397641834348055632928925811208765256297450493799807318513771636301398043039262413095468518850392588155314058950156018577109334318671429024057717705694037125061736176275513119743652013753355342765160032984923827687766941408570218886894185778140375000360802138283255719296438722056102783623677535990873298569943355419166306067562141221446501306087683874637238545055760217727053371758213824485171592412356381935227109727574315677076392241544324468957717081136298411769695187630928255110140118921968904212413081062397572140184232349556908277739984100398104215685010499617385894015518235464863336385615775642089439384821139153291429843940604618481146004504205819925984663817285867382075576772024332910789183415627654656214948995125581320232822856660589182856991112177487859510620314838117287728887754285643304351998603181917327000237359008231697758185449456921398502853289630639481028245278969797712364817914445007476953385451317422785482975989683120708796497619175390152138470662129750153422690561636197492180670043503060820145779685437496414741223916604693343180323619786818112567481080916444392936105590399906871503448724533782486800004320743274967058497566935217211185166862120190098681075832718819313537049521438299719881254627872828118296613099690562394574864968120411565120299820219753153393572596309395869622232149028051846496528608988399369521929605397240997789506579471553238254414215650337850138123662426571421676872342016985596480213680226526014038658407093416831569143712737326031945853514446021308748351756211310705256827058629747888594819490666035902374811988636690146467889759847865779011722663536783202175777682766605175979486672243411847725987086111745969141149171784733393887207551820842894680984431260298278691234475471353235610816330766070287071970230379802009984846429653408406983510325556663397767267340679868435128742584173716167716151917516819681230547231627561902148296193380151634600300213509642647223244915075145185621668218964589894196094735702868606648917048327298308989154143604198834225150061904504606453469288034204130971121633859001127565897936499999136824186368855965065814397680457267845148141760936027226624882818663515787610159239258783316036886016398232536355042197341126253940643315405047896140947414927992708717956950792742558919038397775983516052588058824447799604969846266466360794882620404131380406759266057345877291392190372148965840395207269788934502365700184450780919527642288559670435083694892329660632741230533337691489997547594170073096987321696891618937493130351911049126449007279784516572692778050943933608088182100141080319668668199129832017671827315005727075917095193831182199802737755793439111957019853271363791400012120674304449659986290451402763160821253551206451146154114157804525431496174707480570947059314612656296385654562134992326489915980804333167022536533008563309079625101828242906982337881763246025856036662663210371466627520374011803704674894540624440481084395645184758271521140551712000902599278776248037553974969801479656078616163178995066630255557161209963427039657574269922134234946581659023604477731586912017315959868225682662278587246157319543879762658006660955818930683166629130304287871660390977187867935793596999144069628184095000998010743777905749238130599123321309913425896057436753010544892828936568173783659408566224408043786124353682067687619630432739489440022415430659629343462744873565957455885246843858010185087161445496359243433855550285473085383254103743257573842186436984319695154053729796011630940393119725953533679658333598480536388591130886958598054019386550641849816989923948325420348076313430909999995468841421702402657498424749130957037504421496906935552360675287324231481102095525647451389120602534473525789801683342539805999834991688768320227824617092210955563183305712902796545008828575836699747203633585924276972269515321049584195436846967842539023662727545356707319388575366934665982358983732172592778940039021960349187893581302375828914063278305411152749341718705320307915192249655034575857693479899701058513425437879762462172452150628287548838852292656504813207589736565624097318575808143719326372367934159552120295989198630017020300577289705194931237381108622712066771246016873673438454223834830068594314782934192483653297830129609979881167662338999181656815070321979529488739460052557246832961475689205336135568497526100799372487569693196855942765665552064040029766748647929160338318393029832173698925302512978752231042379830227290686361969677934582636709214371081198492136447291295007498088403060037349131557262965838512508935295900369554764028092057477148184537688918673611833202054656189386993093107650712912968808071668292806519483218528861976342916082963183293942570901920575811181168770343666826733180407631147477265569410120725720027957511761695261379367497966650628589502731953498408075202763774814406292227842727494221012861617057631783503605259327174898557264497808481469433361413548742496044973024620185294491022431809101716757076683339287670211795431268811324912872791611323979061558086027835595859163202158850555406501961137962916824363480464618261541958630549579280945125348583432906102041888543756472115053712263253855259010841189689104623014833883438641336319326661389852497880458349496883380536764864204580408274357276540986338242916706941421518303815485987874071667868449907242855393302092297383357484538121487572061115009710912455798702678156553505010514466936065030839168776222076389394343147681020961959023482054048923589636112340643947088243255593787119743537176811873116566268514112262904561522482734912450091859812697581205910196099254179119620205845797981502638868300663346847406714283040822818512537589181294464628282826023176463583077625822138521472019503122518693357205583325693225128620947909202996906537678069719469620733014005005965940650973687012246413625343728194625219788256207220978085538890685068212151616843185551808567126665313895198865328840723000241310649069203595153656946701339623068878207772691480830722205335572853661188392926278899053489952740687340789563991494110986991652623929771244786567030090735581653649479390887757276467880256005555205387350735195254144310682160285753500995989613508381088006439628782639963439244531537342934189687519889865195967742055315042509369150638742768416019436736329131712480338317740669455573284743377992719277850578212024255772606497497384701528673430274811356027710922744560330819083238841353644766100000040639021136815598826016516855738079955727672366276488993935912882929453212345900598102807775364754530903797928415434718893363767549316189200297012630086558317482923492836802649230394127982340400888081685569483578641508932996447779640322091228145998180469161861265953751366218267157656267641528878249599562265003987536726272489619184237725361886650272244321662504426966035804072523782431888058889572139743795627528453041303660403425431086492078442904784172188569050801907220817208974504351361386641624194508695541611518051012367138361799211644956768323398602765507491441304672320325893945310462822620880606977027563001937596504623540372936078562935243286538563575391129755089394715217985425771075576443637979952022048934725804969453285184992411505856863622140443298544377237717915465841688482587622715441072988432798053124403426032657504114781165887198018844126856866582441126656431544313609992689906777088857268544259798750118624511612780549716994811071417655924361652793769327815752332268942732159291330187171804853021108893526491119263627808425678221721094510070310799888994294868246570920895061953577203825830960990615283818464030622220494875649980257664411491129279471367545303443481439872209787322807477468545785498010464144469262551604437367119597626881950100508512905615646638746108644389267032179664046697367834939263671461972386161922148758758169440376580269321784182409712516085750344212520716282858197489348538905294814307759277217772147836232644512794718876239067953960880533590107916400812889008451177180757183556387258673394107037220449589786941176917911107553967165086761427773046579311184826792617764120646849484724017087449061305037004781043252673110661200704563927428557382193625856406675913602006188224154210767431095658362100471884556649424608083497297509091248838424582487708489340107010047103745698303595927768744317109106233461291553722131652126903507251073943585758796466041795610308991797876122962464664204316525617511661752068951114537248831067043315983360997260754706677381164261771848263298245223747148187835209514424262682861876605730836351205621095261261246663814377909423969328314472494618033929247355232859825576603448046526542506730810665749490567082003474424902608388887749155508683354217231888788407069875347837300979689603528413905103465445726860245304262361259140409462073957782605029495003390798075947344682386337275418925701375104056900297805793026395225763180438580739971788173621599268532771095002989363223407242520832098242171637374586931386118589391410349417139739505312666582500195767043545245112269909344620572280249827926269126541403678286985607692219584428246307040147419973512436129393010606417229151529986413929982744663203942527065252372569210788042160637893920155607600151676401491654507114213840146728368741952698394440411121472576309655539278539135458916845927086722692051988262849176438672997839669130502712169338072750011279981148204072372074149613835918465405210574017283938828523375086719223084072207035002255658772519586485295578186973272381205190989842556390769130731784277521929871096660386588458210459966129498106441200713177878358155679876737733811850066483816569830247167928293045345784169359278693233866944208320329678035937878710425987553816297517733542455789279791003676438094299779757671610061914616582127243495737453823138435305087249520557998079439559193823424586649866848324206173194132359450188163986165553819826904913679423774986308546463022500813944867662600278367466839110444024793100877254654969389902024938023574871190278485080540161154071163379063576653468113974223124706982142670770234730128130967353747572841074666635440467495583132119317547409335480753939082869444394013671382908543775839475372888175403664361595031205998175745506274805835137852330600178263761161904748197213510128022307836709270455970056050851395097939562973527578108883158266976485885599570670794979327786697338972822858007063415461734544878782949298346710939333396179625665829300512043017701762273362372635695125632566650728696812292593775475673815796829042053152609238051828356403730187096714198898581029617954498420169699141838161846879632909601893575611424382780695482938969990635623000364351748864478695343286434576453263848535366328394095292442664182264213212708905532349099744391650713892881915000858694269960741223753440524806627752882860040465170112025919751242332628604481583705439109798262221153370708099696802457536488795533598931284568905903758099763143447374659086256399457853471024445334112158373247896434656540270070737276162260964970221843436588112935905514442964292010770956862203165303167533451652484253387905096959183134965730322594922400010988595154535278857329239132871277219290546480509471692524769026552992382760054340873579793120788946898661213016041673346300754310812724479590709619443767695547558853851797827263437233822862652179199035446779279111919312630097029534197903519382823788280621005419354704189409275333612690152928774476858468566764977806001420236437140548444079999000141373158311131475626702830529127615709004146081479976307909305455347416853929686089363628718037389783935861804938259095354715936130491001382382583075929219182717546497551074288736951111279697275084781548708260153943419744812349271837486475517898487005216075536612715986730497391586703215937781606538317304205272617862046223953314296913676075339650048020944447569978677060185298949352695963712197116908561908482102358797206912415744274667712485994401899303477492079964477420373504767715839018895070424542659898507523240909326821708174732885867129739921794596273186278072964603132777711595318615262198356182412583747543437761260928552957636423090790201726960256328468847063591873078687614256452190599535062041820228996151907217735379885607801687921179778041175296928334141692936965708040867702020098974850135023037688077320589728356550076635336075617307920792758851512444728279871405851346085201554957876623116810741598269720725421256993603267634295299053658965991547121570053848755532638042497483620497505079270851337850124251103217443320180011157101497998481621723078041347350051263144137531836160257668216133241704300052805814751844024661696030579659629310166853342902569222746987089289030265804674499705391478993258052748021268821659597233685539963868900306250744572613244514997896161829180659445252985499228709177959861399841314286097093288429841952754885942061310626598382192734475505240172644240181124309078625256550816717148769922934436335118375103406043612621991315836577033018290950245205340127923301884679254669866563351790395614455725727505735775618801753560298027841298797552046991561363552267449109329626110691107416284923096313700125908962620971583823695335874242719075720039003732178136896587712058944133084614124034010871485795951219693021806446030000821802414216997240578528867129413015226330494662631061994006033718181074615554992561488235346003809559015277141660596260988866312739591131411187847576482602262545804999315360831477612010467887375328181217497392215225916954586077827635723333859611068895914428034210849083016582172055726570213291646847916416504348525400430311108202786901351338544348472126121106654528753982997462122659001678115222727284149269147101685042293876583514008693766469720386908384369097675584985050790550773070367446664630376306903273862990596260730552498033706006585691617221677842474095696345973281040706146557180755458173964639622162149304137529609835809118553320977714868196005795972113760248233551262412391918991602750305870031673657375414085977118954810285558184441565092557177259433108839506069998163604486534499021328919854864156107933970250039546857790500114493078719215798201956779219006766778395761337517716182017895961315263965515285732309258629924554604358891177686158577943391621578618613834069052269730809329505546473498181953526624702636359702245689262222079532825736970758691713510455212601745128278237265653792088489368837146240695422867571614414538270423589271848973249310432141027472071670255206319493349820752310853591393009942023941331952778029810454542318048901396312232789146726205939507837743762148563225106055234207325050435802207872301234022003422178524460020271967154703838576408143704471855240688879740285814642580501715838771198674216430692247673387794103352913719542326234009772375200238582335161389467534920541540177847479630694171590772470275041164149631443233405578114921188556672977239552070562204162583870509765571593323721441303902185064551036983765109586004288636247696016345335344384564648009346229865660600673399184448238971162802103839040864218903681461512854510697833746949008036138183526648680775486585011930279109692313256734125846337567450396628247727838240611419729687619580820213143952630752680868905593016206602174908579831461344923631415977464127318551119671208894316787260330156002480065358832692605595650443996090332167169925608844409458913394706750277560348879802335097223415223469379816854994048692627173236697211677898789916019152981147982043045720885781900815456343642946861358970995368819562853713724242966501184542314847081996507165913746057649503971906707859269881133113664694347560930880094883322054024514954975554495316680452488313341904272840122267769522099591938882205946146136294901199913070980281724399260665484249242338164590333970685223120755809277682633054748458080813939263626474607450858210242397052791033211926470583070736397825550853480663617044407325748068450130679286477899402339655446905191356347110069514691799008374793330179952938175200571117053015090609049164955232276749532677656453020078895551843673075049946779545639354761351369469273172580610549316509735550252609276190343468816081664921196252126881181790820597577738192786330154857973744969370267575590684837067114953999142921096926496629369700692634285765864722330787541523554956824125080571696518380790228635937321046659641071579782928134666549572248567865103833718859644150187377415577184985422659025719905549569445290940861061772028124491381098706571300391698173431944958565823949586460975583247738639952686301132172349439828462057088126970294560735956064036386151084489050720283096528911173301724210354596658745671213724028792505104494671098054021327396060349665634691271589609053852917277327751264977789318551186749218234791948715335086509918463843591682811075841621318589604663250202852275975788075223819109767830261325193050891071906880663975127175641188611514571927432192489456683324383158214554237123393542095760440068636507896844032668364037131564619140423335203299679508847199223320618969234038054829886959289654697841442952175259987895193644387293128715131639993703819791091958955914703769067985506748184516357608552081678738800176432342090626902372825210726850058924478592801068442102534344326269383316576755552205544914584398208126700137071753280682607395865323720215610805120419196843597533608651448716141280664041355467521929176811429673444807457905266417365588612798876030532630723071583067702575040071273110686535810425142333497348690056691185401446349474333962335155385227977629325107947974103450073237674548972444060690432295500528700016601488936695564216575418232486723660524810866043943678497578405598352906319269477386744683124426248705862080898262926361889188397685148714966638944510802801174071731017239788103026726126626273424338788297529420199765339740292658117805972127784721105245931490806649193849056747208056455711559602526686151868853471690911116969809949326315273841723106894549195899631461974662802864844186819683994202998216309065809980752288224240884995650654652807340286224290825643977053557483757255889504525906890866443130872455727166828879010484769096227393843846994244815211364150720510761600752994225344345526115042095657334701019900827022812189714920141202896941187823247433507473389180854073736904393036261651895195591800122906533814197451285985555261787967658663422929149663038123823838327647051046475151993094577210194532971051616681788476042971261661314434764887925018457855066916629354116315465776886045228270281293249507428880708127430072680126159988160187770820981054529112498670278678313598922576933552786180403652873463632406707554657999438601074843737811901451023849102223347677240269803597605044303998904732449602208904058379957823352836201377330818269172156286755948844780678438528885546729551511773195639544314524244387060440107857275421058779971972790844462484613328678465263167960945525721166695002607420237245751639001101108081175654927563432603660820156719004243763787863468657151934477435519767589041608465770377622009155079000420655981331557651381855653563967683275780882602766596675172248428567961889667590947839400206793126082342503676911006586571134745014581884595361279793697924194057439979277470000285024620917750254414896827969686870794050149769713634557757344791519156632236058786591013254176829443265275276676055703649209962663721475742102743101879754943902166245649107081985588580357545773197297216046441162155455658605721702893731477162355644359589974119856351629423262353278944920386106563392718089637836641918805836265599561121271314998288635125731902248813535831299508758996616966152665405600510605950687019112698204147115140763656702069686063778494184666922229832559712972732582513331040442446070817127126435573686314028453318831080118359042909449722788340813856119492173539064822541982492280009788959617489752528337255155962554963444748855608581985698806357678290923575436415722215282857292951178882160786233812502541179858000147118415969669240121892775555603535202155317792595245693118946564459397561247116267979884280123017342533113393155900336407464147996617211074431734485997266558247806651916933983477304811493799173318000434809268991100266115141075355747161713083127627716738990503033787806764687057464339099241301754432674074823012004994436241736452748497870795220838096469279496406822886474935075924559823312887328861967224569268597882408757349746207010053792125261585376508304990104354263173258419957605726880765963803618062379020564599640016007497498335671601792012411141458712990785148420267041184067201581838075526030374337725051679048874492369921034725868951106059498658004944985132190782425724870171575506058123928505923780222730187908703390648400541836266945825103104891777968018630356956089512239046534369270157952904398515216872705834296736438361153697568075238418562561445875283927240674781192649779581384479375346399710271396202127573119756112079345616732265822813690930766433820512457566099219373979820998240124446535383903297104536853269390782591499249434451818425286163494360123041912214433012822195278950566808580286833017644205424724812885663648370359125745129294480503277833254230013580664330102459435122097072559528012227089320706021229275239578207646363495776681137454263848878181524970619460952176286716774020847423019210657051036901470107693491550849696283598634420606155175101626427972940294378104861027883337050726246078546719535139502434206084976141620575066045894143639805566897040892182893389254635313066978462607314220974221451077744065481406402247130236180771858274002208516438180997545055363799414053741348131914297691721810939529118232633023644505521312915853454868387802444249680761413018548250712329461976309846640326925467112115555224424454850055980961244751674869230413108674428234483209761611321595026624770497305304182952651331046301843339354490399206799890986476390867937122210144254248451545119374731202593242716855173113072262737894002314521589054303903356087425699101584557822716328866023537815326315152055082801748127937227995957493053174237631598732667685954522015699624127712746388220271286593179825494542863493517237480407191714542133319250231445689470213079778710234883351215076767669100171850828737776574869266216314249140441189731710678503207407762458940010121615352295355912433246465497517549410397617973894177070813350339424678446882432613835370805859841409126809106600371351382204684345579620103998104835393936033096117692539030312753949285466791894579286566741433497135823797014489867714108655779215843235482724348388113251212535544949529593944235352865653424184007179923875733814090277163820292392062278459665858768978901447380561181991490368225073775398628179362564596223307726553298649259623901329113766211812612986968852437710714103779990831283677834336474170613873618483144598791437610194571208070954971411385701022275708315494338639715237370799867799438434611374335286384349778455007993011783995822344026455855827688159441732459853903995229062980410179778282587622711400549806121994191266678120168553615637278292074095301330549070864587289386567913425240672949335570196836457390162955029758290060476148751520835820720491817568505033151659335067048427360938064995118360390800352313348005447182514698879059087213009321900834764755969105377102810847332489184645804680299306796617311564249559496332034571298375991636407121246593090802028531085475707817921905955700828408234777275828797665517068207978751522726314414553465948489196426121255021582226078096784908898010745604946465817162598001311300738228257738404934815823592193672392180833659440782496040414122105112962135470274166311813356183327212248272036707661871979396163336648258345744681874090384948925302649943770377851185336629367228994438430194280986988013721757729930160125626350545135360536460713740812544880395315382777478080401827483717161014822604267708978211051366347273444400778848966476744517400255345217251750542948779848957654557712291012288387940607957596442182581868046222773829004307889180112958657967461687988961353427072354918975559428528017851618030664073408326308029082208446354487131205641146035675033907563861646090700314972186974400553872710626327398636697742740619015137738026738198703944044131602322659464660542629885667118394064993284084251927815631297391914062924740737111257981521447672532707177992660796178993875901488584580081825840441566726482842515591001986929497665882045480011266705583058496805255534192775361545428749311730220296194578939570909548144265465867425647663838055135119836556338450424070942975985438853627192760026971224009460376542081278677907943608812559390175406293190451907432612714891137967972829705842737312292493591210278712028221822408433701821240074249201252638720984824785110528241895711210027855371283961474220177428454074371086135002937807098549243347891553019670751118528661864118635626362985737144205341421073103924282670274933507342114475407731431383745313620612379311666529462798324291310419933518409807748383106475564074469817805040090347942624275344970970849351331364807460139311690696318926842410256255966988839217754398925114497907619393421799594060203069940058909995064770389151500836695046800506615364407844367287737823546607474733886620833635484959748369498415199969192414050008824357759060696500813497217011826821454125556384579622703462622475459767843660206247442572401255567995801240050104989027437256916973705522788418660084291048031871695882577713528877706911409934564245416796817251898418614592909049363042819500841224878940288502686326417300317865096153708184980231134987438629214388375369890342500640906741602486928357220645364960947745111088726074123268545091319721350998664584294797496951199419487798559774164123640069760148879438005879832702843286356650434497835562529257578845046454225545401327044890403651373018763762831153244207698935529418517354246792707462197027211096558267622685494742520614525643916414681891790248882515816641526589382178421667588758590204635809086662646581485861436227561473334635250700397637840675295732153018933154726324609364811393190860112759813018852670058781270510161377401392344799031196676950362738725001940677092227766224022049585034012982327270889407149391177785424866455815183240790384403576502868362839073079944415182902515199688739262423347170427952906277221665985817844558618367878195803698688714503243618461949928702915722460223184371167764460260727520200559467829473531396678530035077506997810931675744738221378337121825628059342317814431776321324867775281941325329475767249953297963757286922413609722663117400676013609062203152165714348487990907479604660792257182868009213604254401151734095650475829673850442924401209542601853412433211079101815939072959495703492006754280839849050843430857927897891643181984871570312223164405528592953403225314304693517403269852969688458336733353612181373804348183611056800446397519038496420327219503942520546686223684202492296217189366959559644726528271707328178980476587851177804137460689397329123498796248803118243067596093281430906342778526665929141288737393778910663372000831545918886714823406338141221320447696616640931773209313118794447532122846248562149596888058671234979836315593160727535327957913703504890380486730548778566566801893886679003764556575145788197276995180705513961136158982034687103490476288713280668860821403200902573846617688334824952070537598104546437398235288472109423329496059388560290488359484219855873781433405592775312847345218451000404755196201771587488238351767413627666199305023365250401075062870716630390537586930532620317747468340896971731728350982655488270694305641617326852928421055512934416297369377297731266415432199661085249936816493047961210247455048648322967116423367695591168707827798680191493995494192591301637566896604973118644887928547879985903721463931759604734127536758816165275703360210111507928618309525014236525460155062557541575048274921534640664572297634714919846736354030728116544994053391803671456679202609401562564162887626615015156634356728193550155122581325001113758290952228537198109758834402105557779536503338954584483399683706869446491799164755641920537147503908620816148939141847858612895929465776501701141694207733847199344228034566893088955312026000181459522806846570608433108352660816237554972216737402618367191990707710202404495963633469567899106037506876071486402692751920135974449231370254406952456346250605153264499413210235488982475049475905727218270442860208063558509134534720273087576562206682583308799337342146731215714118696745142930828733178067634428511089749815854862163497691488091639140739188189609355885149064983755554769266092091096918819973088739494696464716351139600847869277038263422088441738969714637707945450695328431091699407559886507669467640023464277751823403736899273485239607013215377232055992293980971381870292836991078566091224445561750512214055788714235932269952718212712378118984588339168076421250676321756641421388121331655538961964549926855561753966178509576224112840650274108573838118797683991744184462058659014373891105097601520553253835564323684562142868195084556816385622906233437144030983461938680724498605756330501580601088021805875458273058635155825292703692645978336540876744688906458144600448268840217197370126270254345395849261378813072618908878511398617973907254127017727809999034114418612418647234990258571501151781645153596360044958279854638114990002490233899455534053813720161751691452045334603994950682913202489835276044442003671261864565628789501839709854612949363190663457780919960747895962814485146294007454670052692346003207816157906164977857919000918821509734146517428565699621612568028031026657618032169124741976735568139952002146426116632013721226760373695754442244804243252162467099260412215065376579510677178262535785974488022181515172530778567976774005237087776291361225499340694870639876440390879670102111325402463777928045778596470628515058552858186740338424350462334359689218730542307438697738050391759170609292023152103983592297746265614647050169040977728201643963596932326838217803320176394655004006514488107145610956673539208773269440704555792793266335434556646163375903482286614296503681714800481857926305871866896550571999905517468583224594621340446056808361840352906489483691448708408732953849370953941102214968337938819829733299586131834259096548347373418128722495571618743948255414145962063125923400428416652977439151767379778396380892625140766267953825720774102407555750100085087765206376479298746153747401955073311141227913437176417564905713396195271373221295390404577579562855651122746732228126028394785855879607939788011678717502434502549827343529224558793625468950964398829456541806344896773269402704597474441584044823499995763347999803029810792099450706147816762936772064874067715275079148253993990057828624928791575191849734341076415241433199717356587431056994318030841433746452130839936922444814809972866021122706436241006892115233598918503763897373981456821765270906131800207566942930552320736193965699792147464580686079949707575414720611550281678718094565895664351978505339115194722227715224172244747443581203792158214354254917591718632770359693212054856864965632035002484029980106445079110578754976763618493755062752932179387256223223801964242350424548345065492230236998362953602981658192221067616727496890551955871226296993426911075797529230373670055163497147081714291265919241004223194340299152506223483702177076027212807781360223020212977297827713108378511220276262944443620940557649823873429492050698415609718159657723681571509768283239701056495551856214675094900116292553539030985126018730785371422587263364025240742044690287259428540337087264819811518549476824487739911338436703715804218420806510763485723269559371027491231318518712812933570221468075544197015465857595540779801585019849123073799068639247149850126294795616507753496243648784308901602527182478373370969249778970241436006596090797461985348312351287440540910064350177397419003025366597793474270601061370391803535880145999558232356829911435499936420929656853087974978793047171753333264341807057643127842288700234761350809188012253217884482378619576123232843061719148661476357242407493152616444206983218758357385207711528538062513070440761782131781893265361212798970043264346130864367173021974824324416636106614267367273140793770686477722695934714347031065357025885548457066302579007020809674881060738720371192978359007542105016366655347515602033491045564413113482464133251642427720142682261268044163144381427824011741021331772967100229130903692310099398402708087613308785102931491764634469476771103104244442144760163785194440639332862816113432417309477758897683881959176343377600741529983228231413789719038092063570447791822522679439059186322211613299057816802245097916967087042970284469796777782736815581047196402900716312616588514864897372275339959996717388744793023966501029269478956595490781893286807603570087882927967877223967102168711618531930161264610163719973717167513272190235982668718792156502697491006510303673533612924360881538842110852594546579858913916777751841347086932891813768447720574572770566571685229816979095700187225494525877314698873058886247269423154358203426648110423213260649583138538580078881744052231246662335098097797582677145092153806187916906281071053400905295833404966592706274352165110411067595939761227455644162346178938670428487512437915576912044482581578138570585225963901964325768960478663667191615910761430857572717483498614496481718743291085244368110184055525347792241011503779693417627230943502929636819639096708895261158622286217567828287020925426352861433383312625392990356383721270550543578739292454905436100364373363388824660213641440869272097043035580264432327098953960688933967480639637628343001479438083328182511910441795069618649177092697866119900499701381065990612553544527057017496317098484068777803879952484771557974170510322698844155746243597824110300873107375446765792616082456480327836542715626408762166889107956661511826601878915789685656129161135102820306386923556148720008490090105690898387903701963427175563954607825956932240922498106341526499380751504189243561734721780343995170894263982771442043243710522848874621361683856763858967122161554671577525099857680702796764526006812262672865031389934193170001596000541281255815925348107698190030755003612756968251795980298255904843584497408110732084891997434135737695486610778989145796780231202177323970336901843032398609774069469740807044718256713429128355491835826619772443897676683205289529186864961212490196196229271595545379073337209935259192522101574694079058695591063197412352192940019437417939200966977315214293257529578814503935906025581378286057187132858780072494537895747673973173354200712646416959829295980944071192191542059092429646087858761565992825506694529314415244531098223500551065456026841322063544754583856401852800953078312922154377775087348379837445067958328319632897623897815237044475908978372555200324661270330579537410792496614698875906508531271725520490007576544722211537932491851458219094830293595527459718522325030883411430642477239793034877620101564627662634924463141554848749044860109367112327646964687690328232793566785784171844027181017347538216243287613279312285711158454736163606535040433515090617867817980381610004855117915141784575915986168644960877078445816445490466566737563919300092073076027934945155188193112386228340370354861601952157834892546755105215427896578620098266050342885898207486322093016760477262499301676401325246976166113319076883229308157799963992782742872743599385335067884641975314209078754091345029545062758685010802099717429580094044766536806609756108727844309253862541365591249357734684224318968666871722035795413667772173725858247306150597046927273525926861843182620811025998684804029677885836368290202302177442636334183135987814040515286710631686434363223623149382637343894573587986575906994508387311695777124597486544766049128750811695502241847255432658740356406912938793857314441432467457416356236768032410568597005715391358856091122325309231974496773224556219892513965979818201377505988892162458899822889583163363736499706797264634888249551196271945825200274410324482103541406835624341831433110616434751757742632112223461740813257544259584254798067038678770135898076259090012848917804258096351956987933347755667704238703273445038814615456332743812762789695945419463134435324164353024073726906864053868171738250857133281524779830897642736246416340822519022919157060402342852779191078412413498193287629376493593907304733970300522918641811082783447839753407818165702367088239729174755824570855964510523880845977628435975842836713986817765296840640349571010284108759592849265108596171526351452115201341681750998825549241905216039079650093383112798771026584084362617638641164583556587857502317949871107872282923799577324336718691442476740109249628238214229101431505745774605130959299182796994092337580825972444832173405015308369498262466790887339228672252591362579791968004608765548268809196406708563546328303338108731951321485389562584805127871887492133972703648751952530962427729265980146411577823775919921796136974914363235079285005230359190697874169319252713528228714114212471376208330774803533609073923171180965152152555763075377018752249360430930227444291133838668806152367411483219193694584752667005642454841999232069256853468941788634377930531167222673063487035769982827861739000909089226505259604925278698266945555439161254641272332339421841356811825613317421398100634311707905746933509291837549314159737486959543397566772234262075816628082892188455487185723468765882848043103316670718911842003922880481158881818399418742576893676308230482155567507092099665070957244771623813590583761739195323370461023818950141555538063562535842860325158774074216904499351426708763573062638872641741182499504784004943739704645680238756344500349548005181580247024674766422913861273210121793301187168864515990751628819453297633536115486546611688222089586955856631937046019226189709185700965541187640733563397006555774869088736015226260360078720371950090731006151287620297098059858025840136477544762669927080565006193126941672447016419224236339045748866833367665603415504910958260740269202037862391692425711055720209989157687618780407674791404920642718421723403611602717781770815255771941762208598509078621075038971910288780886949488207270871155284649179904833262708781920017510730038707372639326687014806313562361641687615863914735845867213372943980900388761717702529166658508591549885916710604848426352125325956866730932678476841477555729595961015911664425264352779416023485926388295603323439902704120835046420317704816191380258625683347724028985856551231496443318494557557691843189723746111779635721752344455193330521570176010587986739846350599210454642687883038813396710248913047309578958375126342413937398909486943174890204089825369547035388876138194391210147389373462539219925850277522717412157763177325405564901666876332526918298444846880890124461768739669276828153389499865189004316423736867611715887377122242883781635596538176749504294892062541418843568155037678705528152393029291798158898363402892116866310372257603737698429324257026243162178479700080277709204977290477574336291193469826564419576212146301527746393922578323973176167314002319627271588687550175411930950811541321133683692295055557148084480479037584078180404778604419901003931443295557639649679070177727310588418076213169055619941000696032276130524109342341733917001574210556920826211327621153897938679684547683371999451907068001152337461314454856041087917693443930453942678839532055689571380232029203923378800478330246462873379893141229121837284917520178936220891641401756089887818284831861146433018062417918885885116600284886159856564549361544835327329649007968630177944802541321188229023646150522974039498324695302695648317544036959213448317894380747890182372393351440713553163099379064788454950452164295836279730889864206047693192548004960230353158551215440570073065708794216471727941072369520001950999487043855437790872998064650218281309165407324372024024070730163227600981885202240795573598081934555345409657412062059477819595656707940290870907759786877170943183608540048781131624676788871309499638989215523584107558874436081369506787304627027201354893396359643153109943431244238968390741100703774290425919153144118012203542878386017848428535313230585914247585780499012955247180934010853039266610882361800074885288836089303518473440116604137454420368880321877503729138684401494667801353171032569450118579147056659277773122486811240562681486873917987702148788917589180615945690306954133671575483092940763763944072216226818491602672276714044982410796474728757157413299732886419510600955195282076043731606973630130675816982042085646481857608079588092396977755714511027795174286200915577666527903531205369412064469282180290534108207268326084707767275330323329626410825099712575877971511065428834744381428809940889214012775065702360147312209257218393796127860223174356912951003287950806291016775362856940584261414247116444413554954825354240977218202800734587818937917101808595624520625554601217401579367831183150580854253546014254564783983011195242341724913613328033214201768978191310402524198320706246356886115223290561924961270195543615298514225999276799428296743276248888599980547486090047284785747933645929658927862284769363013778056411424371783476064509715845936102906353661992714725820398818175626582873269034025207110070600337738947280581464434290822644677853655310588174916366436762984293090083662559695580762541072946265013197254648691907800479748447047288252805911245646314986439894726824003814323126453721958121434193567055997619254418991538202568413439146020890466218980149259232496207252091011392496662197069870083288693883872291358074966094740621191708871852502423982014536910084937211792377770585596550031193560369555285233085140645168368020766397113103287439677142695898749272051967929352634103314154288001721407078760151746746018050490497341674597383079771010969795206566725612834530608892363494686424124305546172192956110400800845810326048238071603603467386988607409433119616962651729039189480673232608222366808956203653122991846008025021700152050762878942707566578041131467863895080469389429323526172326855310125245818235111846477165267969035781604388093455694438410401270543142482421256172241953992014698717282144511940146872163877178458243366192254086485090768593780691018991728718150461162124610646450189552605265378032009658067580253318349694505496816120948668829735669602320441004378902470089232327918270778151357362228807533903035745565342637855672722267605430503299761362921431841476055081656150528765292872650189001081444256559767113615224007073818766715367361790648923457909636186680780338783747196612301895030195341338368855629602194036131057986549911232626513643742584628419944938586494285464425988411973046392534775827267520084310957778597250703507099959316980372086480442905821737324695092266863069868130740299451819133219686853673425583446869156286218692835132048046445552585719611049378831641782202763673817806839799207141996732975624185489261411611192725318673619493122628129532723312535110687712703337475616245936391162421949584475085016933361485015090390428801594541208056031836468165100191278038041883185473074797394835758695303554527835010233847657085259747964385035876604479905341480067266360617035523020220148387849838897321498897922385072900305422440758386455833721434071755715485273725448142192429697225241366227846192928716465599400691654133775634634608683352642952309092163734482782688789508816774739178690478228414336721107623558529357375638000783110010162316506410420356137417598640201829944273469724193396990942896837117589873309325557128031957872307154041477152475058355782244651072769782829489428779502173160184230449477102050184449700189036049385872256579944104840612596389747085150949652354512264475943714521625557792372364440892023634568827395519239109130885254076485271263765296198467337484858059011206163181732814427722102810570699283686410853675265056930589461867703382116614930054895205098595738210088685550745681359343024929408568286026439472508978221825629169595319196283311459780224655325989559336913315050086480517790239602542606715056157278799782517629244289165374492700916678527390039562347664151999394169693639187188105795057483752976772786779483341976148212590351080828337287190499238133174117820704947282888237866968683218633965976059359868014705406485440918058719225874326316247277976876243204136024350047406007475157569089520617942785600572090398813313328878353082724581853209160032945837033889724687342683954591302066201547568725891056119546745546294411212722550529192235199159824891203698815676153783348643978681259069836942437363677571627199865113496356102749013612716630441058581102913562803246228025482630113044291643352762570572513065722102706020409923270510213315663128098722937542995221613534179335773131396498457005328826888434023676185331083788032298172546494140332190163507618761694897248419214228946568666427803518281396628765379949825165231635344586022854121687457305694487428326191035342916536888537029670355932976751936594897594008224043613390082984953436805208835149939760112686386785103554270496553876935798106249749947166123440978755439464308236052564432371907754233015018088112957771329485503205571251941315906497237869869067670763916616923472307530603270691838356078065177095120930987021591747061203750465223873973342529127087148507427321869059649996664407838996018642861969242085097086473659522836765374572466594561471026550684290763496822447018532974377767404724303950978503645775899917870789304776483937777045204877914304001549140145518281759141769586358805270510578111717077417660530543259238082834595799788238968623281290942750483604528764479919993256511720115956256172276624951185451750360273047114918765613547377121896502948917804580151854315679442337947510259975229169828855525291847507626321269633400698016338397440083009687533619406134410429659365636986210419727992145185741761531702852744419718966920775445608045432050693330592149029334351705766771267048737070092147933057188474213356239432384923076944117880506256075101972784482552680536448217562434644398484876065934180025337912391487560950558202678118851264190722168345292520597879411717579328275986693647410004269164732423882382811346092987273023650454506212605436796448528744689547744784905907728498919174032179695166504471678161234959287259158868533594255025923616910626905690356434738784724543790980446656776467398406763941440847649428532184465249753337310279049641181457528462215071992783028238517399848268563829840503927828634217222862849984334316603571496997306547753136277038548127601672695528426277358828505865142772062085911765895016076449595736928629564803368146882797570267264955461428477824561026339968629502663446778055437844527678119725820308792953455531238349576899179089557974238669034789777864484388260644691022931379165240134438641145734488591458352293541248933088533301201152825275601715495656851685271730552311489815318344350094016353924357678822160418372445650329862890668771131647256899654953334208505952966568298579902069832082176793470455709690633390144489717028583268708794592791583497616552156591886079200718352744793335157822385544730363272811623743418551214331521722796967215881944371054008580553887750531188004733087468905578418131397844696942872628135964971658629359693881761022019883888805904406617441375339693583402385755146562264855038690290929311620844413163675942186451416568832025053859525946556539068361540199337511429319612015913893608876672522327143222603630255742164814671411737355669969074480747738276401954481924297850181445181389806565564903364479268180217623832176701339541549923665037692703540117821879571714023177627427140634134473627115386933252142436747736387049523397240985852070096475971227358391093292071180699458122774442802578753435925436361327833794477577252455565458961473055489049948347971024430488795883894652044823353940033219234710270741383513773930123470097400618179176498687466773733636134997359897088842366909529081509815032173381744256251482048954053929801486198251607556332212025000054850284494745176109896687428586189003909700367530268649431913799020772531591238659367689554673903508954549516362161097901736126301978454945392511270730569124862928624140512082981002662670265716705371440236814564666778006818425266624013927026278241045661186405328331594763036225222087731430701406692504549342821590225909188436325814411603085191989798245284984994533768279457905202758063286933810794007935841564283766024293235971383527389171059274698076872802216378390908254266005399473311660722329008301810573752676510570034747405291756445788781489209581903058494998555923467981082417788678397382910817615342529029498462002261387913787169950435719537482470475735107749743491827599817831165610286435485498092422042265472959015748919462958930735257487384794528586313499006516326251319989094860700317483267360061246574925850607445418556588009762766576141273717508123446533212139011633870612217027251328649484941942635141667042523255238350205525850754427736989097387122032037929632440163334178542502650295186670682718043565336327990846278060623333987789724808571264915675298665240672393642902048909015752340106574064822365358182703774215149571315550425007659405040085197205507085935341657025067652560845376959301811393420228310880610386169006950977670567946077871572203439866835157263174481605722637586343183283384552688733388731543801650416986604878557598699842176741318716206166119039822451237063726545533889216150073065644711439992504501431043139437816358124408738248553433531172245461800156150374169114809083678515527522464042340180390865175799829601275421000662285391785570739546214224159982599714351183859326980377443194222535532137841351390113623935841928034846086342904943720481223196445126102480406025445701452116022096322959054595870287426201384999204331211778683039305965186800249916842281373069886058196888001271642894061207595105505829895459816941914344736038095256662605875819919911861720163792820093035977799924093851939220941200348784714341327078473689753142749289234083545797621350646673023344383578475220008039387139177088868451491987744241999164848046321030005513111907412575652871312246502592474091562962028974095081789497850703897604247815176273091791920224742229219655003299851841815939523337881163673115152453291545404943257520498916570186508996555481754987698791992843265134432348830170258071093037541239934631527047642000763461391917739461569276083768240913490024859629423876424431694071154054923960650598428145112616545986768927042381935447392910461128960371390034377986143579245926054245805225596545726381129570293153997647647161525801471288693234973583724732728238494704611358145759591952158597937610898152586388703377170535432418238316130747243560203262738241508050957097313958789479850979725275957361137172396379169789861470315602273276845469894081990045090370676624472069290491501848734406138826618075902998888799009373774023375074673965009621985013884225201557245995357499811578329645866002535987201235490205176367409897424261986733316871728248300551625045088958940183529510163122017523688384343379832968703564517394331733316177991255936434716499590706457227794731833468139592618827324169133334318337656389179828378699919728440120941259628075329916449672645616082803574171356890791572085744809049791483129109882059454525833909303486928293885457644688782931435447868169832671926484380232786039599863623251225362610229115252820957095120869189698335579290637844029206188381129878250061369737795150130853955167517085631710421248994753315025886718402073565383669683776330835036497174345266223938629467051444257622085141243038250088909263050167218807892750127241157610302057308608832347374650777831641203312314675733032164387994043258899580310170724588613748151939487584278257976318011987825300611491140922233401926127408684513117604162538080680939892183015011831681352794624438482515999796530068977874323451546875280161810229499989090067153218613196511138091758588684934772062540377998380100000337101965091474302238996319112080781663733889774891908432176845713119734454682542491535267598930193069511704915559122481433833328615276925652280636691654027434558481202637257082835274729219156463626794720493434164037585740626635769773590031557189629033469974501089207135557703719062255863867565528880613614882255100080455965697311524176834474703336067778430406862040382379954832326912735610996709455453323856003253098882952883164528510453637756973453471695995692634177997130686218748347987502576523353645685503306725193974859562503818284456311064531303736169210373077590173933776933640763748998382312752461074021405317416278549880759635719338656317741094122681071896494221340256795475585591315241381280948631691197596453013768800559308681644014377648401168168224785553680098695261044416623516391852625929744853676889864056981514756554144019532575610031837482879516029701450678885578681622507875080782208609888362210553271817293729397945152192547659459696457316584652246126865619343215667601866851130485313021310090611874555214488874563335067305236109289235044333635266919147860664844573138438162749569567938764687826560057102110042372872788594607110515759236889975486404224734068813559752286223043296467253133785578582723319496581262390330029139797099388888789550795272183712141370708307095505886678894167937907881070606078634545644450447751401180988618592477633897569289590247796487766883522443927759814649474929806528534756158635736369472327820657550874859345808366519455613833071466472487414642672726197266297129528736431291491278977358633891115947546922278238335997558445957936443760003492147909018843910723826896543675448907487913441776892098379311331906234154265256085079401533553533448556104587143037406453349905354243194401022045454355644817509995645617875378406201561524775430674835516576376730288066936193210166682083039788212364293748544710735735305842741187861239319646270794910647746448158105778747988367947000718587412486710447879681790737315374148937610980469454649198883902375658757771673763002873427012625564269101863485141265537981204898585271370395836199161732177398327850072773380029636833951806984832607723339146009181829429815150735954059642017337439726500463788160726511420053733248008787106033576644728192809707858764899833049333555299624276052815013013193787300426312872959977739600949346167171029112847117383581828975319530282256405191096850223556242268585505026610500082164301053975007706665984125374160888548657080084715625300479040778739008554633136699861964775397578245330413614089192581298981559618985561282833415765310104192224687722531842810265589683363866218524284363396996138933111936547029604987861939083075235616970352564293197564442966513745633051447406221525425023860448050929162968881964199761067998918032359516911335193779687043925193607239404276943377550393097203479164825438254380502771916657995919585049477104232590551836373494322352838666425369179859052643171798648980992580617913721255093143704251985614688220258779965531278209924698376179495724394477774473099094140759803498578744666038449887901245213701660527611081343874087144853128605418549822480752103882973158096951335186275732693527355573696195274320718229749525673378954632508877868399120997209919893217507066769359224492600725497251567420375873653093219630004154437288596592031780615773570486398305384289548817464550072365106476725470300267519906225496666175930180107682360992432986962847047614998931632495904883827642960986656792165149750914173044739518186636852437693151506043532821418753302984183475656099538403679531592695976249030861931952443010708390368111420038483775154146639343551587970463826188778629621085675350602442575801013842433581822265523005764622740757300813673990799898382392989357825618021962454083001578729437899237165855546219650829313789851414983415803895402376324860287173225673147862189626299498798748150227726618774968695557172766379448775207402352512805524723636514397160305416485570334462829901541011598889535618775344740664379934202433551524360211208711757625720688168992233441547673996986796070026627702746920066266323007263961052070666140100324531729670537301174391246161282515790745763518140488681859309341481861853151390893937549230027006442812319497692354984203566777152150817306444578203629286120224137958991821092269073940077359873470457895614730435693116950823025137665497083868208478267304171230425052859617479548055163668386104629925281611722951900103319788172473868966113564355458474575438714107105198656678622009425206161830097026793385974600983886971962923689077175960387172274861808211874757650670116999617910234554649905031686332403056929424554480634581676616776275121734197998634955221846158002677155534801747846410304644597674235168996958904923999607181732806928720196931506596209135413914587940100097246226694635826809560107160533960679085087718309327279536318277113271262605416695756626822625466974024537698741307636032195178217670680235355229845014429511664807409385041294996485806853268217111084973879040317962447842247698650138341946029775807313919327938351342369673668719597196986050646139283021230706005229092233706719204150524273472149173932192177813153856199009596154177312382388288622707365198777870021336044877330199893226227791751206125712175088027868572176664258753176534059401942306317290018532446584712568859200661822988559519141693805268225664622395576627416243379338520274902163813890947341423065218671671514076412656339125148540850399631928691492559469874124979989711066919020151002499825508601468554169982496730856707733786750265627174616858417899449241878503663200361032769315973815320042684468477821317709960448419657336642329944842599996178374590624965370749557265444423368857221396694546509023810291614499168924981728324015580914851307145951676081532760912766627904402803198794526581397312775177879716114969483339837665601252056370859423442233597297741108168081320352697112586712236867958001018396395094492667547983307397834867882106418209107366345172563348581881166208686723995164868177921293579611887722649551208864707814539469225121270696757265065937506253664952484144826991514570014700252703337057192730033630164672085477642135272185662019872373780201896125800188634332338250145408065718077963719873608456619966415890254906295404970450063697399363815020352028642657660962530857685250183450968950615391401470214976402776157663244129758310377465659426680467010092488651494505430595532074140435926299633639855500453909708207286932188193421737964311621332129533545528556135193673364251318662412317827011759336678170678214731774339936960221082828301246716546003079618240076614891065217145655519253514979087125732479754913734949117232478023094068636700279569338442312257828524374231983687239054979325036522696781463141346089713957999606524082432322077469647647813049454402812615362742551678260137750839717836952835836554455344032057923710270895082413021375959937080697292664767752591278421390600519871236747652256853861199047801744937589266884902473594040978955413083678088791659917629090721619005235933526226770377973008684777355352213254921523638223423018759200983471093152184811030455009537308013825261911346457721131065103706392904597967956413808907580568871555375165821625431697435657012218547630939110085697089912865791061913173326814078807111954594028211372966360035068553611481836374314260355222532548095509495127363973853164870602611844358766576731545762263632787947266274233079356537717409190029293493336785807870639582860711504402999025223335952713541963645258519610309128857729941720314203879702677140855136618543231205727968797183494256644499866895737403605380865384458350685353578409104713595596948774959245465827075469636248519209506377533702591822956071017557893042591005694873865364954073141855443648900529754516171383621386702443523465091821998427957354471477591240248389405238593313764253534128018617880135128426550064262601662194997686575791670996187357321109929983409032979506730630304240190817721011662412532129803622424107415486164526730118600221916647525265843131709319293521062062951696226842081322032801534269095771612967199348572200462324677733743425642002464567838154799722048172938574388247314019175692299786754454734807586003081009722198394568043224268930775314853711418727107461092442611892232551219033068090653614914898505957989738582674343576902817392309253818127286713375011697923305359333464956756377304976215042146965597305304740260027692715948838379269166773110152972982993714159983059605609345070206236264005208822271722934091573977321979836581714440523558287151343049937872470224567813657058789902372860636346048465162044841279474605929371168712344704822696263476329639680294832034758084766381046156833660110726020317829570626416932014614457258946262867766197547262576556058957394800506269833013292062945860972526939437283321426547539700847071862458030314916120522029544757311414281566058577377716879981455392055207647835030431288868305955788358021413363613180651075049959186342050861249300161508315353406963287936258198801116001124526751432617792876600612967050769681779993814350306248412389792362030326653902591552692597534756041078220840097934814447515468645544063043949360736504782516099302619712270520806841272815313410755685047930480452525239497541061181275829577868777218208400071989758930117712366937624336148257284108340498925401139906157514553396086086110452047748569291385293123341614949390745551608773140530931380214250210331601570964003660208214188366882201706652759547655029736784700052216522540140294047012706757741085438163447350711823433365337736387711311375714033441303586472853490448258833245149025926187869139211115094101552623641819616980499833862428740993110581688384828295339596727149375319286000522133286806199161254626262397096723242138615054894915830429397995450370733072299093759259225868878726851604446481890613479217017748644608015663549532738155371548623295809602895153511601957298372526549241571524475116593941578217950573390244246365324594967886877502758183256645272171699400149696007596680117797025544617230071917828210729121379044868990459204744194687681920132020209903108190085040193179733468934390402766970932491572279171336199675682549059069209484880139580548955357616990539926664256755221483103164451977883845501832083091327450795041182962439329231460965848025893224956291381463711344647882461374928923892391441855857581730871331771098093813679292670964124169575679051326282510540709562072951134682494183686264908698884407062212769294036981620098088807962110954274729852708971480280970824528322235410907849032845104352656475035059742749635584893617194254616192748661010342473068765243867694419726934547337840957348846563063225854823561229359710927775850709386667537783559262134577118869862023816448807394713770853006761291668462582306256471052624486369029774525581547672223375025110299358966985592206485108239905137244736867557132615446295806130991019907244143205251493240548786549729053668671104304531528595785521451954821935749790190936105915361049794408456082885159295419129152433822034994462024862541025694180044965957258265703265863445292637760815072430467410770581717824630892678913491893263496423930148728364770435513940508894998672618186616219644374667295397036615099444121109884435826340891378827557599264364535273549286062515441522631223102482389259172475844912411577641343480685089912754691914591243848691376577048423591651814343249143765385977593209120825511529986270174832203001716792568706161822247284533672716765054382871834832040536767997030443688857565903880698335397953318286643916807280996938937984726761087689459920145329679094220251895682516002960844011423049685627128044292511149434326081152526319944508989627127067591591048828987106404427561656773626314628342222139169083147441360898072328617737547513402426169789808699626099873120313933902051281229594548403236229206920691341388836144460392629161630222525700420479253313541620917329127455641895446418544215438940037794276209423927503127987762750225557599106651372640778603455530500906462108842025046702778244517056615176105070614264836172268101267807852456525420605644296469166009324936335748632146590487166836836565037196207445083325092668698150458955770964393912277057015348964329631490067560611047776103236790838507514234135858812298226954280638979477902774363909448276142680272455531413788566304671405608417121738046065458788698150197456811319947594700979975937499280529719890545656535958920627633244785290673691096638105228254390318556694426156968442858999846792327807271910268858989463684379365053646803312809482331374956971447683282887673648177579220890035223324670085667352268680395225461993070863710613293561140482866484077185234261008443645971465287775159448905034550540469576164670463325358592827189861445950334075359005075964951519969239077699375775195113616921073067245263049528372299064092356190288651847785115349067019827310398560124755115651799158784230971424839356667239187090683100088894894560113876706249651760351327937126959966669936304058427304078297872276058692720395565586366991981645965637654576041483424922144581687805678209378690085586487730111688571337396062673050304882714860983515047359965094714391207838353321808937002143302321974774995512869674532045376000335940476162734064000740832760507067783577843554988084729862902486716236258971045346874196260483130877395970933217100206260402799587219489645751709506064687188109764436625827855383433113886376188724130740136037846185611091139023603614622881389037980784168212220522180630853556291960479660492582074353179998252095899330130162012482578709519446296094684689451413871196359787445207074504547970807171767356379095614248275051428080436042082269410984041096078787394447882473090783698221734284298401558252127194997536531851617297012139530353960957639977737967267197622972726505131228151210990728307038727345673389903172686262734326578938785722140308768303436639309585533910311851012294084642325177697968239827984641087957485288231276261844163422083944777260938545904332795930520198380141260317694924788528526745396448173027662730411119340987313093480141582523212665276215629254105256750455919569011721218179707533480590132548926234382386457022379161492273281537325735372995534903604969517861828385598263312045326795038238855998541622022004972452721289245364973731728113796671787501877521321892081934375433128094816444269261928797698008603278148436584448155706914065977804581238530846128438800029563938844569634382149836288859367489526217862867898307576652023093672986534506024179578150349500822115949139125586890342489673432828543867152002589551796609491229264143708329915524612359463237001539766637551061404649126390771647852152634653580555997516712228351854892817678592302970945725745266797331273466952856236799942200891141139279827901788292720684043576922468988924135466108911588246577713375660782324900538603666345920611334864902364963424118192129199361485163620868089645118419405872947897142259608652347204639619591382653927405402657663003259447220592191031054231750104969799721078090464479958333176687317842549645990321153558226652832331637942143275373825753183281730195063381993393967200274580281163099752477109187197593118135451694149767687467539697601816675097328688556701032299701748224179195567809475761858189676529785068845089754669472513163095893278022834691512783548383846493851881736125962302612638197500745855252389371971524610095984006103519004293627984329728685911526684418503103659205839352204099576570498629850550096883804264404342081973281636614117668158081724943623498105183569981661045668258683256253726262367572946959349523480557231834428764491665231936134737637287549877454832529659784614942009901875537710866198811212669424083389112375275579400630767934138039255250205447060867322463064451632278470972328076496812730533871984824317889076259133302827412747980811448714797332255561140797716261730393392031724613154364290941919839838364015828431631568234314741301103590776692353663237873007391977918687900798364908351147586616821227368546706478177685594839032092816589873840265699636966055683682417357348710594227480348596936299136401755278601741976820762534759504149971984301693430977011286792811014248773004862534798288757946546331471387119131687894054040697008760108819000486418444509188752771981656681560746800065387976068455757158144154640077653030689309484635825053938507868691089726340340635752976756800616597862894138282767857937179479546370655361406027304328994575918801564533060929844090790625349940354295413905840096291512751850896922605830951056567317929558509434100885440418495467194252595091068690974870731719106697112594392475519684456594573576261283168707075640249399437939997079211362404695109358678880972179525107238400985980088908589960348312560584202625659020506044333550374708505330780680572236878283794968522000615586860309037514859584805256511625328128879217521508989658994639643279577376379200136834323085025739700530921655712911457786679866605984086749645926087764932183417623779426805312021660833305099629609911461416587284264530100393041239830002973878380443108239447377087385830431294520214802306716245983735651677270443979932400677146361734343130172802204137178530172781399162475704726920687683257114526187300638325261332726221968467272398152683567685199941341263433564606561684702393662055455422131289899257833034765748359314593415007123562898788834161166748367575202691878725069305375244907188103097876048666921009550426916848903091259404766006691560623172910096550881367488775824235557736692499606733423781100670612836106825109183128510324997361474882790725529985740345206828253406595986749530739580900656055771505674694621262783561609335717680511652734967886843629242737617664870824688785167863010761049659960675120879755197203522425961072104009256605197053957528353411689260574000918791496050280681053519955631287432248088522254404364609551913724868770601960258925577851294531476650752498143083936785619036963202088893918928985299498244213020364460023742802396256030011494431285648468202373793953685754512542574441644699468070515156194426416925257259091791455678960794099426671991050832942289450717739921889747230980525471673274314158945792323293615449951271331595091534863032125141679815301540781742259867524354387116288180750173864505069154353750246468572751689377725186901215240668651697246025698934959548788304840995772808007175014513943162447905269213793707093568904606039548718282409150670219172715751057915883374822163694797746314245723628812810742140758587272125309236199345029206955514512347841811671660885698500261067374173118333688279508548104228189960000865748368947326137232241333596300145294047676238943156129433903169178179842182733585690716699482370911699561961193200237575985442838772173344698204141321461438544645320388353325293318239119726762742832839937618607985156599231619249595979385764598578561830969897809575438589658120229990265076315615119950609953757552171370064429115002770519919218159156978398677081213146292763381610150916709480723175731655946405702588320517852126417315922757228572287567153205976159778630226569258097727798388157543358176671722700020423112556089307829065920741790682673685420845799209342526809454039610901991212257125603364859063830669321700087511152587302224126645726063590306557200444031908928375994202196608892386894502003041252092174441683021032507120068541982569115249422791465035053491515047617798268658920096311206230960466823104944561804640342139382163961457990075358138912929378527794640500464094562498095606883103402072538552179455254310391092218521944652284594687675651983526593724345346716478974757573930514275090382140956152943768050098974908678583370125301549004257722488247857577253467594102281197101803134883976749269881325557645373450303467102400198265837837895987523527194356419614224935471643086060920076380557051348830085306617301021986284659401621095261000007321080820102461529485840548464479390889463574586995054704376232409684671882849786162898620139861508046070494680162408717052964775859875023305961476020819185245690811668195501205699824978251219598831849133739553897007297149802721856636305660342858530373796859596748966534368313506043619464371187031305418423962593668432079699317282865434652865040651711857570480547581510961037965109537940031656671848810334098165021621780043600662238491305806224847802939278424528382496395650192231788259425451885604502367022882578171081477713871615507953576099645535411763832658239042880781627590526055337666362333259236882256124196079161377440040058515008414029808949354368302842171910007534440215821476504858266702342567845344849209777606940574792778341912787049147317504073866585076046035234558314853094754007556894895504532310265909174115588404719785684597712761321675405793861212225566194413226331850064952787159568921862632118892606863671502904851439355941469482816409673379401404865860435489246277464892916068939375347345094070788423666479954892267744963247191586904720459704326224496163155407831047219279659084085489279715821002407531808474972595820235034183236692487132780582520708080405761957435851753854686119375708542180008334573174108338157879881404424833438395249694654410319011367121507555202620732065712772181516505423577578761832264664096028284401365970146019629589451036365495673501356633673747890672021482218864466609512714907829597915318522747369494265171902933747278160504966175124793118886346339051357109837377838449611943247746312641489481896643436719955375924958781862937766054146816450174619336601268872633092402407627182469752227670522943781517418662695533239138349208869919538489768452350266370231568465781033303919258585846858804874442860390207063215316580454273417681137401537305117898068643640867417596374674481930060831796956455252907038628587423982367118155763374034860580851254683998348479463784417195497596401356721139599356317577037108062037004729257501524599250527180164885971531655617432080141455336813984400291893155763763799668118267513918658537699517543785372406510979583039608838491284315474949885218153400592275527133642943596017483656547501769786152811149000089631236122421211331137002529128532151464024455151611833824064239403255431188859592953543236151420335502097493021667444078642870634762971974993680592472658663761802125965599398848103843829957251921061035329982847990820035847303496346430557063286078873138585043651655671141842415561145325123562507907219501695799020639795016945415038787491735662639597758085848577471325654737916163418531268318214577409810527554320416010595154206167837059423044063055398877257896904770138275971758543263797754690430731209679596826570892826558654223743510713864068673566664752268211357321802797055871522870014957085056000698019548091898476752900558138907234703120315399609235410075580929236001892697557808964472930942442099050606975769634477504307546451094835448690236334336237889242978559122196850799790775861422019010237300947897404919942423038921975688365120533651640062424415110605552305025004929718969582653302691369038023121287474343830939046417915644168473976500516813333195991856068057618508644557610047534884798950442467264827031222242836536093624192479919239380769070390262621432124005080115019613730161342104342915108539995253406127176702354830009063523201582858513551368334846516092767333349999694169054242066965466417998431434084307652363463917964735405080052479766737305734391958066745854949582827711880601709840165329517891121287248062845616046419542727871864636113196743656527335027189405098182253948202576041035611042725916200597992616931858001596788589367844088497204509093228820273160334042798133865110890774953569632575587341699874069495744853853679475206577564157289654299506410364003364609740148376716532383108616459516732797447130312351128406380239692049616652915948459086369252708269946862723674976001586692853228233317370822097759537940253992711336016705779237360381928700485169421893294513728268200146421610283955601132893764538225427095237468812429049382216804058307300827912195333154655924274886432010504356154158302943493857487816106942094730065348226092217647107462867454925668170088512900041965156981037650814193363106326775402295203733623462821164090803508074009205636554882339795364809605879706541525442677445802662154526234391864360191914956478312259935341018804036764764848683331622900617540796333570685412277216272474617548058776522263205384122196332815859911444187111698618441738062237719860553157048051963328205591242730950152986887148001360280749537504600169270491350209637020988021680934263694341531428413231255344352934966656317224064447157653221694203180038880619795087335739825265685358477515124157678800459452461698169225392590009086127785037998699117382708303485133345827220087606305028159820845047185968298563265165457935944882979231059773911594289732088483866835357656750313604008993500220480948914054912750542717382310335941557324362873417790856992508022289662352182944784979810619462659744804348514034792991179300113448277966242442255142615002795103639490597882498953220375519095006371335457946716214362169773096430748744685896520941705323112517924862428263836409613902905568949077611985780264186934973490392402603037063633254254649432846420674693973791059146423222878000749261798444661223720309502716438847206213813579938328077761698421313428127149278946378187600124970895485284480500427314654859968627175317398360257557195943464121258660034422498743466531793894742597969857283611737332958851846264368598758452361252885524361913731475101962585855445886972304418562250906882983465277077962275087839256089467589771649098447592816920034023714230394289444268224100644915578083322810352551730507475508007601193713635271856606195628217792028084649467650226692998860187450948536203138865319188088683957619603750314449069555685849183469650795991939431683471200478919867341173769587803083793366399858243735775315723293136850064597784014645460776079401157476665988011254064486112116768256494599221498448704257771898048236495077166442177672270581934250644012087347711442393922930208137668985930368178939027438644345485153367408508240643480584434296267850441738848846062822642345497472438057545985684086177528706054327236305616311339091493833878792688786917277831427994385783480536894022099414549039293560246309990616485243598931004890916684322474960237806223373503486027543874229175886075814802007008993781111015947671561862790385008949550665414398267373065115308200319438821200426600083478603527242874422759580469183917006227151090613849803772906865584859859059153509894398912512136764845473519099519307035798116339619281442609532860076236676975401272876304224914449079547158896097368706645976025978182972023125543138514356687682119836435402556482095164002090633673448992568145819847302151602819312965551285759139542339862192456061716702735196674493046739436373810912051299340363217365930327266421098671224029275636507920615778273369891310411331239459414596781680038839870296633209063075650073702197747986190567011188867651531500199175971024948933862491346338000631378028799726202365483744882907600245382752672017771857475710928965064955387283433148284638251237958106278974065802891173603434379685836215968471937204401320985560849360494508447841548857627496576957571336864163331632738992935322913666739615979355238531859546252842519485473745987585083650754183986087615906206670406320337597634802038649299095647845729148828116908641342862116892949054035953908245047281802385153176772363676827669557076266333088385580268638759552441346808413707889304270905438746014180050492474552069615913247228646975730626290323275267030743585013132272275771756859337700861176730316603882793122779212073445483894041715841075369155448019501149567236033471958152031035343768181520679725622984834587408661286047666053237218679105396668346179285039806461586197146922994743499633668517560781810277398355683989746501469234740803547462983744232074090955067893508571966036980674235571182221386966357392791955829647659607022619058560271089761345728321210032074576735665191676729666055156957353401774623773187254448864974098664580836975430372263374965535624907979642988971313324411272649617268250103125831289516889991260121004162992683644079333754519334061947371076849606075572259517164336647377000426468369456641183939761153088317064081318436654703281450565255798149899138453076087349844447025585483718246852157886854608297013212203526649000519708510438325458069937031034650251572809986397515505750488493683357454695926355054337797177629391222476779368308530828766557621134131835441109723427232668287171402230261768748094710857926955713940921053971640404327768599751616963794189178886523763174689059688841483782285748750182293838086431061355842627295360365361799111554202568372014853472142895989588379408204252030003275203821146819232719787464227610256737734884239648902569933069452675882583334033022153904487003315311780335973220087368088127166576121588078595159723021755832542208664975436786105458548136539336756191728892362008272841362776590821647487871625737578538804912044156323366027291249243889135279191386652208067886801530433105586049374210952151657483218042757820242157120431921286477915964154280068634924116755859317341063560916548569936811182305018708066454897755409925193421585498396939900611425156990706759644898079564136582730960737048234672527540660771902602778483309694083017921267107201716210975778663785122576621601599259538604599994429434874732156454488612450565787589495146570868539000326149147566055748373098976708065340761484598047638618994132873368390303442334761927278254847341991754683438552129378912355056477055065129328231835072461219752123640102078951607194667236091055482076282685486675128183137303851382272586373565281311331601945725726276643819531930384462849317211836824351133122192760491865242920052242019706094166462518941690787808485715801664610019945671383454852568252981759689070556424875943671292856652017337412019949811255446261718667679065304104517856962917762305963970748772443415832293576371789449590363788963128706979169545676979105149353038228377510375094866869682307029868584699922996795456866741798703266581852205659109532940882552131721942505851695593065287083834448483401214291894986719085737583714887600878527536913615982222985283812679503897513004026695844521944789234253674951689730085015452188862963947819350573610191864790187213130961003743394731697620403456494780939322302048244745561538621103969654938387322569057841542754889433172060083323584619813653595619118289609924374720326537244891053464100913778881518942650833439966251919961884854293754884393326712876551144117754303939665792589754808056521696561582838941446519611373218242593156280457990408836080175600158635836812883500708446250408444591125993146241589750945781096690576703150848441453550023475389670133998666791900381482610811791491966622733058441352555431572091042012996938753583978520687232353591320423260302653640607941367202842224573782224755850442593154280859222862812122741510483443217601371389502276966620956069404330273146968737083813107960640203214310368391815984440540510956620901822673228774957042020885914859672464096149990249450826412783980973866616614366221952031807766067241432592099001730040783799396742138770362066129372551678235147916722025575120315671499013225039485754852820910933311157234423251166067750991748541614308154056830053451460699159698937990765252553703238426351729273148650065545680870340675496313456182395574890362579001510151822419806165692560706210709802200666852892206906265119328848249133167073273558825232644010663708063402610029117290098976737781867054010886406655454476508870361570924350244266994892203049895503811788032534455227904632369587767443686326459409349391814108045970618199034148102194092185444592032949083780382189116873265694803906652189513459519721162361994303264459761162796074362722508830852825296982153008339572294426275177640970938484429342874068013153627292081369947515013166859649249808887968121859771210450067830156135947893659747358219742027621367886866680086273808329026480432099965305907982295056418288783294976869745481006691393789759984106262558550363141055625562599136839046972419198664343571046500383896951696640489955525423354089149735918531950594422602505366901028139018959616114461918369083518600986622301427477787893579591021356990609261540805293276271801499351523112541641132847224765155755268069948180172724591450218144858646276989882598028209030246171053178324135553071732852712881014833457724744335100084070829346278482728635355366871523012868659674573982467802245537462583455087978755274287830927118995133139480168541331540690271604030001417835053712118660069344958844135308166615772182548179921426100591913701885258403070069059308918106400830252737199934776717297903570039116463350408351366240773506902227653085001591500168266361455452525088918666227258430934549278477967726355447975594139355821370716925750066504193861658676538797996823669291627476471467213708532052865020788860943599439734745387083544771501843320022345522080941339415010677749641671791197979594462830786957379184808431998737882973317459651696221378081548834644278214435115312562296439832875589835923412322304451973942599557133813773341694326720665487230530239404872494893698440059242356793634690599061514521530099804179363003899338085296466605499599699298924286805911528271278179983128536199086427179192368473053497420383835798175736373349115212431820029645449744421269106801962901584164940081926540964596065538658418128248128090484383999026548953675920548967729565754734726757238980941891990780799087943942844321381568660553937955560690282714087492873323506921116824275527455815001166879989455636251885708960601523403993612226969627764160056644734538065100477176539154680776346766019215019264111950360935835701041797287167698814882182016885169304810679541122416357783799351489640179366869208509934665297208037298479797546536948093675490171937526548794023550138848612009685769265980631148498082932461685434635435963975350990576733024725088495656970401038042289608146973339328737733053678582780370603370781339537190229982685146928769768175270665259679445207401077782523450040372435775001574673408571215617198682713097582641970195874470008318244275410635981477277609920672518581090675344322879994388766887698992563467213624390844452109446300472295995550312841959762432956939818941492616140768214611582276916888175745098074608854861864566025456679539621205521314625020269462666224228871404870484578203240004924842588589614916338066844483144415808357354761342030155320312623998754158711883511496931071773017809389815885289629306317010968799995445665485671396169543657023760425019589263023084023198209801374922782869345705612625366115863520120405632026266969007789969753984624703556139314373611266786605650720900660301761871124181257844760517156510721282929930427520492242557817902968056803442069646312627355050365728877001953454489315153606664000641902359510588150471106602382011314841163773294156751202265136558233860581325841712311088292520251145891955535815767798009612666186946131987018817553013146049792898244806767837209268372178199770413388284218926078447625073330943609591405043518645197721164050773860827495211304731029770024079605039623618151638387769014281485029862461169052421583204418091675528883474416124931400904210153670944725979449108162431550239571843267738348976259095039534189981559906168658186452197024649655700985559718695222341644681871626833566802423874279932360590745425738582538696228530336500466273077803670661442849309820627266846085511011972953048485075968307344991045721186644320022468912851637251189254762928782856729886352759031012294788099990291337264803243314069109532741554864840790023373952945545371124723283753629501452877640082578150154518697134525896056500357756660538807528836679141371698424182058990356913932494703322547786159108187997359560164518038225372315808632436495669710943976284880817528032896128704406701390411011822606790353298616159935621435290196073090615610991783257844047207720070310944832392619472246976222234076052907626477690611412905606225032363652049202812751473310558680583498549677879291661068264925107813904736857666815629999794325128155988194602101161159470008419160043980530947432386066326269942152671063275887537785928205473601573447121154983291211200033899126131699750096578767057929762721092933475857469832793065284077808116362928080659869641517430379628345506825510442782270996322855483536739260097125657906206966973535585341696455873711664547632409302314202326971921462603068208807141180401537933785781918702296011550934210396744143428090867693950420288965301624065435224845747466544372218434597537401794008910257452712246257022634380076023473785269146258792945559802871935944564278536879736166972282269186649991722804238820140490542193871181216192222030413951218588796923934933956874804434089446293615564698127124596921357004347247428212582293428016705806917899023689762150547884837112270540557424538001890199130872516104096785824680004797554086294030731630831843497310195648600108388275471180025134088037494915424838046493121192369504973961698966191370352477651643238081420167567686795900167253315906985094713817161590630177445474126285371496765510100255691651430444378426016485056080987248652629615568662523994301246257305413860603486013079466623508765766235059585685025820522803145128180755184049136944086176570394593899977619526764640406714751450798777055433954735949879680918303109370285040246431940627065723105351196223883952839858756213625685397316230463149983304064936275958499898837050404113180662395982590707693906908978669141546030104997181601279069064308590423187467262702251566896041890433521280851054124551922391537199361136629954622726370294852847993977416548832517268633161400712684348148395666428213290896783660032780427981120014281757089578467990287906864903233852364726994197184766576787278346020816688536509816054720421353909545633028448407101047998318573971880253531503051234979867456799099783925776372164999125504201880161812338485344022947275881634355222830688651264160208054101647677032190948357708319523161629843485250814655461107384252003241217298173603514804307102803121021947146177801576741108617272364916103737209921092410188853482269320727758007359480055177683348122834072322235282605314048941895402589452141984997729001866243698968317968244057865981988102450821039184531767930192916526633817780521902643869609381276488905255922174394034115294559224092101464877001568264826511947990623310246506022040975912609997400920507992995095689910037412999322824083622584641149628655321228975580891795658982211952130734950263025202733152805590707978084300602468296644681483470680542077796725781559120393665628480112936948255683022894354075988714012537090805383546919447111161567516664707757088485174215330969859735285856949912899833104520644010671276072767417740236432743000182742730175791973255593701020218253389877060251165795467734822509148603986168850803868740770505780114510502346828823569806378113638576400460380868379822217029977171762711203941545297174488168298146906517832532749614007395783621114446257186614510589356964458793692059085346597045417347174749603840189892520068623141912404161331628976047521822482132439757522938144597917242805602249038367438872007151994387441987722936800863234543635187092032460810013997436459371119439643421029483358489874972579659837734070752797085642913562177597959001306064988417744378112082928164743320018024680551158121224757968967441837917623650543701362175434253774392569510229227241364101493275194252666392722378163694285845390827607270472450246472785222121048535485664714213144449616676033667164629326179290387507577734893519869385931824926028215350933364101361977325310983217314338690349565216239487220995040879923417919790320776911066518261577101691026501985408163002846496180038912495380843341879214685976990582663005765103079840231306022240778217485952591367084089608560292435550298235203988541814464178542858951292812709120765827681966373646638101125125956945747219622614704490104824307737672934062421291920227055101236510984575742126193793354063782152772472610791108354037166702856126931968259491543055630212340906707495252306334187148456970746279111553763477211034876082869278277076597862982278124198493395417879112186583573929526040860233467430243738339003733020676694648066486172368014665032543210707249000491133347069084120991642044946320920999760294296482032263127933426928284713825634419119254800520713176077903420379811180163458905525896002771558278737895692777351078004756630036371684525040341525029225247604320256259080598072266962177916177433344849601078571134723009314751807717573337145060595966698282513110573612278361013635273263368468789607211603718604046468611307779404360986634873798480855008269620341096107094732652982377535310941763564876684928875268163181910696047041701797654052516122734629539396807029858431982336312732786461601751190756742489651128457787720275215729207177316679221723005018969019688350673628310028930737064895816346968756752376537918954713526419409323180574302323583899055556579589633643871945249928762859380509589109512745972978379220776646074953482980178745670086063439589029783867472321342919629499481878412746112146722040171921957285022541962089751247258097071396752374999125970329427954941896169658322902229889436706421876397212156616372461990616225278946478194197791258352849792397222161968508262104498087181960622504152316138599427649990555261452607366754061070945226034188295508515776934408058018363920974950940786835825621404661601416422446890794037585889802296638378492425497945772620428470684295397649948549594879852912805072540580042503513192757091646867020497902402475253668059205752465951152577996892033188365104057941717104849204181428885498018382391087270917115389372335314039277005764742167075447504127684775851071825414484852231548304085880934946386133588499286389079554835398511086773038974104903937543055059785551036266105612499010260416774818075740381318846538294935805199665985249977822943643040022692806465291282512021417914597511596556456122248234974514038364910699907959505895382426601728879181360615706251845160797314412327236849272226199408216832097271706734390503965186020676993953015683353760937256205331129947606673136835778960841590896834969856095524513994838105338169667469699210423768519865377071375208495135551831374037102876420625013885153162939470835992275438801128669881407425856144549508853252984090194228335933593143077725176423858665910427310638801239946445990324111003074087416161626501455064194827656958125941628765611728017828095819169943075847963840319836066404954529986242216519564385643702943867410411913945351564933881312479937004581891436031659452321144083182961964530273253511303495717474618775431470032899606357218609184669615535770713264461407825727070321316810922575045409848313670932260752412185336778881771970458196345557185838033005260679692194147054030534792749113830349301204910971163993712647622202317856218922307743936191491150008243175507662370213298700467018107660102164058783963920762365155229799645241918505193812917920879706465478726296191014241553712526045311394769088315942935886739572528532485384357679426753891955599385386762624755999560652111829817055790198593040509686326690790171171010971644069058302055852420416797946614782555870276979505407343026519538999764823906161262507555916630041603828367374692903746348219083460369588499091437429983679785631701596530488310474351868861188749406038881955331506690578534677889982020712046980335923348076812884187366859516542027900669086283222939300216557714940194092100310277970946535518139244879272518204636112807552159601943314341868796401969372802223676311620575244037699342634222732276494945931968964067375258791715675258314958421277634878847042997045521006133005952977149772687423610442443351871875231771825632515447146003939532485187011817755644898095528517504976981243368170213177175910744807513447481222734757998682434248774000685269996211703191151937913814945346689736609764751729679491699992702827974322590549909990992116977773265318089631852622833091507537565468735338461613963402892196551500013928705622623768361667780285362204222411508898127993814506534277623776677041957818770195277320436738725565826459149894287101732143563977683855098547693157581780836968981611823843750447348505918004296527890144069144522279124311572450370273570089127642657819546508804571083654936609230855655401336392357582585652030538347784975170739915817542571130311560947770573189138275392120342399764578078579178220257377597479051919331514911163504193669682749728843587427314444376195993675056188025836698281913728015022885188843544816259757000622788092096179457573389418643336687189940096930300191110602919377727222582693002267011936874256125125259392850073711160932668586458574789005548705533924744005617082821638370747504140889550914561601857498973316939570120196164420286249668388146599144304394687113947189671891567478286556743602962149850323688869224836502057197525552763894142369696688232745578441294743648718298911244947876096405469086025563611204264606712815410202944663848982832786201735853481211574450874259969828118825904425086433982217042134324562789582343557550480016377654357653150904936982402751999535255928660660587566227713605098249667489704514671681998593259502253339476449460386666429424814334674657504751152259125762193956239315660003556882920266047438941613174924197531479297244343827138986211138938159099426734735002267036158939803007435283235425402638187066945937633618167122957167921173637849205802394245744461052716232906545743583601371283142024327872740692625910847426358695950626633176523318823279735281525896204798561096573074934699214643677457095110778929683512134861929170746692514440694204500880087605100248265723791697846075252089470959339855130275219305718252991996491736963211546545781885390225979733276540317614663199006778425557089793406521562484000933056287578764813020829586109245106785840385561204937681109295088668307119716437486820325353038534305677293353055437783220620671287748037845608846597833181991974056054578336707187959667497103937939813146721094098166830284202032202663284596056089516029358903388608370406635463846934714034624306251071088652301629304950146854770050262990277882202973926042603064071408683832045154098859663845106238717344138638622581569871127993731621702108457097612505845636927731697426326593223743631834530913168426091004547826055381206052924281724139809484651409746181769415768538347908331211283924571031116058926918149627621046452560369823409733727995107531913739044065677051435567566227820497501655494526843598360227666424872466499096599282617366932486536480431995250095685215459670609641662848116639480855579725140240920549798482315559211208040410506868845006017110670183764793432698542496059926064827133343911386700597134708699054165709948381670256484547483823822513687624693657291277872191237217809201142330723498117981047096743106500639309295268090050945819531415866337956534843765864852140040018119323969111809896002450956421073636993904183477424777700008492645991783894529412799335677153046109336740576267880827044101313153445526608133679252175118907356022306608282046847906959008255861118642404962067419418122370922593465004515793278493535422444402525391692547313614871347748259817120956204033800473500838534664085130124625074779318033851119296178157970058335785751650363309016095911951327105673207708532041977918124156165376933329761430178152141391768423478308485254680103524846817940232649638982226061017176094858170785397579321394384770290617821468454203212216816446294428481381726916122525632480889465683045808817932498858363654636790778392919208811084644993095875897470990290356891831594825911148144188254095346551114895763998034840645747410185179387009544278255157617513550073581862349480435457254711269268933301744098032049976478944873207731088171984372903236689371719798960704795832488502617503563375238292553389162017548309321393743766156447125769405153449302180801346324120227537408063093013399428274718601840233672131150456910301494175404812557991322784037729057204800958103685167879506704405692439144326887065475430013524519351846411042310348077737424337284560270917607997511071828864676465584980416242688148673170089616486018491989903557452902974407751099161950920919513852812563591146284924205646827851507625918340183722688605745709594091085905333317621340557654930548551259455870476962816726726329310015228678989675746261130613452226355490091913423575901386353537647809687903375745332691236172870173735160773188352712375234224195765348809820100542150149688400283984517565668098990417273738649295948083032957822414152121355137768611197296821338536352748929957123628497022852782669197625500516381976648462307697138857265725465750205536573787070587627714436090345770294178901287509775886315609934046513994262372704149063091819615976981656400470972887606743171939379929393175635776119527708505353776828474389569325819412582130955025262490558947837020511030913349761225662103983246590629849956115216072476617074036562313228617603578580186929208322636979178892895165843907594635674661770256636649283234231199685474244086537944318630604493539552692617343257754016776009353789575899535310959757166198189937685129429813517633949959254813688992206628706147913333683136680705629768993830850521362262775138952135976955760114867048125103889521454043246717953614796521800423571527370261488511840926626598449483013273991610436961554800646442609790415454737033939143613868777847166188300019043767416641895196233899658990450072755807449934531100920017609370958314266411897536562287296990892088783603246718400100328911644467176924215429768743866235459177272535114599800932854712852077388768664679530112653197015664255246675263047163561153652829554519855295107059195452819937423923901149276792807793212877107215477599950978480375022836970591775917869227227440220585027730233251984174027812809971984219036508889273452338278088652730150025654026574097687388148721904801750841157692718768578970624452217840820186408790673175927039579287758313721957389412489759605175704041743249883256844459256155227605904022669645859773040145223710400162015779317106706612456779021461581327002913949259876032124525343518105419485032006103066376523395035671411756526248764447934769890694745307524193007329379349210360940935878591773154084862895270666061537283281334707578766554981968451767613376186911237099078375137772105138100354000198328695073778117987986907455386660010751378343547746535238328653320734364231556645376250594231556999852478553883898279616993954071210828084730468646401376913078151680808455596474369989349704817788501512228427353566970733204918658974360623686648966628722979881791308735307296348654367474328143149812448926619397544266206890234870450371862410827233672196247643752178817635529750520046962623028154540426796195595087663868161074357814320090089961573649059655348184442204369872356353772656347555084621908045920046453685659625980815602741532158654427063612587686162181850282762170114682082848326461249032301392818319796567984915471619199908011324297055363663226307716106743527034671764478987697278961658874887838460300841288814381000796481834595030154893803274904751138814133467747992311197854157371549338887288973582713560291835413417596714562841629593875165741245565794463216217009038839653928324390777821780659739192383996343470358936343317558247697087010299986265393660491467631936573498433346136190041288233965428081597550095969398970916808605136670057549662142290434299491851875651731671215621704586670689840520982549984192156457166708800966766819990492612177555778981397840047240091682021278264278713139832550635600712365572864641515205654177333668226684400135359592408136140332294121217884932667801317223628400061509108780640477554613232928634939222689381749859599608380084502038640396819279709878223174563042374832643539934587506146001452445373341813940219352389544663724953197073250743057553619908863667193215769277049144917190156265679758004372190563516938022840489363186656396105461535829971014447850443170470687684978838366270793121760325969417310136200640548791709897943528612221382837163462893663828460990935962868516029151695067540261740573265386435250773181287208435007655668788093950064477686269816518917132473839203279965566715125860590663262474335832285259582303410867364226826217696950020470737915888355747007766037759632309353092323459823083807094724060742946480300403289842751540461112366240230483201962016384518277600587110069223357677939431478519840950016901500704303252017138593641906656898519304683529361631817985590906125792823527032187636123466790583881417310650705844765900371894606101417142477340947671149129589171061989916935558342357657547211491693984089473602494685844859232146760349587248479201406129949388502424929864066102075015503829955355649194974146098528409515376405740792857398422329285709572350846624622678396042071503811708563492853857642186511351425084057222707211451866651798996031187080714019824556423734227869809616167089377671477309576450086665066598157567377636985309669598277799597375860548960702069983908111673074308452825674197467636355459925809351355470399086098387861685844139155854240826269935486816013093640356105990957691848968411254571804762261270991908206229224465756899715837408101754295553834329462621679003543234828488554508043072939824983080950802687707309466688707476038033245649120926640749328443695695914010630686573219608557059391787523734402944599121812287350103705432762320736227119586004523289515212944184479627509891448468935951585498742920708552857511725926777085578150923877069831900798218267737850409796295625407119224312263121096996594051687756539986118472241965947451106192994983963274445459899056746976858928411142661087826784643779070019665877043477525885420689924896382293084379681795007996818827848420778079168022351056636989670511740812184107013553871485907625566976476957268786290526767542569180274822366764512569225927241916952129555337790065561663231408655278555861065926646797748489899913740946771913867973654211403972891476652762808536661774547340329833183890710282096368617566093275184741756535872165517099459334426317673975512419534278081772089315097831781575620037038204322268901436245062476105917748916547732845753810776100413020567654582384490138174567206309395077388552642916639222398555095677132422420996154033570306895580445271635239422532167969642282083395645503431053175698376004096579741238303180023596655215796569704152118053640393234350898626047481636874861129697342199357513506614316393746455677176665503558694497512905126349862473461288001444529442847033898008880649983040229378591268330622177330682074256060478220752477686793887927074791901032391823427183628184225770223169587223733503250253925329989132588836248755900580608216174772357151261866620379644858807783108662916135259758991823052746583593444442200300204820274910431157857707005542458839000919750269473673470459338517667446790609815672252017850015244825077104306501604857098625409205097778535211566125249417770658479805832934458098573529898165146632981462636695228872326366008465741879075980426032146562153193692414034255982097522407079464996320343116371451335469047757189733094125387878584167273019899716632981533615355278471066427500158299604140867888731258834398360952069022754759805616073758392929036409581458427633885270000929289523297649607130934219845351342350078441418293507844830943940151802483899382097024480559724047635772580378104809904918535591764853031317111514887017706285395415438300776345291687626533335839563589674793223643558619038333970615978595433411305756148763159006809662184949819754523944677196325150188933763551239708930758873925331400782884692326335493887384973213318001603895220092698408157915243665488327372465951794703402898016408260293801213860220910940555776099515497965212842463401010228520451237302688364332080288166260183021523329592233900754555630869539746652788886913276117429705187515941094478132657760314857963915495584866841740804508575890074987177873706058081602452058408086186737013527463176124479408567216722450388807214165328541626992800297481604449734615597206268673108698289604092136065178494382902683405293151558311556709657267511253566240265214646934803725037588930040390446379110662581958233689776029343198876421314108947000298540821166889345175828275631457259225768524394842681745838015644461312915628740352764241800240588276215149733550045182108558939255440957734629186349064701091013384251892967568372819539063622298238442534371983535928288830523290582225552637443811436868237088314587199524952634445660900884055070739537741209528989154527774637963734935642510020324420865640345787423093769913674979720520492985289552408404021055521795670830401282280076650548475531393308812482702660179694933982316475181667030546826233969406991254216282513520949779430277494820449341462579748360394130559088156687202971601473874026365130815723181490255343626226013091832843915911627475760174419351304907000617168457692050436810818025283114166972518902167030498035338617288295462108733581204989042098751173124688123905682087927729827903059972676038419169096913377383544467034345323993774433582612813176885304009718254727434271954128689763472402468157793266467510127676878452574217091825129959349722043961744105106894983209445926627669790635898362718750956885872774285935178905929776803693284914692495763103856912224854912174573508118163649393054005334617779694911174706679094930272898385941387439959350498367598682855593451094310541900579337618969847945476538646433354571838605511623672548516221521804901055187252847055147885416477634310427246549995022191808470428762224467667456472044549145509300658454166535696223175903747357096280697061172942575845890632300350575945525771962738692977467050591602720055097961811272312825595968668814769417752895654421863882307133549605193251949259770241133676760571324617786394985314210368485081011030368709245556552823080226457508851507523648057637479175246449063681435793748537355379129560917510614675092846872002063124530837221754121821694712714692222836196673714808688017177602471265944248267166136866404806780403702903287344357512885869231462830155756937872327300365275123592092969654089257880687411977900183103053335638964947930686653667615055255856137402416983681073690050763350325868377373081228749017392145366961754843425255843445724657651061516739897674409960796922249588487793283319510488348946739297298816985640362725850607730810250684512569643869837127285114987663748583097962568295675634763693265447854379821977374580897643936022111125109427957614068861311473879118246430499825986180315845279799122694556706826110206176033871112290904156031475943467177189748949792062819399363139209803044795562816513238416198114249966187863858813067201694885479215317532792461523828366946103922978305667272937472033752974581884053332063393160497884135633572373624697945990999719663894143729779192288799418751881968955250540405787379429475332106231486593403806979041952158554864444333358081957421829263013922608628942762878858883287609003386627095700593924711983990701842377419794328037951152059394289878012911898565142298621309171552147051423793891422187615412286123501687095055951981808906005682424905088726618703812749979597184944805614372485658685438672703377788143565657181834779045619613283417191006981150669451428384708604218994326755278162566750333109357860410263862899593304214292215032924026325700899083819461996317803236978117085337430106868347594669417152237387041593541068488803645774511346264176277289385954656147368578568701865355893146848582784853974577369255203271409576050058961746028065600407662161093949461630190135068502502409529782462378826174302409214693395885959810756263555157708304435695395325417003840432004496626428188177915414454155148306434754875950011529278614655847138926365428004213807953191571473970005837627079184997944655674211973224586623710180446105370731060221764979648788713721257529929411459233864779121952130234497156543936498778270513591452919637799272506895976691253822840287051011353576959612023740992745049353624308175502485778784459493807862089718340297573107035356870415901782137452742403800645059745200960946997985868439362216773039196343783576397935329621295801472992275124831522382409457834110062955296303338200942848029382971105323380641925471754927094697995678394336186052482482755522532284093209089270464590330745226001616758797720941957345394612600242235358050091786164413262989060270974394581796310883664644860217612870817168810372997248987798662725259549538399816333311814240301129558981848832220282890065465598126781050763704838829075424165370165255778773064137260027430194953096332767395073532574758027184894375683958096458274454030479365355457877548609714606470291172216055080336675633423550375836191126845431777884609129075891830162582163513593938285040124224780757415394934410399517664062718354132272949415841571423674155770062709913181799212467513643814303612571140294129332523101070955207958838805190184147382794425287510801998826885378358786866738564091640897942000717750543801656099861737762350898999916518934307042138660677897211299287841669456064764576520906984155535215071818109810463097827086410815583074594488504559238819854801587849836094772312129014899758514283740893305977596324083699630885958130384572329419808885982822985155922430464146352016163706147373369953665850363854459934711858985302206702184196725070285821665708902240665139801746992987601039288706225761080458652903720389462200380177184659965758148028541194425592695519329470999345994352098018882648237980392085846044089030870951666704001258020667311397000508349299272673666137222488442540883002859259012778099719876295866294054466695153937960665672982545374045503471874187649189862895033261693094650011069526988448854910573282198400442187810980528840014885253515847459272651617368422458114855439449590335516082055352823176364237729354969209411074424929731070906684963654662209791670622459373962387749584186720743561536733067416701554043886013709040203670045660857953415935619573120077334434327320222741155692091348581498793411618327483050752375307181720120657750029760456603824536270630971267030639800761085727545034969420708165280475014930175010913852122391757262684977515612544232975525829917652891867655500304639583064086150091265221624919237195923533966485390150023100775566911375146650431836608288333454809870255012231960172781181420326878012927609168727117298359429980134316039612122477991498077689654682433765070180802292791208511450345308434208793962618243708146143475207276085006315742873543340727863236021424637503751845777655726111422796695202345833927348808006535635953781997760741759396073596588908242090014519871924320656951283246521856555950530651683800033789536913102361413944815384172398715247274129143129056249112551217202699283573827686160020615786183695103917910790537584681368055023346623211230662784742247680382820348221867912805136930343722938780065247212534544222470535122054842987253831478180959355248098351716196335291624579615979659225372310500127858879186942756408798437677852530109876106418138710908365327375360482928397667216363563880888773769398384212775965723847282269263088328814270109617522508800128901158124176034289404881374768621108106782915167979631862513528252632687876057110390956019557967695317316965498545319773967229210837911897323199688642812997914431910753127631345984560243520520669932057321277401521945473177054673076165090952413294998612289649457241908777175587314948299247757889904014989116844636110879083445213289780067384866843031480539418115714392284372276346639592746963184637777179044889309414512027797969147509595932076657508959425930964482845568765597715739455425550837599499551819535811183067349086902749214731420306546454485793718287673696671579278068242080781615048145572293181539187434707139075924612725069718012246251140930077302550927912630411986148903645223989547740711977588239805526454283093672129373418042313951897155847407024964130604026485294861102258590442535343028681898624097460995590994252192966879064504100425488903869245529954099238388823301492877666235770190450764018514503022174889757480601410525086111384504536781405724343033278218580337142147449971910836253019235332939587180244369098604331533982569302852838842331332385735825643296638241281884733556682758005122006932539192941324689730600118061731587944835515413554756704391316213792408443330656962697344941839021886942391455869041314367035148377644273092938350946927915670677461480657005871981576926771520423296366324157750670285134513663560457765915769957876350013573426546834044946515632827187689604563130374516839675339365813769532272535874390989104422482617171122717730602995929223650807160732607036259954553133985613981473950290067608652763889033017315920088251099307188345115253952327363615301381317762318204281458155343421296107994968856732664610972359841912284979231134642362248352375171420191437018833420291736687947481448768469056304146989746457707754084845143362364888354833614782371748802027524046222623545249452841178703897569691113790708321018998466211933471178873896999956240863109499285311870833114105372164911391667998944487708768021155663251831544708673763463140204198993834065133303329216155114787371074551401755182994719353182016160246856356933534037631479275532206806180973304454985508858874424247034958950715712534156070771538300156105242645026997026780402086903821871273486165586158547958780053274667117482399465574357527027383781747940592216725069763613991613442539038959772757114141109466453715428472034532370274293600853090228387921064360693510986527248091775147167314683651900545321671349734511335799046163458233175437965631315591183647157723271168822238595355354327926555095604566703078657398728661465215501137881412456528932457447842988177141042294049726619481172978383245951677457493000073174107173249334602825792429025373676067950495794101061812461961055768463396184309790965916082833062188735019993635311250738076707131020134307425731909795679538255717651098767424174409370204008999444626900806488391771870572343902026822449939165763591356161851847434695916477810485486515714045133796257034341278361859152574830017643893635886284902331422954213693249546118343969882307191893058275512637707644411663400066388705351887550988502418673070204789074169605614424543771908454228756277340750014066046632908393739569377709060548622421717077839825824963365751675569756888744246144487314006631185320551495743891168668407989252260627478914541514727140901153154193501402517916760139302010313332442389517264815200787051499223634567656276991260533681333810838411324359491094499451621867344308560129856572719292210790991309268993470877489364623044234032568643160878860698428023515865127172379196135969140276110695622798569819759789147593578336799311966283527504720423353144124174909699863490379898910978089576529035529829093855967846833927001186711476420453140310378864846070015356199444606195481504833741885270171790254315881480848675571259603138925036527402772529663177114139239287321648139833562327361478744134550441967535012758798943063547427402646854516083602943825183123924775239102444533314480138287598645238076854022654955692503721037358950431604293396539237126574528840993476763611260209390482391707657065249596276897882810744143216313632983103927842067764985190211427522819185154457205726156028601998799591091618348851650601484747182030901172427070849983351454333987228587696690952357132459364988403606343505344126119903722802494511467318395174593498383661099488536767985349180353271243638831321066046376740497271835561198177021276146999636268475867304551680201539874948077902450858328742237024395640936952538118702361103878793322042334530878403382197624706615611148781754057875086753254642768187782005708202727558130958792411238524592617653981467180194942159130150894275223724376830394673148192971441975445322830240475515882984412595656501859824458169532404686501261071215576082227994763097457647733348488603558661269497472108856906774813214869226993818644558114762981162792279972125732975590814166517248246827199234525047777172614602399751978626749797353789728440162859550605809606995865928175212971199465888535217796710105748226395636830322144863148894878689728704037041655751799471971908971989665848460427590233067266330077387304566207435988449029234461451852137760710305863097180678546109874289378049128179896008383558997204170369059589564757176008093237414683063301567663778627089662945734006991141185119658965118695591135852492299048026731257216179931679204782337015691978942374247344252563655352537981218340465816169920514008325754131038545484627108191194734239558162783150134242088937378531408820156794742745990749239109034905340876206196122655195849835619171446604594811807477677609820067995853414008480907672460672141503000335450591296526967568910414695345119207083381633605736453006912032694114254836730884943292450132654111648224204640281568109055641471038447413368765469876702303680231929681764653128256401180961027987838551258783888641647715558947277381981582823601043592555710533830324844104834577785521276664256021260066420152691967883341793353572103165299680158645920882456237080638413016876756201040025654420966715838085309181470409663120504225120022814695944542022031938863272848134772578982709644143662099536081568217452145799935974796462851216217325211882462748117329862032351390120639671092838745096131279075963740178314294444462369557262895807842208140570845791768010278704015951732003289703586263698130561390651623506174269207170684562369932908393674285962332585641110172145547286621611403464834878943461211934844367137622510072064796154968563886278651828458670051835179664009131664242046732462736744029971820737136117194897738612344907116408196260225914634730332933040878981608391526559110622883958892234736782021426807383501243645870175463604070273308187863625494813631965902700231662298009659427953177849856362924559071824914733369632648953625875718300366977916272984737099692468472332852744741641058200610987565075933600763610381968017181065884667522413872412110018661511353844515696472154929577153224576692295452724588590204571451860755271153351136062014018024123154897561461680113695330421265358113064676562266106720231931530514652638193800870239665474453336301821932520651835231535395558659857167933409390627374570878212236314685939459104329642695719289416224087872066394208207939239532222621510298358897847207121046946710805961628568681675855836725104199487310336238368679419002359378978232518496898041366824862273002471965825463949284633176874228540703669635392130548369889729386831954471250828345779477410429298629686909012435931320306743095891116151921959289840091105764870579393575326849808279741351332923800371697424840070241086307032897368953817913196717179185075646726891323819251071715022428209415026529905014371809689804617055075304480073146004004065643818502127107423840428083951974038876864555795142429265818442364540652264113281962970583374314617211690438923271201853898722281267700939302432908993392309949365026168660940146898612106544780651040841384044053324534585676255702884928798746469364054839919127598380556327869727125386536293866693587760015299400666889220994445221607993256851180874929624479485992852466749352412354849059514917499898945839684219831450461722755179551656457117383126887393988963697362774445146470718646081701155995501432161858345681518505964851576403124292299789740776945970995264209380371104079847460348355032292212764621508007045691906312484628027058285279725823964045276185878411841566842803223877995042951129656711063881368443120860529872399488667431594476377741554838192239801948172328901404935296431085882720905704284271514358955481985411364086702903212008958440042371071529804593795622272070281226679373494979043000310531737016576463816571498391331133067497873612695006434338031964368987808677032339482233865218086786697302555547816697561807757440979315387568974306555315644061305439412048510465481598521716032222683748927710652283186399762022694743932586042333004735031682714821973963809077988111108335862276955448041566839143482953358695038607085211974888023216603339353418483398097168652158880793157195848518329344332911227910111242399586461774080392885778828673352802882530199135567067675976440474780610728219720484394501579741151830662724165112585410004147663919603187555458492526033801292193818471458434929590761221186923355795106593208466007665912626018192906505601369123436002187521153490869444486246229330189558997127487410601196282878945476664715143925729821269288837148505124536377047424500278859807155167883877297028810202153337273076773633096402310783481815586966601972311743196063167881233151616472487168269766952683475808938011233967542519101000904275760635055524879937527107651238981860849975707969132781130234645807083328188578544821491105097066617849115121364374470331295590074844916410767447766449517702749303612395041922748961791858039430203896692878532156505818948675388955808875301586738856259099378897498414880704463269113280358527888793045818307086891105600886326319504580530472249029730616433362308481405004469260831284742482375455492536912164196043373463966313888969478214815222088417932774321944182041524982279070255074533762713888373078954920527951084638404655431305605664250464525289870965156621485549314166359904708977788343907809205088514450062807866620435898472052019975106391065272339560742961810195923016069873321352549844755429411283837731954765019260413219277290328278397096537494845274797252171070586598409051784504290950889143420390922749695652391951940882668763949486473781135677534008762482866481988812070469400443562603999044972288112534687807122951164235508287442823393895552629164998121250783491123190243041208064436720948885950683800207528514986029816033091213223780614037627613048808474118867489078733536778001381056059672402433466649727083631446412625578565426380595049450988184453510533078100321152968312223923986579770322318628115409032948813602832562089506914267342721643907330642308029349188584102162852753350969487126032106918818569119993857358549045567425151595108899896326336585828951507024829696089366357281943796807364956343391040697168425578526649389926468450554715515926493958975100014208043882119741452321708388239753653314835050643499248772807248002793244294975210563819648605256098537774654906733396971081014695456566274061200664032261067690505078531552940076541621405967610834682344327486473958970068086664365638790051402000369403043845197257654841235106461764062247440729881147113865852008482326230710002879925757247608951687051006528314244991456081008628134396790164449231945090011082824786583109501257632906153160971358877704462150745813934377538488140093349361217680724851735305320302815151580542051241467330346552608396425181465950534137277597195216772937876893885110767484946895538383145677625343140578329713166505654677757669564666986261282192843749063687293899472064387445919802942874791853959855673316413468893157752908926600848859240578720487533072369344255109394253207319770713314907398140761758368747545880739265392307996651929101897306245581121269033348247440308328333789516003916270520678666504780839361495093814400073102157614574207244738325295144690027503158087091508740166905261698839992424231834578392053538007049597306246942546058345686102164307476000676119754171073451568910422471055813110983592537484137461336996817433844271807730608186868113697110961593153602346136024769642835944880642476113044465850697390271703960205103546909783371163374590117915271807220369345597053311626535737539709455108145657209638112363822988589846149156920243823065271735644352985363790881678506582864330568662844398380061011992189372367657539954726470947438709385564203175864138708899431262539483847191785910697011359755429159972815547199316838444575231282176023086291330206784602115421157580704917870976582321523749522296133452594969815348136629558834712410320120753422278731090190150758508356805302725772991896408856569766614118299467421037869942393514797609640540255545629196566311296881748173712561171383487896930844412716283747987085129586993649413034795651959571459071484308391822987231170156958977478298830343684529820754936803432776375326129063388366380815227495433091793011836247453394146826201450127655289327402443334914691208463146693107932622602379105137483685192454400987522300424805861431246560782366674111133318834362339309786782589855311542870792582169415325429810417278176547019101732148989636761359831027930989261780702991747501179874786120168090176758776970044184498883650120403157445853704643723073170289661464319135535714986874884031170574200112492090114864808649603686575972776850635020685911612599394976612540711094056639734831161128066346959368495838463626988568482480611385980607605374577677612541423033838934678211467594084887769966125325852514341278762855167303702610206563964692604725597006655928879891111862521890696423418120338360738663013994055215482741778502625606737356930820446815775103617635840904357339331387342058006540651590233355251244856893990751694091523975510462556725295698265484630725724424122669128576749142708843850673912238822970010617997481473411198383272370700937156330763747561888374197601270226678346101401546010650952335272980078916989354093441126885408552724615178740681789969780144087680082652722069824889742758599395849645673772047195685249531231108896768818237285406904568706344335167636262669348798247464041006406928379015402502856900288033954572507997824683831937003808055916700639412484968583810909401418602163635733404160647461699180863886853769084408869499253333476222575766373919121129800365170140105540115737798122457918759596699021758100010968307460593610342981220497776289614559478513701150462890931699800026986972861297712553525909940484494496246884708740860908320458946019614715014389283146387424149840376442176285599732305077835473647126939072611584972784962296191109517635392406198050240151376486504312345279238016612259083271048891533651571569621045010346041669821666309151282928685726928767178640942828357010131725344479891701964656167692387554697248164458052055723610425729319056412566004896740960072082542271212180353008582290893180799168782360786452353556503035586792762304048371154945064055155416265128136026866483293914246849502043950748563403109381999727302841840369171451381519358525647991852362155057571241916154409064922084863253653645569874397447211373656782549998573208456770371558961931939498957681374871040450042148209134596749552111919257406661991392956610846435555390751589228830049501740460829901839368492178968355115186326395747700344962001536454652129671401923060297234863946588492921773444795848625149265852197189716457517695237860421219394132704005347413951379230980068610134621655672042742740177679782189496002463836543116421208090441895337594568278263188128388677969033374561303912048538710918543299926369615124379764825785181822085985037537476436277803938626764316592241642641628677193442150534449619341268654716976554292754998286863622272962786355465381698018882563929156059704590770656067223804591101831071020098663499468549465749215332466781714977581970989768271926250096119463100715592509264059842243088523473636819288193363810768754274278344194501997231122463344501829851489605955888025746528757291785591453001571173361222453129665206180504288143242275493648016189099058023897695981501569043226575555617809024855238730528292961611561613493849185920661854832814333089142362147373977224150223316893751857633077392977195294883046781999072291982440992893228603744638205191057539684259743704323417545504543595380787610015891937125107261985984406058005680147486338926733638744468147213001448740807166890380012375128854926669658620412512356360997208814425944298998679728037130857907858277941930538679116909523130343409329663241332348318177062640623109153510823196236193876641575035964002210028232308191941459165710857990040813560770747703042902757731727829348395485286000814106063253151363923011188948291694467474463810583853109536883158770653245992509529841200658081345771164833846361166432900915318030978304810378765721076450195683686714849772335053199254529573878605014201282506484431915604038962230413562456553862667354044395451086477923613268965125589370993703767546934203305575280560058163101362163559888385335258579123522232173625736099942244564882183801748374436414295577627151923706406750125187527047064080123652526292674319799208747466660359051826771675796195103980085359597413857938793445858932467447082749265566907836911934951885806160251974509525913870116791959898712726563372037264859815874931339963326199607597333836237686419770396644193782726720861851585406593639474591396961633733510613220543998974232016688932819184794507726772783323437539897493451943980961457149495780012306388118779962581893928998061361406974285553003033947864215418059174204402474011910852592135046125107498182782836707297560388339804609278737022099125811671054707403503856076874792941666402925421980220837376847993039788875515477282038500227605642128798824961986545144622511594488798881984966717398460870240309608285245125578685903387103294047228553439214601930528582688550425652019817505270809906371881620778820422672363295844503614819348491707017151894283858326033792192552643176072672358668263768464075821703031204189737060591702692456907427879065059162661111062901574449529996183467215265641778459461893300893788617448696115199605290202244923404368920916447082780317812525922485934387720108747016068011384907387741905441310566746336247728767299559296550875310557378509773177692164560378626151800614369514519058101790176102108927872460470715406900614491991497156158479259815278283138087271527350689236979645314372976091915581411351077716028623100474794710751731973940136425825460187288627132950721174919559990390723118006528026306905757686130326415456015421839093107850412207515435797406182420646317322125407167018247490358212282573527858302797940193923469132678966134498146020041775555719512509758477865126121996661270987556131776821877856512638653396325925809169538008958505923984100222962538741823291900116475010280111055568222174278762991387354669286176192136769687011791616612783136753921426042692435189063122803252075312342546572568395699374771222851761264740384264273777227944088370988063149614330794784882210344808923263982532501337493698055204770521242476824812695427161921874580033603145626750281285134219076705117816645464426283446752431973073288301199954332499199385981783959178455142558811745224274845837357786441625231842894153132210530192325640131541891062878209481922027517074954070542364032931838644845107757136415483483687515974986297449194528800410671760026194581279271440320716885592620827589815651179789565294450322911284929265936777532337729601296285496511627016000011125835016386328091913095383041029861555481085327732124925911678739401099845470280918608370815946016373430649513687083214365186732936165492136980788861335522304134274909765982107093566323473308556012504388515383339395827910459476827172118243185485922034383120311744170800830380594302725798915302815180512533826317352355358539903395121469438691471017230241379714340115871657525303294987057138248749306503871025534973944445051834546982367141733739155140072019408557984982613640752562076732776366929132779736632867340572305105288225257064182957463388817647560745595157170133932953218432807880312079122074805680581531892858096372016571533080363762494891138623374714975514131998325630435457822985709895352078823181074571685197316950485873053693245386248673183180573280597731161323083697129702226221508483449763873478371688686247092276220988414380185824630760739466163670013653568944427515171301248118379513779306881495444338785473775361047380633827732024625143905284414636492282974737775057201551118590370483477839712184425692825446341525876613777826253354356016798772891682054925416299958817313564535306559386806927407327142894442420928141077941962735723175314082518129933880496903967114046527268651505588511388742095215924472787722490195889095488951476491962852359577249041290645176784169721330972887054967158609430105514321815136912292472748643777190596171081298061402508287771436534673069724789435702572859678789543841437197049331189484080859664945051963346660119871206108357737379508838417905402120513459505237295112350210466368965752324498879022029903113376415791840197652592832112176614216573958136386620308337018348496723641581915243840162672504589962769534162580408299575010673272235834917503439706876297109195011510277675766050597533457351642914739225480269580594429354368237931445656016403759333205771724001679698204294574855752724200263860967353437379108812161955666610118025533661480845985077133861947932222897937286268534494636676962242326385097670006711461770549553139242769754502189910228731512872159501015053356876073912297848892251962200469145416610844574116026761992985958592302350929614705977342472972846263880216171951099654994401957030068919711891298457411872997797526787469901179724651558529273939784806895068011600948950149445522361167758715402716395795531531898916309540416784267558505071597298571609170157821606828882574430047625860475062622381015366197904646543365745522699568641887047466329081141019716949888446111832806768251022123104848888998498577007557185208818748484581505184263091552449178157938064135819885271369266739616464959822045040640864639656380000400115770423410172255101034616345726265819745924515851191961862831804904965502274888159663253565228867111358464856354672913434023705399997533479663220560632675364159465498272048279839326773650513879118311679669420042991156330807277448574056858241297478743225821814984114224995832647070994243699337648735299316036820275273011769314104346122621336912560987200377816299462829035946484762583454725600200213501613801855906384202277273703942642064214811781150225948029877506811683442945772617204464354298518977400881014855317165266888242863730380604903562830059744249320983366046473485067000758821393070118131262456252727282564409285113708133941586032388902578874262728443825517424291319358672960387140033490584640405162879625825776066122954990665029487314913645062025301166214579567862425786169193089781759374167062141568976477530157016762089607790739131949382160459987860684040331529439429253182358100631152883895426482146388475362781543516081437043097812548014359806923519709240011030511507442818552068978172855506732557399305252538898332672168137248743722749987434235572035761431280113989583768726191196223250466446903203091551063271878579174214427607735979356389144450681579977024875896197059035972802493925542379382831317495698098381166427582735799437373255898930033564640386185367579559811289446192845517032087616863472173114519704245239983633683951945837374117332904952408044974571776008849439267536028788200473182388796341717859549038171761681362646196069226875711720516273707160889208043927042134027719794870183865630869998510577709440912752924620323155560194054914555045921471811224864249421599092599852037740339405432809278645441475340888604934532313541760022548674989021523195315760001259966078802397010750327236112353633886130105537424463431299964010096301659673247625016079505389796189837068292796723888357812299984400592225520548788951365474784658851001268158870251559182803916517965909109783153479325689019238441890606986387322540197108149438620596202234922761244683124020754771229174990202317059710130016269757040253364392930792149606312986368206473897275268360786754070210060653323711979950071613618064436323536932508737197449867706567621123865573292968913498260828985952719614326709916053415017851098522398410958935253124675818353320602693380517643495663198588321926262379422444559232882153587195435751978792042657833780727187308991147057152396763015719500673409433993882555113733656163008026103844765087800259192999489941209792130124285669954725284618256990559973281229716212488526904531421466903781808752696212933549465375332801958389268236307140640183594135205355316700100751980270214144261096734881271317021520550611240624727181197456638614140483931434461097950297942745529981543020767353776063084485359790026136070716523094291862886453087677473044572291495127189894698105100520041911780970006711735414956318645937835548319260326097215454304400311130200564328851831370677873046243251796951984265598150294031632222609134737830105091965376395071474800818028229284135600026232824018245373214013674950509181840585454443680016825653451863295014453569550396165992374935691185106919337204691880815663295706867908803044704184355817864251918574311746509473626010099723494583591800877828568335770731526415858465871399738103646663988611591123200207200565393555757550679838055434064275430635671933409497834381968507571514663474089673760189218007842116435710237717967975063039497171287504070484326366563815029408097877341138016725649345867297407254037131553594160445419742627196198891733957272546220767316825550561912257811748585515429706995414293088936798649250548713731170664486002046227382689582855397590002782504599023547579040561229703819810008105309042883793839868953273914286839913810759989131598842798463196787405557248693372529753126298207618115663333920956666780143186893761940197974060460064481663154538754897449500472145935389287213437436767392896002291047778657786644912634153220696513929610696099958122696613213342400498209597691148357457360414876351673955135310261497751546593180507311003626913535794839017435296628307016514629255323802048858001809247648456136591974678151103382766490116066191495857081747842008034399831149891852452074163733431272197277478552862208038498670544308698210645001794810968299754748856622953017554804824659598467085852576396384102414289576798691044326017122204786444226873448219488706663441314850740836342776750284628688739267880224385509417927622629864530859246238814597902202096159424291864015027314905911713698022746761736814846061074234054597343328414056038839177200649986034865258132751725106764788544205038740424749341804238265903235212864623559631036966022484867555512006995580332733840103963258742512626267569767698923611453106199181740453604548940864406590669711364171702174153880273299063313887408984115337575654609483161288212264502416375949115831841848748750931009147496772575255668267515014017699229088435971898982208826265662670049742595598796573782715985294882245407262804708651656591022646674965686119780698804928948404273163327153062712064673607309484641390144496643226061579006614479768326018720268594162921664064891804504091497285732980820839470896269995936720641937280814934455211140562110874071623244131307030229003573014271265715824286348554669701162075380135755946127117750584912944522522607813598978161257752372795718871932838988987165876215483598370567807349790468137466645095906255750916200836419416503379235947966355341402238971245620572969970910572210067838374259193867501423009562446887061659599847153243973193694905551365582543572498037154308991852206669695051419186022488221079200013920527285457414315917028781076678347825277811271560030656575771918960466653602236579215797324130812882154288613106107651517720133528810777160109265908029727590982215822272535182907955161921955595291353448035508305246286440740443674926956047527863683647597754678055914142376962495702085751218968625021113030966046001568133164766655019841487331342859670182501435380814776103244656784980171669274114480704397190941317020666135995945133684952655661461044335049151089177037057703168944756228727038315020561147196826049226987893742391752324527786506700207478115831115853668758889448830268835817139742719786849470134953333222259572037605313638011951708957054166292929756162174888595722329465708759329129999601353108003116791098257851881991572721214941281491795739897811676061078449808441727545060508429253735746568401027788992292296812882661240817558945191996388196650797484443252610324093596697872891055420473084318904971893170528649551873716876999490668906276994787860147500137733942472689504322588299219132081682804233220930865504896680129803940636563171550092612473231711493303280513622555330538980095398638412871491865263775221215137690302649058887656331545886716383583810058335049674625971764591876549322629686543116720221960108649179094075581271036498812802030105721485032857110694890097898707570484694725907149759828510758466181061199733593371166289886276377132107610978530193077865692699926012413643700798665312599505028061264130523691914405840457183315199701824309967465240581946315927615846523045819336782917596420819293962946042495381612446017603836522650933109004771662649005570271003968010185917139340163742937473261038607960361823666948754032495177622219450416511416942787781227055005166099972123368864785600286289208588016422740184540599856379289779052194503315205006417398451072217158686818199578066387332564720582609217946863418853897417629657134890608687136846316630979599455386879244159540181167255308507194481433709859278320315599313784892680737375062455230640530482754326655359407149210763849529710824142883625066544744251620886002618184293140756854490665853410869052325615233625544076771594103341229818925986830499504791591716512800439653403401575116141660969872389923411648847234863889869652144601628135536731868826144830021422383849834679919394951426698169682942574607660275078082455897175336785499266166655095408034098554989042307247799218661869717466156981377521002023857254317674941930355978274123976523146287925510280780386691167112884788110609331787583355787582486563134229755396784699349782078285397214605240299496547824394831643003478451222455441903549511535484617781563038275985625294573599219632056901598434972395303107012648732498241193104892660314392259778333653985999454028089934277226156333164939400126635184152124860922632445029911714509450876947124018406634318097777456678617163659247243785615573574499808664534640500034534476961249027412267155887789447397722576923493138674284549794487947107090978923180314992472712783198484944860470130298673088462079642852155775465420761998147872516117487331362221081757374715904335497768426012918466136208040838125911194843272959331943666575848089635232498120130639031295394178968413331254344213795266882308065144622586659819019035647463357549270763695848469288636957456764399322209278174437170836888616633993528914625600270898794213845282035894945143602898943949596311486306486296616355200080180102673961575911801082068193629120763200465327755196604976573202462980399743762062751402002432842419611252756819137549018712509386032421518561166580425769965680204333338090314189308441945043448808652130203546365635596780211194196355856872938595406861467174547499026337704846014990738806014630212378569838918462723455859094944452415664007755466673347168351790420765761295447815620250907820815897687227760585667337901486289190856763081385770416700317697817612756049149779235623391869191630868402518594370737946031352429874449064093717604677749127549655382605952838066449545678421488316244319754785392714058791277798173542060535685977400052456938787538127131974142722251190614789326732344276922704426452945110428377521118248794404188802687758926802633009076623632299422323155271219097436685023850479990597195361092161248600358447427524595208075070965715189606524239281694928221541478178577650639797973952982390801889796130442716178214995895250796456665397462753654227464595282791884081339116036426934236665453744562869363769062338083191161250335435500438526389458488817203318283717411482556938436371349484476354900688125193807712810419534046859338339181742139117043816574977417656141368622878971489802823744224622352198377234140812434032599424461549905693361280742367111275676083100366841289445382078729667419398137330143243753715584016690866314311217885806415618361316271972822152546109440086612362180798100030801693645976474874416504380430464795169897007864692375153982389579097248429516108857628533145675712009484746513649971194894515689305010494258101399438454638561961045595383550140621422840969110631001043538171484422443457115628971885784435451276714956519669860952461527147536917218044449551307886315484262352851357890759750233977809536628143296510918732605024804264828786051184816662107252590075420259668272397867296949493899732975974300153332425560815930246986473404760369724645184943090867385864018341792984700125828321146720500763406792634080498997400294875660253035687513183793308606479200834908779127742310279149734656392468169713894481114522157207885572021922328111881752559682483663426410815461748032178933750593185154289567682089723864751038790217508030124593428101077503802544808267385945216151865294353401990848723205157117725370226406228636698936396375906456328814485040498414096484074944038498713769760117024165399409527256708886313901649433418864514228575253966574926312641565384054330686346285097486884636773516211830507023981766953910219036506818497409891459187839486757636717521714639812890259813054632885461363574519019558803799807564273956554368507202281482555743953129144413369838438027427245738054528838321189719745486869386226058332260534595200765525640271037334325060024566121822342954980489948201252119282146298742792715295045525167292324102481952769950028621398172990831665064546027285217688865438702940146661960135981044617256505538748430540107664803765458688657546242318888963438013590506765869645345071687618755256592707911509008783094679008849834021225073205264682984396609614503374887260024665880991366678062104623819240500647454234490551634359973379817664133602918307230949900922992516109033840386843511364721422089003965615340427611305541545431226959861284704593461661313874906602382351614392423795085019336768266375259266994867544760323953238473589425781076372477407937075786250088509573530178096434657986909663071449265076182672046464352498685441722407882943171908364542299190121268652684983579006504580975624908605518135902787531183675077729779028074219971202055065680260874185538824978240660818682068638635733437880237579061139744638323767616785327841258322793046737904786843209353831594656577189687038462290866361867771379670852573258632386479795215319712967301380629942529952812966882915500477509002265253801155093239365739184697620664314165812847182062253135195798820886546368394440997087483398975837760832270940903572899858933302078932855945362801752401299486473335742388610957210056966468310083566801277606267110616768149491926257546351215456996533091099906010897969355533328377878187580050224970042255630218277656060851280184682198142215545488892198866229097910958081257351224461447451763417859616520272469555420649248310239805155965888363525872748599742087711736996068236416805969659291723158184451142969502874744205486797533512046080644591472868743154703036580116177536834225170798930985839523794947693912988371563741143724469431885047802731549963430227503978528457654694528221387147971692144802292949750313622858718002846461491403888864369007128717068409325357911633086477567035631491163794920098675813252703879472297012625210365393871641383739473053383950605907968016435582265882316818341543517028947629782949189558379898623730289376592130730022147558504823487879670042083591091289783362333749437145835269303968092022032503482828988352352877285779786802904050484554996633128370418781051647677039320470976002687198534360783121023066425232884957974172982951918947594087461223330594297167972795270418922867951503501634255970374352514960571260668567406400753390986018207747132535983801289798938061178469001498841635441509844040048212888008489885934135116687123926511164578653759133360922944259120576806543823667242775700233224053392269327680780134388639736012835834877029389299804560630467894182818084830859555331143662026374103594173925041062535177674189165702292386944880307512093377735209005021097924505655986613319423355626037652243699033562478480408238295898117135284989289717135372120247787784736030969948617151496686581286007167722162952516271583796832477486154156376917622416863212409853886816126028910169924172630290359749677753505674976995396273855841305659901046963726330908647129941996512373921727945216179995013759646985436880872464466212747139452346857586460895878286854296363276359276833585159044996927103425196535777421855154000175732484352618561162883839021263863078914926493414203730980432129317419638728455557370078032136475192469153779259434318830881981992797402599953556954332031237623767425076479292554056110670713952791387855034437700102632775003270734657492205836040957385055013993271212891166038671501338624021505339751920985696531576472504578390228167259163199372201385847179649358011323236948219625668318259302201106949432743797820621973504568685608944783499173711974236734374388888929172492274373211375544109945805674542757657327332801319649403605178417185308981799682459102955997173315373711964815765815641582848966746513936336116613783761055393102847321753890304762648102083086255641740368648872738207212373476644333995756292903943516352821678259203183857123824892021456464922308512092947978093362384158770901468033234296750100048784613561750336674374252592647926821569804634847656128263086252365097660910255821019825514243303189751273243799149129173364491959002195138682120623088448688179236641583916873695552644220374241331420488027285660270247237160107582935842165764572011981001699040585796968779195720045967893590639729141099294746158859936462826577949309513544281877699257779023059181690314272655266338059343254952275991352710285365723592767279680037231140238495506997923094249828096174776088174736953208208225198324141968912429054672075033890586535342960986611089861172062825360381696191950254233530297892331839278458733824513126748489105876535363181826313148541377700894590418511535538743723488472748766713489326622379372111278987676963912645854251939279394260589676092459519295895640839123043542341359668306804173371678398696433036366942527957114227962501318734580832561534057877912452860224053014760723293989102393126280674365600472777979588965747409377077237079151085158242380636435541705469066063761979922942108364805353409597770436367888026220371758979779086983022360051453228743158955917320882220056425955406428372524782076177415186862121421523012498583369252986828839542046578357114840948063502688894256290696847995685523362165489267469190267254053808455665266847270726800937511074409763343291687781953484186732025884638422004603562137812141583667537485970145562860457935137764619517407315820737325488860982971881941699113442325677549138481506985089309721575722136906335965775053110331972388664437690844952387407518365557569605369213472807021097516963637585641124261415825850616855301032429004330710711735043283908529688744758087655999207801511145241253217014528734229791328683556855288063838398333967468395549849430243819916114406364398229007239819218106876755672941902194368108288930572667733199758860696534480711245605736580534943045867712716433344944361803513784592943814681003117609384829137251902007656764987901922264610409227301013722290090231153780431609640271822333990961908399618751096690203058748362233506998929664653155520618167459547967330620485130529161447848403742524412195809537566889996547678256502191075691694151527310653528645707636234513078419152605460821717138656335019027136649224309886708394232271658750035606224759262489638977266172327036006063469175190437130368825171203020727015887562724658754605964976819007993716758440943376079294203769391282013554693141978492514703282051817983713316766829741854337816614646429245459331891735501396884089154469919762532139942248765108990165795769133557207358092871463416912334083568602290367062861002151657500611098374951845542618726198096694558745081801556559677539741309039421681393270007914733963650160292702745927513909541724000374323384555595083817840351560997683970023043355777608986911024350139101166572064311506228230154171860268255980984571184954092283463169003938637135348562177599320167189047199557629707514241236331338372527012073300601235603376494825497623622097053515196397368350341649841787212460252992735885121546809131563815985153673440934494149738225149574455401745819426404320189542281535147027279126901537955778275280032273711023292952241637115291726314698656853493255819386587426302225533607602227537154638683551374538580232729133544876167273267318285368252616224490105626088659135382791752937429902555952196925860634911619736236987904273934886143043641617500153483647973260747726734142356764367454943764369897826127725064613054117676285226438634073976051893060853696534772044603320049774578219034906907355764685039978781008083867209781307888364993663321880410237618424150786218778348494412636062005942144534871476824022982600366592374695813786573134295486388966899571606928202865914351380948313991341001836213881917450011778062658049375127673622745940216728559171062216893418954194644722788474317654691029607151921543852240027276790012977742393917096761057109975429427303293137092348570756740604790212609369321013088491893016696436474218341699468413023480856726323690034808938502626958290692148166095331425346790538352053094478010376247787170733154349345808381013848311382780546481943489251432582397434270562226001790948578671849320255956644211644669328931596987482441055515264007964692448709680041338760383929874586876661306323050355156614083320654985596087384512897205105561909615616740740870999165094189417910867854291999417691126665412295241140422634433076197035313413584368883867063845131820757478874847791147973426901414423245315555604318695112577618249185425646453151445233162134740763379926805003062611968783957591557419577925376374198381865133948655997033883473822250049383282617345250100108768317869898706432867704101605378413334330568907383667173432556926519941437587797442365436580986750752340795831332008820678980484954002970507517011326628111401716170806557445102781926052591476308374247770854985292447979315502234007228396618121600572423005642342751090977488959085942481720765515050901179341229497946342013565452880920854027059764724241245477194539001975711027026704501489671940138195727703596902173840976218151111754998511543762227418024406478072265856096923804543774415882324006937055716765107694439941852547571798680553624934496338009962504125917795950907889438717835396299523643302271818069796287042755037309381221198981569718112237273255092068146154934959262295908191594062984113301629050589854444069107124497287067439214993457114726811029264274461093159925596139158853750889254066092262555680071423793161688424439011420416080213079739478907017977452056896843075312646065668812060802582310489880899406971997019827705543475088547728944683938515994753457278486943815381897822521008374994574434499531710581588197072473787052687930772342894807730694605339496576521313023998590719176879437797928306888030918614029961451715412691806821439780091870571333530942302499309096585013972829074089340521758418604332997198826787702523196659120741738716062953999301448012661865719501544898578150004978248980400140813946602145844247796351590066185153168584834964544356130528891878822523912006590144010284663941531562962017632948869098054021060583523005628695721058939340795217383130632196836964336001445244876133500488088633226375215387102376898141173882509363969419850826387356948628639650754355196755645029003529319833684397637460059614046236396941300251336238108679851789452718532553286181256169960890152608276890643716884815956596928555464108918083828397800041047373801080889410868648291836469919636826228901869547168127369252753449878331076589810578203112293165665457014425267599779810174503883430884626315280084656719824649057661139269292828307156191970736259891041320322325906010560685523759822113373377626960577572609859737526527847316292919197539986657861298339294790698628588623352113935068540128417295762043024395141995901936160096257498147484627087010907273193098572306854771812389818222675769477284922131129252705150756671819051522691768662035508076601255944782618282772549688287559717890855968149409928114071136327892136529623405435354099808803699187612896595201287784234501676944696456288657757138856259023094932636372997084330203624767703483184387734336963290967323203912193394876458315700033684598211016892904349518242605933953397562893416057947117834616509732721154455763891200399619930590069938558679451025487504140431790347919301356659966642850366433641920411535860650479822330061344288307670315281414944839695423853309110109491744722421096458744696573795669208977081983837125426568970749792687707313819215754149584567271592526157486592605733083024852420617651151485872545675994490692983740266781766769655541876700274480564350160005072151606618520465785300762493017797440679908830126509391941380145531779659002630531028955012886684107064688493742272746429287001368395575102187201799521055718000539730915933110090477644361373440421133152800989601264172532689419143323858994757918720077623242003424887584608940043527471828434075064025188538767785689770700711355613098397866135036511916965018016389552163155285309860316757724945989229922260867455132741377977923122522089161607686815605554193502924735761335037894967964048605391988526045254869648749884699498028666454381910989399541969822618515366545289341855569169663845921650380860350837584666418680584448374956977012543815052224109575910647216230924049728935857312988548125030530579894284318296897110195344963462608065243832344359464157693242240719806233109447291742066444815646073686449095102143972675643581594598115053903638388745101513560026178203943027421013515911942516926267106017611029411058842563453671618023759681686345532544737237456732555992001954990512328900386041421395776704799911745210871948263180809381471764251623648050105570459105639590927508230510769883897963100308216736890607020514206180278136293244940791716719161165502403023578624759746267218024384906947337728619898630949458788472446585669673091648656549987439024357256554624751354795057774009347500634145668567729528102555594782254597710612024078759690837610767652633959414071853196629228198208910901545279558695460329366320944355157409631720583333411983183593101851060343842028489763581873540257900612217046670932963106368106418707928402307959672792836046408946735639709075612779265953257034808562342718375226317765094615181993861011652218742148722662056369789056175545294255405656174869758569870449212034154129879093049946897943003664447621322480742798314959868363611336573322789720309822045941749750242120493726434549813913603870973975574235637690639551166885130803289214392286862109852988610362630863444361600471679501768810691225389060236834893196789207254215602096829580384037044718720931085749882691423912889440262718420403773328704118764260075990514858702124663346168390385384260255657681485937916187181866541022571278511380257963296830756963838327672069067745133402591610361818138796060882961241848788729301184385463232226681822618834189444829557791444754234758566440730073495174137487446114986671660522831747427144570595921525776339631338272510893511632487804218252697251071341608392926213431065476220556733162838375309855314126824358023495238481805515683500874687456173833428442587109567287052665143131191561367555196910248688994890971044782355963837615781734530094459902831071684028010543861693771302821116257947538912847334900547954531852260598340801713278118359076805030052812729503357531961582897304838161481058657021225737174694120264103367448959345919875432952493586777436330139392159363152093068022795869412874956787619729427951248848074847790592562978266074657194856803739077099264674140029082579707101165294051995308002373536468095002801083567044181211008297475931480765590149815329011772740560071870978527653944830579065147420085635470797798198317992725541151860257293198270811507033311837579216991018291462470443578364992045257132911787710173224909978334666125679221010384853690256103302384871518831698023709727224258177370552376910455772753118844555768460476738493057812441749835199385410476675017613852401123926506553668208088956758683977874340027691768470334825955603433191062804916181780116605584897272056012434577374228242491790146611790113959478972020379787659346388918961972479354702369341304686026652320380978555842477533436931672835425119865737206175221427614446540678640248638527608521943388129817796506451220130466247050838316996158693055871967782197249887035373658957139251733468768474030588641980557534745206144755329934351169764795880794782143203064478402970706663498644894956221890982285877471266804670946056504500072250790378533563717297147423681930645082274644573328305205312444277714639925374932886880859917175410706818191643994015095041958584252672648793392019453154977042635230598660076244386809855852070026154704103762733128933955760473296287703680367463455642237170473502991027721811275657505299959939206960468773202083367620204447940832401621583710497370378242913851548481445141645282444576348871562978469643805634586553506143274426207183450618128145119742628482036364425347426272371682175671884417752507122890954257009724882226742594918646187796907010259589490579521844137345457281997034993882492598890571495462923862742731557702810850471589879388323116352819832246443566199365944238369231729780175321968857576361425524472559299082073676673784223954555346592037859032633789460990439631550196347568751475305601465297762838532249931111985285869989401027876694270238327940519518399161441147824500942260983328715262903770686321771784252851900063978455466093080510473924580092482920533397658159941278571904914356996764023418042562964614203391771531771867546667988657470847875153759975110185467825715743857263097193149958975578867187866011772656344396333812258597095507123394195738899519418677824821083910889661144009583008357648341109021233624264235010046717809335593448215710964260524143563558755572038346280319707484882582585442716397011971886920327366543471681877011751368172246692530454873127167843417990336092951686360940053874679311319523163373339926696407377423339010155458262614858486752922691408182339174018392367073193937700531123640008782373730846554851294434747646479871944456211116341751004019449858580185973290840843807728181426899992504512969770731318381199630690585482555888126537771642090044920152177231585360368366773572388146436619635751313338669096378402458848418982396153156172662428510894554339177588429551542139971793894136189167182150850236551641593058798967372893092647273223811301476728783313095496044732468790440139709102025018951330545533992155644594809436353483296146267483566578991203825984614000411752885833691752943814301347026681699565818363425013191106551612440160316730306223931423725309840445229326218016971700430123157952437741675982602444967446338928805666606574385845695045095260139253545887867540577971374325804243760929135637077310318729287844590230738807119707978928585522842223484617785119732711668092335587877330826894228601285580505231169748771477962402186106627786454568664201102313666203949709736474386985167303224350059905172821075754077322197010429702108490136885411489148424987917696292411768506430666834249539422294472030673877296177262181564252676127638955825326300033403506876100600328278314303591738933626371903432488948787985102218881781352685712018845422546571229948621273969483657100759797659354115744169872004775337659817384226147702469238370580960888552006655188813423995186228187193997819458344989309871838696114722496176937674250754785847188208628827929772383126298867125271483751400660446786714947493457535561051182812871101313577980305719813781575466890086573536230336865103545215736374268469360274262765441895542082707535967715861966862480786549454240625876502336431159167762547389016252407498232206567720786185375813045406673603312961557743793868283170223588208996717510525564687041180123674873962385473244916705656581449948772436979802235950869698313397050794522878863573663588869196214684497053010006124026665037078817522491240672860963264349996567334248548458143953184000725086748117872763579668847597989494992759314556661350820157701098922781806668119081308269217481218044755026274846057542260686773562366827258818429663899215480560276983976720518885182719498401032738531323717764881078803701907772412732813928589818876437083557305221812039352601718468738632195181984056819398214785602591698743423336781200831937807426828277389816139611260127963729286888019903690903709914850566844302271260474852160389006720198669176567534127585122162130207161204199250980072493893400651659710747885234964817079803465371440074707209989331545219814884671637643390720474777009283901816881989125131379928973093392536683564973264626419423201618130608687485523817839819711245069552686636072996585691390503051787099063149889480626097793397057672835077851438775656808100348200451719740288911390842694197085657202569423725505017030261510424905799410115977697946756359350727377178672596268610034517876513541279977196989509318643398971287377673964835318156294935980598886668519650274176736328926740533839070020382731548216716800501213243219540797161410990103378286149301372872066467835986290380303666238866207887454024281529038603473710386885285121069037457714021631767353042037120621710630999649110348477108508166285072876348562010342643776296000435775450820833959365572385011230893565901355545329621450212480872978715068750744492664795966125404672764047484306733612176990914618174774804770958236170331964386246483254820458118825704892041645405140155660166208040172209037903638690947040873444122698398491314271293337488783732844775410394995031718216714002703961289400136321965248648598748381639104393690729312191002738720800621501654584352574722100453366150506033344001853783147911278436865480927910333074248653351297645542381388812707333116053210119301099140798008350931097157416928690496499302643361607652918243381684048101516939717672510787315175524329323800255335050851000789613011316175206637974009105946859224220858442865667095259782677356165822196144872614057470318436653468704772215061640949867775637710952361231505360830340662136167500208897520741625722279683614989319879367302477749634115458957426099430809337076034413573771868996474119555668006395959522898562380571996310821343091653693464058610952046067738562589121198169954686045325651489860596264320350097320119612529591648550562278344855016312215509012827707987836216955276473718689529007084147630845075548652341140095806635345157340601808419207070178896883083380792020123123008757030614874173941259462035034578009753409408254407091044855605800423422599272948922491687711542910023592589228378268165393045912676562231936816531093634064234759629449698514424723915106115710770953702412946508906224050336107341813967962907766737671246666394329001499389412620053891934780836673541208560087116508953424661774134293973595788613760294761339235221782063857672411417705671207161162139541374197330779157692462486431789734869037706070590429110362683503297990111259012635762785678857731757671685202997370770778796340730918930098699518617873645613709502003217936584268886371827306786987790799955478664597492113876271736171435296449687207715436940261585265294832025735913288299660506210974216625479036163720188822458198354828830070266843144068313000972078644827654942121523897300299110507793827204734501954867096368915293184358619669836813494514339173839591900217366332929834598748138675421063946399311807310899953250137086194284436064728128192025728963480509591856623145645273100655357242498174240270969643095894038831204077146004095895325995572560639094910212605610562130742341180430528256637760001725488478588371544635235970895581304005387827831961654243906288332490986684541171288578757875760853174083309038507319538760495276058030867916810452014530202598126424636029673261118129175622702742508259559633158393643353729868131864671136695807492803405565097952275972466060585843875623911932645852081268907139482175150569354613382565837797372077362963302730778596119037756666717549061863381590600904911728423925358398674671027421038061974796226512527307216925161704757803204905480021639038275146859962766151052411574030230236915965167427013485669141585046982390311286528047389063420013263256597141236778956392744835839139829789857283273876442331215676548368438120979612633000970667605387829504634355806475209824769656476229264253742375436313024569382561114597720242767279119296147070349417966405238696063828315001167448469634163923645400243175661068007847702059545611496027794428173162287118403784755598035433990771293435844727257239648115827117113106297246575955852660753255231872987896424344811358729666764524792219897400434544683092724512729205651763213870415225849651952373737323137266868564372155582367508707554716471264538919256976799244788431100325302891389797131468412820048358356086189339639721521251323927320319436293453708608778805864421760349630426880354796885173371431925084213489538375951621442363286840415081550324270907494450194836822230457246482080211756346266469927457099410102599122546912275576130702404894618708048958891701159943445647331689880271716097346728624105879793828978593804433118821175634715506226209018904854678917120195483379368346737453406700147264257456114038937235586439302464169259351138119806235634018615995082411503956265700150369892806639875471697322691463726746778367806876936898419578066888778373434962836417742925900127295350181355837411847187285300892140001070682692816817248453916935484160094265450472181493297074453087505150461083896800749355765243656138756089223250962633020657609154820956869227187087448822254703160452966851530412607908475199455892855297227444077767492773612101749452920538971906265500035137468958132584367139290484704057669841961306954096092660487507816218694569311292172159136073485574000807289482480760330635298281678132398792436809481322701285273305237700888077584457915439660052968940506850263657722860885326200794371737666365975695158446489040201005181198326024193674483902697478300884252503872707169355714328967292366117076184284334198339506024176373828500960215644049107555408169430330051885860373305101927126787135148977856307346283989418665598792834711369765466011005363480713452213680885282658721447748646223868479392614077674147928006267177555833278496186056518088858358614887411662056279011878577079218824001564617004094523250772678517250772911159822362648554849132844807436759295189229951179582212250482353732354443688201799941827876621275428840175101125628242388392177673135900105645979525528202116959462320039640902751818931887648653353368347594340821164557090231317335205987500074685719377803259581078919447285502066930306266922952851449362122970859789405516090233644431429228767599564120861666141877542073255857329464613828825101770923525582660138317628598957650059675446911244268992342043671930928934012100245465633910168276750121019180743902155532271312916467915810451362741669954386098738019707502724977639778152533571311655654087367095420186232901749590864385671533068547140597007914302089471235542780783446849498423384338074510893134107456711016508650029539987530003646049416207863053183167575565118790756090260104425101523843143295491190692256727937552864743651363056010849224379171863484994322747569702062540859436908799253237196010917374119268702913542861745275804496966139274152710705221979500393620586860688707569051593441226636692809589536343103902418603533182376828310806496174370722972275226703552528647407407150142647968644931615643726771779385890814554481209020995013683809869301315326618481321139749309776260004239198484589302247942716627693144279388150482924699539870297795728893221741428737402253571173701195547616732893287008420284916083160541621087845650446095107421649395519066069361106548076621986025962271598763516285207438041952403125937719525057709381381324895967877789176739228955313508968282955096293397771210113315604534165102276773864291084508927985962435683245963527785006119945008003589931832097150985867499348513624693394934263996835638275591490362399074942789141795841774760332863749672866260785106278547160247551126943099249066523436398508198217708086281130899978407824156258809041968986594667999848931849372320374576574130412622067344172092784054766864121512769006708432439881480626935018819457198111658553381440102593816129630061151378018547401509150983887681957250686830341619148407907402737077753362534932016885148870816377950945138352481430933373539362642466625539132913206965156487550817424813998112702286578319655374505017600568999731053802305511423363207286830339833797615529889561693101292421827852735355458828741051151718509373983332036175946197394526795610452132698484377809595136683925104435886014265177378007490614243012165423843178374819726023814356979108367795889338148922674394253727715826591819273771401049313120505679333845098528049163252306397147919604717883783992227765439598701318805022854033491297389215041220958418212768299655650010847124397803004332607708506626254180366022626625020633021115868343425377199657913211390670512997276350183396615292207316842196763249020913416688907725893883948991768205128793597891142612882346795759778472740654501550765505657461218685797157358007728159859667301737851131303486867979228638231577727511037836394102852233758482949367158229679213851342308782065620603242340306989134450454685681400511933991924630856308732755649930803555257473000069903477748406484063810718665104517066368438534128452537221495473445087004976741824435211686611412987005795231825945981358634995779484073206065572459536492940757756559039390066456309898600776560529352397063302884644458399032042464094634695096656019892114896966834392579906885839908018130414073712768062068276862544751809197262044441662607756047261933345884220845274836146944696610838832201721775381490873059475491822664016599921955988190075205696775574997909066113924123982597310448448977716701283312648401158879696023185487735100130743470923362784395257631957908422528442610864123701060314797702048178728182121250680377259658846859745359969555715111758677025933772838057704461584677981334082415047192589009424702901129153896224125138467430000670646058768826482791447147290607719084734996754615463038281732014551346817149385676781783870518368229283308651829755527918504796258997403826977448621452271850020251470634252603871802566129650120288871971899794500269151802139990602455976194411174388230503644818422833739304293489550618001778554607023233488431408110117162643452753618827260653044567250063323413747292562493977772156785508519439514201208679883073414831824118040816112126777430661368472270345349237426488883231800396433804177833970789012338380122001558663792913700069912845634542547764962387371976988257948471364022574481072168720584016259746083284887046282647438548742950895159175687901992013185793514968872720436996014834546648376958540002990003979712496248667145941828956008488694070248344488876181812535556699583654462122252403142695528441661737112830879337913565068417314078911527912261909729186490717238654110143599381394412286007326855544575771575091115961233734693695309954443611620098015246690905729376429046532611790097926293516364499105368223162604143400096893363191139085870498391255397424732442360868977430672471011289386031640484820034937994936280320178398316698157965389507941586921736964899655504095447295940348951734328306628393170986641617312118031057490430779729169671465964993196895326697665188944291908511217789527979302026188330683401496695356523695959669678782481125066810517006924480137431599201307402167914929014752386479013620126391470474637508026150758150102612446026872315839035249062517987248258430327404056211647315414515524749360432542022076115656400093348377998292512129952593073180741252424116679753071204053481151689083343545042566979149814259700400318961367601468401304029059310962476536578286567744491867988445211686948954817870496928293710290190188818284964985913048543810767274273583651232274852284803865988352315215538817364269873779483406077892067553617225390926707859371982823012756211340973119371126080390890397933386059880331181739279141362470019885725279358276051043141949722740965845378411364437556092902375935656308167003438171048554132394482223829878426470743429290540735938231244236200400862324706686938385775762746400116784274515622662199867629386972362326916290536727372026880554189135612312676205999178753543623369244891422597437375077739365870090994986686983701450704071470540288438302620148525110962520780413861798467093090646823678105021141167047446024100939921939481772320521766766331699179125114427187837259108983612421967195209105036748620883025425576864040149051884627353433466777250167848548205350178958252914464406150116574832755823450819104001394063141081728643063519205590430647565682737761128859271193390477693336084663607771328796995724110679392983160888175899397085220114483430074034655334084338373834752775253123167343330523195362818171463144284620641121080341450271908802042430167781606622243685788922136848150638957921705112707235998265894864402373421497089549691121862557244451379351293072167166503946903916328424323678341625557252843953760445704623128558378271815098784520472197348399279200254887321289581484134163104806238552756635762752481091262527725342993246805031376777081250729810501721290574906884681867609353735237843275911916364497321593145991669357350305849793453221798823341403524993412540759186174154259293042333166723245406329597480709248260875669829237413137508821835177660044199353810527216616186983649545728763451506912210875069316777192395757498987862667212904457740914197287017066400399788697010523799625507640231012857795526171058030203797706292592816011571764592163161260703921269804975339061904884034858565949400088754502233311750683242110165935066508190930837803507422436819771711858024733069964854782522319545398798963866342618973032901463137198867769820299279201610443345498086773954241938687963994272911724943393375280877270880220143490020698047835193477302533122129632369050788804977074040570856259798081128396344297389675943658764819470150352664244929927412426047185744777468084451479266311773882302922958064691590122303361723809699558579578360894874740795976963714317341633846897881879345036085507181805795496215456360917370499803067042199331224961105258011041531657658911363725784769834497568778878777196043242774177519055268548982529546188363671544679040443504324811766458606283465148746679886922293328807367741801186665004795515337610319694216127506873852109745014194420553646765686275954116507488303532425028624190490501643386941539625787129865248899715287794654328442651596230124787258021906277264351950994064115169687500424730832493761987633606392382736363004120631604314096812953750768937276839404556582594680743633308299640659949119965504453453260957182044913502218499685380164193673680501612746987517050544210781127101347328932674117572843969450977469886196326141325997727495163646505661668211742532472929683336604188403861780312732161756353739235103465781726974902043793350132958195254270389508986275225204111795237682691455141971045229888759977755751806410700564750794436938848412924757230021935653243696989652036496084461195710187231697810709036006130015299059680764001798777636547104030792042244467189352204566962878433666843928366426002141828829965032224174470143928241002045898460863986130103391907080118896429524641541665090392670337104978381728714661254242121579555281120842930939805028254100469262092261113514223975745178584248753874671947989915252086425265348358932487350028518385840363269131352520841704052061765894270400012926375212858455886231541291197012172591862105765026287488748008063096592514475962128252596383752552448935212186812654569297250152534596861111060201379210035657205062468110956453760237237180068714203346648495639984875348884344906662580041495592885071561083587639968735196116034409446538243581999902137242269831471188373643095626182724414650536299924571141383920485553948538496680119634070603075603886469323758890525443453074525027036826002373050337885021462515057529216575932974475619440860369755849708093180129431660516867880270436284110712535431639134184214258981030612565247407023169542689851814570460891154125979787325649307592450000522285695399347602615093871287737216783091689825724387631223671096456608434726447880812418978178977119931199589154175386867526183791551735001121965969980998092982703975931291688899086977683244909635351562544974320642361333093604106043556723723342818183228043158018501719387414975591842008140396234538109960463656098660046702691385456039164132739602037381768199492891525046944403606682821924072406292019933842445177996710819247585198132563543216674621250307177201040987034139032845157805163494324292549071373623977304495008834976712968296614918727315127258516634665202012295685839564105726616408504035033471587230196657399684997404039594919283750512850735019271046524950551122955039412964812562954972539192581194860276260203957593119849816689105860973461612282893779221420468796063849569609975604128011331602794635739511672130429035402322304973076595919742734510593843941671939854736452422804512720480472801882319238832166172459619031764912959596942774246284797337292349271462273865812226923504950771927515084719913542312981435852213167280182167706474270826521207876866746395297801405460146358032508726159602426915245956485034335286492338089308460439706095952163156278815134769597564124211481819287367013588104101172857774440624583916980391089019800185733786103896943131369664773542262947181171762833464262055551472586207611859107861722815724869882552180512278228784615101961375585731193126363799220831179154758323132220744216233793752347654295966643774162850843636926507851529317075904037837491773055031630749239778882011677333296990381015910709754058036227527348663157342185522668331335108238699604047820883657588390913335385105400596545507705830750690303007623470022444665798008726994084392587710606240134545003901120390403772858489920949771885669043924502960594492248797529400840489822080853313374135369809764974659154422539671040508168227641620823627373499518887342647839181225577127962892166347148256413799868624204424135087647418617402959065179875504712788359382111079133051765989781703212434712897771526581370926423272914146225538403891008445263411502256458302566906893521691591560497225697314865380631708531536892760269859753757223703907282642593818659726885992134454837773596035293867014567949655947145163789984476717182907306921720442712223497507202990030730434812588123427520982962986723385285091469314202952202791282308698126767728858426869611057115923165248478205187698124528130776732751889459835964986784964722056063465166241225848946401811213037102482669213874038082958544430442452012082899510959953646051084071923595610115130208149602492086735160390876130295700000286086921581399606849443859122253520612431694225615493592964880103260569049645669557505145510566441385281676041942895317728370205519827476927708120250586962438798521902620352206815851606616691040979278310068810662139747102984647064101062467930260198833101786837539567094975332576971159629847285285295416077555950686001934284615964979132154959063534352435163453209866102368267498951372776940533194294653213701500908172082798578200477249069898823065713877963091932156822398696443574359444414122047979687569728791428036162486299403795332104588012850484671657986323371671380245602675148909601050189257255567126340404541517888305015914938234752944919097801687987370926099426823889579931558875223792708142470350476758970185510377284237705880857295850159003509157160067020064217520334583409078787132601408119750902109576008193565446425483604610505669560262793327871208579978441375683037245790248355930676591715925808464076062439330205647390472540068347701166472095996806784025725616233503371760635279130395213883329767116326808233568081123417761491169517145413979632020172094789953672079307055400540761113976613499264115368231021641523674196857019366935789274606378149961659788186535809391308283978849017335346254922618453392302375985625568492915651641866412220849016308921057470167147235993717373641988859919285771377020987039263465783597161606992731164543446633864442106569202885830404359061347466197951786821503573355209310915263091025533289836869888790418081973769531544287791641467238400905110425095584276615893071941070313609920928184859415002258978372437025545814593507416971453071689360311798259920169849144932286127083751798393327690239778072237368953855606206324201921354719613480434228214818116275988793387371446894646090229228042443553470463586942037941568116446193142365517106043023099041987553851249758105301629968893324562327059777458258946629741781138923994722920747027066273814986537900346940433270654715252188488052177975296296894087410330740442723382546739662366498934292325987816874880915365488510274059720777135380213843460961413113956361981353781597480648429095045607853296142385704123781500302374093741544427964039212051101184146887312063712441348524050568976143482661967242294578641799442809922538550061598651061423939569353854198617692006260406749207791167739815309915055247279961408164857556002635229189250994407535885365256511950058154651172449154408139940261105361849645592801735437038449342089474083458141941303368966083628809347682983736283907151142201865226041987530200253319049287513691032567558172811613102483177373630758785085525100042263086389110103278864080167478102305034017934741273032799525790163577412723005390956026638517619622091784319354455583946114959505283715541894161608658006061269723320059922024275694578792077527807671196134974153657630629624534048654275509945230943924631166699965724117889034467882964781420458972336178165951246811064869421063666284013185168939616014430986149837589045480235672609415766640483289945611957817098241474825513329356753572436683469894886410155638920826691930366545056795819375283252558620894726029371219793897787067877053900629082881628401895742498363091035175284028055371128007681818734323066267088435576537582367713084088487922419776179121932732832114095590007507526696086734811077977296848282289831669124581808895654563198933484178168409176365833346897592518704625899842884754865213678927000388377898307499592386122439320837990829624159076605496744214190319182331664433017559257060874186778367977750103038896667235071608462145818339215531040787784486494635088951827916962824028268362398451971662486139769198886664126731796911040082262562054225519738973844833800822832283982870671284169259788440752613923650183840238330256181477692395776675860889572523053127887394457471087722020151173073641101292380851035833187945368253414388944311968125533697443244701826378046937064704416330602953868453881162432662698299320512167868665392298611312925309042589687477153417477378619528163241647972159841838337723954989075309403701989220256936126361994242711350156776826772343037671804227062100096131754768656714367039967723144199501834421622327324588610161938429873846963189606211158496429324879376105421005238436252221661331567456755819551450607702437823102201650633972180174988510479465029474152521412692589783548236353533652379999366586775134542909379505117570190612942716806664540487413049614085504231796824279831967257178283851904819434072878906422520922886309267366351288431972779954127327567440112632808910577384405295495550591905327474487763643799827626042559979252971484241710106713232205743364220129232404284332663343876168112134901723278016830089164390003881710626486672079798848940300307558429152693790922367732077513615253309253486997236188114769865229172944702448426813726538178370917460796053204203844321259000881547322028504590373453085634269995845178008808247653590989066740518478138591908680669834140911957650949308421087768433167546473317097134841275038165901362150786545603925118543136054376577088981392849468089867279655597134015580970407839446828316558509482376822623368273659611434405383766535064617269065883448183968711159038540511436588028682911143475587136525955730485379765129358016410835335938914040362039019377029089141693722229408380526477069758065554282024508593026253046349016200557744345531326246849044556635861284032125687456723842830757485524511738420518036250425588240935560315687735364569230079575945073824697101433902575053616043686060227649263297783618559799860347863404799780937973194676314537231762186831010704181269050690877595026438043000520557453748964203853525089915247324145698395816053187734776878609522168539442299815287034863727184064816362108751692283773784681424753560717575045845994481787775687299216129923820545737551291699609205382687134778904599728277470513570102411556429710291340197467075530504658448533116965779164033964919651180859917823041607729537989449583323362681707479805286113597090339912863934608910034349623908351957683641445160725191860999914387489580963958836350817189909367021636457466343626752817478619934729647001308956935106063179512957680679538514593058318089228932453431294726223565281433758330970394923269587360828896017221932029612729515935817461089182176962974788500577549346413723837061651178453459934303684164222404575854089403529005041883376339250413450076263578675115290502321905287007158896951595672278343237974000529827199370694902345958927620591099654206229164447735250579543287295407306872888889508734165532084160700398392192962894310182744447244895988603308081457189386901903674364602938235155378302140096927096958202139612769091941060993002146081296858603094020646856948878070124159877453056635822306103799033120874285689419312028489185024313983639140329411665997594720862795293236263358732991317156167273148884931171158973401174997775713102757119335158941776009701936998900483222708625487040690286661767373442040737289069566008496178738065336392084616322266583808329335561907637984399308935469567954651578950014381607700633783903934310196925665169531814560714547819242752251090357769239339634064724239208901242348675805793278819604266848535508224231957052469708696986657004320757071603278597903547600072084267565071899669367527540954205758999687390148325799731097590912037490783942385049922033158941872513462485909730540541459946504713641463246099307252607498303200114681908257035804250208292137758350437697179574706335305545973485110750144957748809283518807127191284003448107690718104093786787569404282181774230599617216120753677744340661524431483958334368635991951043472820624312602654504494924785243506091197965634934705698963778089428813467871508593080912593212969448529459373470024458989271878093257855508616080293553843540943213890198545950139865161317765972695374020768643162520901244002789776512733578634513885030923221975802242902110059323323575036967550554034559403683940555128062655094436562272713720018862595462291192470285373494289481900814478353840654903041846473319422515274152872862328115057761271443647863337223599670821599754791530834568745555712638807815004083272209110629048393843804661128417784943094964916639209299332052103715298626110324115048091084384358921919347185142968754966983019252368616460075950171857690877239719132618978568633576217914721892937115909913926403474859671859868176552603766217877689679505878039374067675398123148832533986741542167617042928434872312605738638336893438191126085653105275480571468189070918205059414203173932139681711472016777358663629710076519516614867875041512284504765259491282760823408033311134551689382044780534398014722078357046573072595600938705353431855037593090103851128194235813456539651803129191946789100459337949183128773415196948449608702729189480692948757153628706076685521420734080871096664489670951796238884677217290416037126613466071254724279524964306765697348343721610807601442637080772462277144933377867267819004367175718474456383316314886278278691883925274687816258102170599408839062275217009830527560529248168509494854410637952835516883915388068196312833568197662560932717076672653553662011719504536732333602912619833861007935789121794338910502542407806195007786981037641261705768595537651766452520777992864880345526165133927838625200329259344714282723083319757826232932125816228251588018360092222899230936957222342094083380528583201648038978599853313419860726412678090553558509791312778427982330889905960580920090903957250826915422955094039636083228299061157637183923467366098371110510527115350744832725857128294004813169459839531925581393869598901883756784462668572538888896803944616369682251467664275269702490218738909989078420801551032070178010012644034979644611575575032942164081777933594293175768336121455567697402236181995754475083221094112338577493511002568977463010240536269374675836886819159160377669955823721439323844797396902016589525460998863408881524226781083395664799310264840856553936070393370219243037768107236386261737268763095943940629955328518321491014264305582729268226270263926422349339422433562575830097424949757049155910684459444374315906825196469337339264830113400018905833857166077547795869022985775673065520314927973439406008144737906981815798084442503659508904113336504724203361263543035646529641328748043557843980694480993375931131723039004244573354723257253357817218686718594268566998219754119783417099462558280501221373901607766487029522295355845038011753420335499073548643074388538742846817321576692276871961103341928925527076010064106464716501436326715305656325798469562148111637630347107595083557949220934468251034440885934400596532145581860193323202216605430148398620367325538800793080237116190377558575320525594905486159430359605742646551382369792979862142058907317175722055003294636192735558724957156799746625259593732833786643815588598626880745533369659936170074487101006972590268960383084162109194671777944995364381594605347882722722059652358441411508317178373930060521169349305036604747612065658499048444924193057213253859561500700247049405556594717996317644083652647932272687888913807276142982504992764906994456605738836139210283991349548572610874662915843474663785325168918980329756643581255334566991172371223503027731352700436382349741366218207428508362934581683068117845447366512415276628136016538028385673735812209433586696815164843592484058594620003206104944939385396225852920214011846203285230170703520616547435370167021545460931243158445716802726171906561870603573950035355679826547719816798516409329437227738827343250701722625948799695509021450864696687362312302078130571313308309915473121999353314234825341206566735792691876371646465060620006489117382821276717697189988245576241060434243506561514037881249760529007986033170652087330648203425011448849130004451159870181997490812095871838366414938233566882183503847021105113600996325456575624332706573652340091800403832092016896095118224804466993154276748496827073295918926388015544904810338184455964774732851694594135753935404029641858018524315018515316160795539726558340013732315092113137091440464153932218453448217934895877476627345336611126357277562422669946192627315594333192782171758371721835579616993472340701068018394438347594654977970852903860765575242600769467652719899231786360802192808295601970273968849530337882258866270913322483097094896932018831439652886076584757882832187433401922800358833785477324749857509308158918478026798951847628151875971343843451242675540033294084778896902073446805317923361936248473286506372737853287812554078839374643491214803782590367539801189623693336126293655643705201423260400315504140469983615282517965536827875679338346401735805920653700546896079791028459765402903976066823655175770412146192624871711612586899566059926020326174028944590467928985996989677021232798028037966646591076916791204888044018660930698647708124816266078162029196595443040783510926229314158551307377261132827956728018041583105181857537229152376647122033586201334187248105143894503252482691637357624760583348369552297156319393573190118869323849352482254923134951099219478624628102045942440880238084157977927615029313314637397360863428326606529978606500356476443406953738691414973917146407901222087661652401701841021566111859096606469491086748781360557024105717597339448942411618536820175269497316654631333269909492641861415209851109932745835350352623559498072633978397942096960773234657651268370092891858970378014477128787048804770501680784856814210613436217164082079956743093724529307921506574396205554306589050069924294581744261174882037381018394889268970756538469314962073755741266958039354229518042562313699028100173050943101440730911125008430664232726942906205798027025934679855492715826695564674575113087077365168561809636256126970770449242160455860648705228504903095978247307179349162826816374523462336933701534795954282894637463921934995200286514524952482667901270417033641330338935593333021639365727466146812121847791510176168383249237417389807762783977127028323429948413896504707634554698451766301275078901562022799339434108252771841413127981103651467392630343980649771177589671391091853973039893949343127958052190975894451887685867801946558669744215417757450105915272060567966502815748744251875657246603782153986596066722461960544899247141157006955015340737763836066535222944947326683478791301375772417686088691332238894295733933216372011245860532018518977922745090610668952277160391183209020510988938452411612877303225348101782697622795740541346677864280520068311619236766757928503668169991122222180781042937163619890458298384043612546899840252410950438638241250796089855164164753146459902265528287265825693914855616035310114689574286407424917869616964626550257732688865559382829662644891594232882302983270123018583432012775525064805538598765451601944305186419512555862947685426905374178907582342800352890346711210204951064765732818134879662432783302855221303138650002440615315503508868825883342807121487192364014675558059330018254638156010529422700679182565977607976947261751878012356756930506554559415773081200391489344355554945291113163026966832669842627921889498878132562382028085318811937775303786528228610923580114475412835558772818039806778524901483251893350135817576921725935244041962322122696848508670430597021326284944110879859666648858687681333261727769314593771382669776385718396688837736311619826648494177297294337707132764522924625648784613887876494526238119102138120498479575734665807755147006791687436587133040452800255095220506726314989858127458670374552877817743432449986242523036351376027848903724337187548010248288401921151030491352526004330660370726575962881075948590087373312081609130158232942551298200097418245840980276455587552300960684461260156106863795444556469173452547174230211367437626957033355651755647397230445157004124224874672688788693050121758942355799845201453166889707103090221483214220931116904169229887924320052520311670862397981984966038158773237417321261373601537221186654777435085173782700655154775950070673033167100880110693932887387007973044200471232659790738073230271413896209237864451148312560623333517119288787235683047256555284085425661694819500904966521448118703489874499444070112309507658885853130848262713240664176812698613849338648834776873517091194417880220317981504141999260822558031751067467847694803149020231768501189051324741010109001749513306930960529557332519785206904635497539998224764524638848158280453138052976098873728925786739447743448808006226751461541393201371928959228902940324012317056955399946191747763843773729230746849152697199804431713124741225361735352957999589400899047169268933292423375927447045511920783434499074923125316728152138228918146587931948242519073212660933519435993045355330730228815015343430566918055321954800384443263271046522597579381990041858134259313672594230296404191554397232976070913521118341637115967057091387665645101382039417155361321673789190403399675703618838774849477607410449115923490934638519590141348612038000562227559205067234770683461690403511024071854702997557265079287937039300388519254763170946228186199697357792394724375756658898394994260834599378826316252199808869507084567319683920965673487055909867004537145574272142241187946839612696478872255584698458164514447029178136340990059453198085728318236671509832345308209543983948805968822090388574086501140585324369825179707817659589382239437260477500929615160982813288464858222300129169039699076531558422219490925675217230002710706606333563677335540244614994881837527126891959197313239348756047988073720992543321494886133663190365828575548940135789575939534411506299822547799121859319467138567086911483065897932352227948363722927190704848152520602724101128340450062992546920901829986098648985274774995817830337480450287589647831610016609154961800901323667894970331266602339665465812900487759838930035916271204302580977979383559284665934933049508912315522985745869566241743096266764133178153260086316236000182582503345216937919442811418922326493344873226569238371933852934219003039146239727279473443875376612637080191359359172485234936556571393644319044975037654098096268923136763821291873709222049617538100455650585425147789515209822418535899065958021269436966471506982996677635397370837475247435635130899730759694041314162211588341017869090857081563150534783526556307575828934935256339805469692920866460545643103732764937802328027410704742571358061788588773728031685948911643434166697287106963120043328006080197987968219386941647191627361377810877849253658440445764565459729305549581831384754500634129522617571152795724396655702097096048534292969443908533983982278037576102569766430335676393372940106232860449124047877309720412450937331574345579639056358071894826418031555471417930926610308120653735621756741857780396354772639452753084431130146243856459661280456646312611995492081008296185854710046090376218581662219005691717725953403548990963553662422849454729071125764986189259009156137577218110426517032911800393481871628862106849276172581770043923898503695124975837277781299546275456182423889998486382523256001097825905930120128633360431624840453397921645212531780559841345680657810219337627954835029161997760551343159280554852523714033533542246411750985611286451882688390475911294297614474261299463316648238899341360637040385529360760931168398080345631299736673091407890223186295440900979419193899330603472036957046931586834636264100238455117856245164140407382435004124406709936575192611634213254964090222559516938406879210208666322440238763800085548576970100736210439116958212537954577791210313891214787028766099468412673401914300033939737556619182617502160598329112290513717429771926668893982555439205607044496930064982068085084600240957216644657426251170849872091408247383486683287122678614965752197909029410895169938291447429856291820603969802627685334245207045602591818438480506362271696648409932400328199305232859740656177245333972616147920246383418106887008341749925752705573549993200941625581751983484386801228193979098240211051533946691176713279139339346921197367920747992265734124963855208966590953675121735523831649271713130602974168946443791189613418237928593106154100532802442720153170462789998753792056243539243438539935123398559696707912921864440985441700609462404000599852290521751573590545665149095858159792386509834089912604384579967243047149022484695747934316580253048805402965728985539616683172995601012219753671729786929003969022841881704416952504543677878024788241909172340842913037108059684278755683556931204232363832757561928978622709610013960672716806571943814131235311329833779844660434590583599407922250830729548784673760813131528849355591203190761706965229099547606346531045046417676657377647596591922423932253735623480517905266418681355781942035207271021089328730951963217715776367455988837997993344960104483304420916688395728288920649844352516784525946815337669447722276615397113026614236441092638588107357618557016811548185828263950743438393366068297286417490738782603111900907638924170801350345163106417246274218317532473740925402391404116057369190189397285708812334258768586457694234224821389291000166417866617089405852678859811791512693755040325328520673337111401935637203079759553750972554031221858346275629039711264706733843509136195415737718452698936406921352020628524904331560812660742289093664067767206673913790241416079542462730435466720433905639294081670948555512364461733965530201645655055075783979066234809602784420279077525368098121440430098012118685141910897950235420762025720283762925915006954784532376137628720484248678990773198758331926785933556394492951991949670381231397547397611657571925459388940275856129317180051219055602404900324605584747249043200219020249086936598624094933651482498137068162290026496595043735591060491055953891307895416670230054821632969333678264678591549019232886622542178362362034485170715306668232131541348461848987128833996613493266161841273834048598111222350053894846479410114824211326881099233855879180251173988849825823571439539673556035938971825431743209685311668762131610437152244453757957609240115200483910841376601996758402895178409912613486234537944106503088217131764615945098406384635195371793373355858265856275773036301772260928232494538478437581164259300728572516846900209112929038191638292398928921949066947842612613684933593553342455456518804735947811172493432829980744694327213552694076106701686200640064260905867241852522855190342079788030368466186146062378007961646633169127105148361008955059722148895712414931684867527433912277226516374092462182782454861486528815632965368360060560550681346875525098008008864732355390859574130086126315965811289202293230426336937952975712619950784396710286231532138164967067515861216530494480468400687003506469817563240227499383164561972097994792294186464219699931070526392322130045846756629516595593485591485249220637552133558715331069930841705867017310000409760243028724462980622599396319944623254178208098403877460904593077160161782973781018656845449355551817040979786538872083780613185538601716837824358886042783330342458841234262473232541495217627313439770902504730582051707652276462648922801038860740289626916110996074351504974393921867155752976810812287907043885252916024407448642646920090845889723330435125703402100978971701773883878641800515086061705869912762104937179918969448823572901009901977825944131530215143872218903236247072607087767127686392020068449364715087325535949826874878477683508335364027203638767276826177343443230162639126026559958325124481234932827956142338187294140251029812298172483008644905154419231000885024274018109573027349773413944987973825105495826214217603293002749687493933227775508073344393880477324271630713824607942825312107743369848940877499353355070592098291439990664619429780502450002182805954191066603687675512280619150777397449708062637214384539457557158832710211468061299431605213277832119351981093879150791270180727478121308486034070912918476582772713958587668710083446585467363685793152804476202300479325760050870073975134504722772666257245823680634731719434772451316755830075568206303974580933425006657057310251687762051688585873392425622808200984843661164596867974316296257245877900692033221364379015257451703144907706390705400498371712254646980464975725678084934198972041954598378088927104054968406245026062812326304288847759582299700516409700061533664119502819182084618695797738714255030497903899768293200646116722646667861701176038596026706804188883353058199394022033282810859680706477542310326543719302574470857882100083334928154896136335952596948997838758726101201877789600447348648912797192054420059399299405373391424118572255030335990491694975942271020816942733056985311888467577293096085187996290936646111137623272728231586640918512539306521462243341243566816811533034657336039819708057348792742698512333571110626496002718557313301314123397722015877311002647134462510794410382247247537327682199575153077837172597487500015470301398763092298544546606736941134364744455493927834495628238893285111780670780073061702819979138018444344559947111805690247350570105437936148938074395423740615265214244440973398895745200192631981500621764819305470704583708077510762108877363378481036976060781925984246809378585664747749158802822228582058748898479260974791660658570941125247637006147820196030818671909110228735156642456295196649483286765511515827774014128926256290094778517114092692120848974379245194674443914432468937160324128751855706218978752284457945227828731464594946680134502705573861989346970890665114914099252911663070445472548723399855113227542106442621687819543707492628240864598625610249041604549306637612354453474706399292848177060045559799746935447820988251602152347782635100178224535444568191819095136696721501715313823425497568498870013969621590349971500136211927702808667889819043937855917064700257231546061048916097659115146223505055221401767097820017585738153548158211002698037327794953034571333152681397332037658791121351529504704116698386115142633099794761691098049636114898042932257084365031952661571285268752845784458281992924720750851515922522601014546776629305073505799332235478722178397395028765902816455177284633267703651082916089192575725353528497484148677067407084354128579647961301786436692607156976537423898374592523975187628419302370653125445813037263413220414340552302569171652205777420108569095533655143692424929314990139226769380774920738157831413539588884449889779597701986370752838720410726149710197483278224211395005690418406163394395269326902970785781804511507329707021466484546637248816045924929249341638590551709119667460478624833128044807537237944145636640084280643889672314893973429894549698252499710106616559191214638761102263548118124429753154015524708382487644117955988280608214250212425939254471328452076942179829308183049472202891430360121388102528744579397150400937683365275341122817949694494332487683223775858827782694512201774554064612611932910394991283821915135649831409889613855074906911343420265586707803161983688792353280848966303130921576494627167603501021690131683596541160523530439490420388847188571121107585019753433578873808534506067938082593063123949488526387989700564514591268707444356028258577024600291953499419242723472095376418615434357322723342271659648885225639158700791396100956959265051996115703352331611470468900756742677723825086780061566345213193562330834480937185414442636994618679666030548071345489492943860472815879261831496446241512662184576801621624898966188302157380936997435927528235683851005435721044345384556270505819100819429932403714164072975102370455122032529801135600855444313492214324478457113429613903325362110093546521164723446325874751626856464609038176161087532656573725075400393140276402161710048380051894374056736103971159594927588353573844385918919688210735379362547621164770699969186203917869564643425407282293443709792213450780013228920895939168123823173470967821695983817639960956878254715160454555575797369969423790522515609800533099869511871744889126768589632119827813599999395559193941483727619625209688361095116451964806043892219600174055830380687262564686383941962423844578825813207323739817262654016544641524630068375087468002602210412759709807542525592179150024164572417424909599556957046084535997563257208621736193999420891849279245368419954540895881683369362369870582173515357683890401307747842610012255144319965381228636093391105849839422847812673386392522279899868928216273333694771776676560607930687665793614101390100365253681189022119875209332588720888643861604157958251160743220207312418473206693855304175239304313337907295236860116547707722624401533914566698732234335852738388133844273028896041817552626780952289766789663623274947844861579873015168638644004603973650989926610268932303383492023207862896241763118857922010800977284653667003338058057923461961049263378142878471885101818824147493349923299534911700447204396122562163165422330361514747315532635779826806281606758066448317783339589807293858891227422598027102880089103535736791631005250285739815777586889225311511055318583517186020540655560447953553605023123565271974101577148577238461451015236507782072069162314397109267273167142910509981634754308503902795027668925750727231650423446156044422268719124497548227724328219224710852342107678713092578570336645334984672160027734622789487817925208305432017124120904487757539394345734688045181000171514776488134939177807375226034181406903042125329244578561119365120408949648584750297315003230716658326249442767780050252028347301202188990134849025590352984513393737695589135768360292602770948305095367390407428372674231098412950433480434129768651811673741174213368983578524618689916412575724235178011428588067165606335492799876496820426457657858396483363947290674063323813986794934820591362649423526837683165682351565974231935725398372519817167764672023427876648354771613793001869938764292552028480987746220575999038904939451681631364005726871611475343446336060363784367217733973142990954256854611712234686631157679371460871045232452536937560036722559451296199937621792711199916509200163023474271863473148700427659982617744092526613353276168104944356814626244883478415285455716111436625881765103506086532281584021216262379939597638241439242042653155925506792048609663750443946222700748910557244929754063122378765620263404826345771165614372010012188202517761326850905097433973663810375452062938734678329730472366454602822928332692674119065362681878417893899124716393460234740665746440619425491136094644863991492829695487766918079216490575554951333321521471371439567723556139768751669614725359712375639058935741150105044269388369545163871537826220030357742994402175369856698003083272727700540465033351467915133618296442454781854887020027434209535364671941643837890405599406699726560082324952718012630641170146155533907397291503354488074875448127930769844470726026317536567618443523623759648974043942611554967446652029811518366411967676318626013348098550535002479075487626492374198431948705417438187566410448199447642071461799183179673869524656607256535487275031299700854453041918309795829514914907681005396178197311025441797807121802725758038797369150133575185624021184039294255545634604187374256658054393198263731032881582724344388901469755527627247735978248642873294292475156874216773997582013712746597057676292832364938845308749348419816746392151770473021607792901352940836904152732602767606434149334531592607083375818835111476190018314219659418466580523646133458908272193874444418297431652889030484475423790611755850737939542196395749766175391931337646799732532299462148301797245912654289095453870144939931241917650649684143560108321449310651391694497084259465783708589849379658424518464490467737785150051666038833073869379096870133501690924502529563784741485803389641693961954488049662587217235679253454512977561834453023272534006566882553466413214187227872480475296641604785450208902568517631188063158768936940366135567250711416351282094032136756594049965140369798561365857037247425370230752202876628735209189308346421007253734413239983639108054084888181344242755865438858382410300393995607356392552315757464849624536411998838990494156400417671233613034165712468729022142009623486744015493839545057342609933557616160095537153535178179961041470183906003647946794725185926198671638693873961853511495361188225344289911432435229114992741298781700223644246725496012334018850793423662973294093882306496025045530200071661223777440328806268110266807882985916011077763197938017649808581513768890857129193887591121724655120097923732809761268097905771129197249341371805771743695671890425417263077769690555960648582903368539636355036585727191120596768866564240790356861476717528449660076656467747368578461949722773263577001450811473273057457853486678978995442791254714110395487290269274904903146457801846745890976836087822419967783224727355923858739189196699512646402253589441334404437386765552190464755345015855347616667776735089212680198645328960561806894633953515658961346384890268631524048751911188104158429967857317771054988314066736211561429122629181986404362717337180101866918755944841459399571331851579816374960314156756686215144670765811399813788356702416939613197665836301621486009176212163782320371537570487813580042269094587104080367365358064282222896478128810536651298319104616161669817405331986443703938707399838839896472567038698277435278555159252339329340434572408989303939277244328029750208365488650523293097683484469692401648655207672405363863136672050804578364511080172588668180755291360882398764300624357440295511468060534334300805907101414289726156494023005721144737927004216426825046393046868107901105521419086814741943415888033445328690147511867360870255187239803871260257198294176889240078521071909939838947372378836205951227640684475908425878259888115729724691427750207617396240542128566797697239543764641494663463652696214854595109023450100747284378015763840894202608595020554489166855143797489783941698181077566849206257906693035953729062896702335621665787447091917303152358230139836155236525595020613492110862388888888708475777120409527059866206494964178017687021255702129346387484132060247071796886957550880928300495478191220459976910029151333143999738326906205761321347082149369401398359188244907681539287874969576715226494915960689010582858972347925433154349837429959248812347448151384990020165286235586583974756477194701595131349753230218237575904575943794628932254445034321225314506641965931974828745283109881930228435128075274368818486783163121007941422004083994449417200726979294459152048398588665601654833195208822402410131077356919961668384350000291777891992851398555717849533844743476592727757003165045864892362528838624027599709276699475791291603669800792570289649152317085114004952735487746675305138649934443948316878918207779525667621102538706770681822612156700508556784937510149426384568977339144025089352172416731163852172991605004704858415571205527686699010459521395692268670326316191895385161457956209516964298882762773285833087503802297393137751293849643641994850552166931688159311460033644851716309118534075346290414460188719429400784934823849162713868856226214547368424283813024283225643556757814280743611905645509451338436429555732058090652088405309765201136750279203336824668629246580185370973610202663732571807400434818525750682408202541300313103767080071230826230271837546807354769974284865552410506006595581591459803421115248837362436944333653000480320472464341999687274502973546356318289809567153481373449237106797686956298699015865388954667710125731433358537911312003459817795745996726589212893497868134679444614251492961757026501214729155043013173175881848590960257534247766781291683610099315679036992200168232069823378319349885731126375777423142808836700629670132644845309788562392760538209315988637696093051225674798447245000260676326371332982950032152101660705101501244847289480154625591168082906788289233871065857626921352237150029605947193163836623475155200863623628928070901899491410559724389842888538475135962800226037640245278045149099569442445361876729389631374960439099885914913998803364040011574437621825826249050366552636070555488020531731432694741018898514218105113062208049976081448211031272064499998334375009837431116119292080764236820122496562170988489538323298023642025308338372883090038799612426438454821477840478695298285379618630039554720265538151848206572439068351357535210162715701689853747416993043649252088812257923801935279686801254604986320292930030062003955923061093084763870918487564495079151966623625708654947654825112872763018162707447342548735853759274317790208393069922335104194142172144872565117063133128802881500142986602787971120197660075790906675494650047432594904108135456916301136402960137544284440668134657405117338342888001444290663994684715593391507065550449485155678199887716743414991320227159679703380980826743676939107324444602826351518804895655211615791988534488020786906578399928402677566651289731100042422191635108743113056365848828484906701385852101223840841151467360847236032804707974739355369551203122402576045339007404940014944634415904421793829547364508102198098307545911168300811810246797517970710263442282332247658344300305982944576804594114393699528229151888520102487488381276088980660398992619634646462130451676088214072936456390337886897134165014189051277206355722705687469899369039355605588307780938949308390085283571363975832167513106820354236347550586109206480663581059591693239482182314236209472606371955527781990582825290603637731216948557712643257231071582929360324563160580438596256482085985568188349975990066080422440007519428662754722887235711412615043160900417977786174450196160862773636732955793540426673818807562940381660721635079761593500754916282999433328818642553148387090872423909908516959988848618196763040590154386356899406719921499024400066463368183848488426637667456486392238454845309628525038749013630409881421940252871676061391123572756134028694180398434507311414491171069721896200052792938057605672478847649991049030458513907313356866249565656657722550110162762065412506069164270095296022770145986198359174448123700906408416231006861489245360869217574518572502205089615161791246295243359560138771597369615249129425477296462615742683638106656753644848052042629947345434438192985282633435232319652272898215053542617763525089607535113964958375347868777432823493537260652224504958930112813656836258507487516230988242425352390304022968068005597036004108075119628832016132125337627763787164884238794545536857547120743802321563602858229221787268108505098318968046011500882844899419302687003702869865973671284408260490032846860425587037269667881762761057854265661196852754578877599586133324213491039570130356486800139964738386819530885632161294304301433342662255045992560716386477370922447010141007585405172359133397051606807587654947856198664991910386755617166415174764176851892013664755180139497531496473758331013371440411001047457403523761671832658049412674756907920806515959022916363907051019160947575120416370033019096582608612930434909554936830928801506064233873709740977584439690341960974928343405272003617403549071653325387857041715261775404846945933409650443007030079501370703659786760720574966504678276782900463836036890904501012757011454324199487542059603788653669173971298930350322191431480963684884660905120213211036848052650986808513633204817441170112170782395249631988436423276798561051553705092832721440004542121981331097442499270866592685397992890757653254136095849667168609769045943029818698328134001665735291542399647302778609072063271499385114195098088474364504904582561006325399385687945513262684742064911793320988713881709080933031641291488095210799886810520664744094613947879947160625873350181523436630248080603598461061701037935851911445831813441959584191450692465461655205495001928252458054212673680672159556183461331177032403899838675487224715806452054218505470205424621521420711756321218277110956534870714841978736411905741153106569115907887256506516236817866433195876397362709151377724357280543418401976430736218789153688871838128838435883037084442297024597039447570378824086100233877476937809529706348440807733817405933077849392777736928417689528696557674526168552114293374133998177480129300217451757695135341135529798663648234633585521745701767907086585159546086331751983303222950077314739570486123056761108435969853776934216698799167774876850035955806017356279473820675405635921918722780305792776252880211168373618505427249016740474617524713950887223979502237224257092487477923307407024285086401514280011924339361739131155982057285764673209914983876546297290328894314532887400728970804512829703723682493725865118263107744224765823261082490372627598435728879530612220223888470720581166688347948031056974500531505487083904672882771031740707155401416551249198331198332354572094836759764959836881832846606840575140493502160959844584206439770707154848545234390655286345637590097441612996068821620728313068042111628761711075073956560677799406026191144844603918216369077210747768751703557270062007521448096781668318081453527679724679233011519947081691661089685673922074914398749666768818286868460058256230737851644496280836938630384371431538736496817607097185110171521757929880671671216704429556824116682748032226510699027237818544407959780726357648985461624240510766861855220816470255790185393933461111886714252945748718277602358859669768289948141053718706240592958579541125054405582996072063241683851665948221250604118971498907755740439181286725867825441825527299323815669556437303601282265659113800772750275614182222425807219170344821020035808131493977586994883103493574838277853678473700174533010378442771213427944099832851376075039096188112591187033615574555469306756513218015630160315868475794178753079220536734063424278630765055065104181169183864518629035961370587897001987641408638231956520203028447081894602544604061540333761698720662538581264381170409602538127023331029453313620487101875451099031298014079957799760055049029399225603775422919231810240799887435020237595893138431256113144548844123661409572039106378354453266057681356607043005316619545492153671326612575117773082584755157975458325673451408644630589428695564946216952543947459982207180745591454061166777002959469275396906749720768539061818268404154946003203050193225399999811703933829840034088024048068448309735836820416388346396031564002544149339096384502364787936401874426814054174127210929354086558803523614702957953418398737578649689862011326698899734107566021841096669011208177138091140481031731256654862725196627637483938380930044732473161065485955772970314271228577129901172939277083599314127045570240456345514758631032063594085704534911183437240661117203074725039041882993701955813803989244116189488017319453488138368642333778288504754238085324011079436918244975046068896606113723634496190473848185188012683914354682630613471306781784556584698720832247932200854694088591629115082242786482134461630083932407308620374252985472338644896620901893134808233095221362378412972790231350673155957976503716616897951544631225678220651084086547852062367762709440780088405823310764384554249879720272315041965707908375089596398112640207404222925303273245550421470205596844190827637476243237828683556267198341804679834927336618772023464167213149750162808378372779053004213373423832004590435736524056638711687007067596591991500214443760013360012980639687788789730178946579522777946160761019587649075612743611980318943718690855842570542669329558154289509619222335901914881647939947032940743562057939326445209230330362809725505272933004508627336362398480556491134039881060167573856434231556894913810865876811286407857232948065731483318007297283121666966915405775559092765585431108670387783433917233406434997155727460160226755246993067897960773267343248818364361182002831629773997708512979920610380719740147234837419671039525771781411930103025312898869539374437036471829193537188648449960487903794516393015926762483335612250115503437971299603103200815165069747262540373176664535118545748225646865764211375458017754653106973328051442161135115502388096082930409109547250054982754855658162954804450728906116288100310744857884444987586738063747211324634675246116401213765460641412419917039218929016174355535680378942596260654520999016756504243414646879782688763454126427852329278380989240578979497339017461411444248854002782953604951817703673958196500035736636930782469113863901213707062815988858684556815072132204876519352400351540924130205577069229876148835957706511141750449259289324710111474511396665934523029491521451135883011671877886622116043289152214676500818707747430549138670766174403381521178295344684945317042813877972158076122857254813008798215086475164468895766756202569080596463870753305137353413368130883603974618151801322561545350938263054190000551126244574843111225206805372664831898364195113912725176880900975803154926010731812352852211162161274879272842978290303581644761493921819937085574329162723260034657422624258829339098647359870160392337580123270060162398421912843787567023198357681315916236818790090448735718731602245800397838567556113587012151791121566003735628805267151705583436658646193865593894244368734380378235069734102633230883364229054015623976938165579292275680365117063487057239365639634713094074476325262888874983212253271665563641843094090038400512579886504444556773072302202500701607834827617347584731445581169565418443158860930368429753039649013151080726622597239472517123459682366885478377955557539797866765236826086866314714244042273044556956611385778104875948764596885117062584037074296167043697546692773569887076264239222028878277016491425763551743455458636988988493155417441300400450937020197737975543222155383544628390384704694956726633197162177379185127592608389922977796970220666322810747893075317754924797374819871705568948889074106789389421441175249840011089394556450194424605477229026318686820071734701172631621371507390946983894913317912330469423053683082976326762491145536908836610784817854825603529697330043833240378330891817139167550692495833258632208508289266752667546528703273732373565791670683614260084607476600287263850591330223892998956450622027661255928102783690529112103595820379401449039229133847971802763532163022163175219572511997821006886939864126422825990384009358357380661555555161230567029288404676476157905846745064708842957067665825093657446676762689440192733331132809277722559754439573366145582091814292279565755980128146304984848501906618030791653082323767977201931225287201966950334765189099672507511534717955508806258492054244165389816410695121304197126100460258912133103308741195098853366449550524434207821148351919611005595339849677739539511113129466363906313042464282752732642249174281779474702597178174279469318580603970059252773421655634856577778327549827574792023680719712340209348851286315574405341310553198039557686924679994250206981172344701595351387601012168278334638437726115419079897835665639261423881792694178505149521054233822890974863028071114359471208272341495298875773649337932474170886960557118227662818495527143811914848081878419193344421401749886849509604911832232906301798645095249274852504360466326148520125984490410626891210378673641350849337639477562236420544024410847182387805328040845186331873886303518621381561306743705621064842311364966178748485545610208520614259469843072975349627496922323038335009070203279658757007409918376426960094107346632438449473661403550856501919296399555060882908608957117226751150953748335913974985409265710951493086552753154259066576846679299891056469554156881052031880178750016527694026490758530424452719723364850266456878647946164636087042260093200421628401305401460091511255941921264702588578316227777799129060889436287182562040986018150118070657069133525402399844928598135611095636258515572494428045753964276515634513975066033498444365713126927147484705560047493805302399293526905926869280507122794718622555296504424360408289061922663467795797029853126386686839512891078252058623815569658160860018780694731942744314607392568836602877979682495358277036741547323421275995755576643196619749884769946069412448706872438087279549940868876706746842332895456607622165246473526278867163864792416387656467139030787184405554069402419736255991977293296529765432551248259605294420775091243779203406488337075850465394903491858180487385823039756244712231641523009214646998549069247281083556908985894932494121366138212123343144450263211074880663333173644176660558780927842454196585625646110576550716278026137038546345996504134976579474401914394885724615739081341597315744827153545499691844290826474650838486945500245438193363998614772412285797163974063990481474170249734058721620540421121085023714176665177578689026467225878814758117576552261399156192928375323133206825585416336015926323087203625191047488776888990129179373022386094952197454026822353580385999433246273037194669325660379716924972793932784260167940776534900442872067695380499116867344375685847300854246337511810493926960617842567688437374100598323205524678471672931247570859168448380434764973392530483740157686470106494239708934403411195251351235939736686884444282767334762093153076976314001913127804997077270538021547081295814622467260998452047557154016287233721473256328483352179978293104056865614268780769880247781788672295140492980409937159136732686650802953749692764993794900972546632050180236875741763424170638045033772065237133344167178800800107419530206149798876063430791717086485112111892125016729013074476256964222392755103197419541593293431398789296274823438914716137024739183905118289838145287655203555226702782621763620760577955554063017329568222704068885431742790009670370522055676024682332817117229949497371826492599904523909255578577946717423972425876163806613209610621830034165127555537632095275092759068522402770439318036177336858840565439429274540285109386663253475695047895810834141109532845132537869833455178251003560309338260896872699948166011509881936674797076125854943216619317250564235356215632140376978944833077130958125889781368112732269404953470885404469221094715763096484389006516420546065749031293072549804991191845398051899042626638165485417403480499142100265588140614356958814179727815627391844882618864476379815540534037371402394711623471395636793453941567873990231912001460607258806738848111996906329865392118837505745388491771913838592605978089357405299226711772070571916905486764721683306785017361752218325693420142029478214028711786148174975036225122984157087511948670884482664551055517979978791351537094902278116195224145693816450399209184193444710007186082713930635362979696114468550257837392551504168212393124320613053273108478194646509085668966748816498978853170239022040282157229811774950448607509865317719186565295143989786131591020732521573257646172926182056244154317575293546179064141305969145398933129866657866911513006136524440749741604615907676098544594233192520043180609970207980297755163975353511901401683255475562718777674753906245060222039400769919657453570339424662826943785293840311872477938786613390276417405937392016261315835868219709394008837940976891760083291465632232582598480955845945661085968485889796038921693368860364292858306397469718613895457171791514653407893507130730763563245526450458699366977357669673467296857662946539597017640282932942416076820607949456810853617571629002867495131098994279044721230556645084079013565992027624100301443820232515212806806607906544434907362706923087880517178786730632795543072149225040594602772749228961200865976419384570191896927888749170624181748134233883599544454284373455436673367834378617842325843901790389075525661462019624227982194673519203005456955913059407241702991400001600156315687695988738791070317835802183908585881680980851415688835569549881173121460933189274347544039004804665740010240587373075608650518038890043793045454677749839642839212187471690469075111162521022982192644564173062557673727972986404913527713075096929791248921385976304050049842333222369826857930853072425580023108149171287742883801801575472936063082074428186622530257943511457321059976104122696425111910103237226138379652543496732287435925453756194861622781790752968777992097544487504922022113395272648209475447084674236352782707105212107805378112728012466841112999073907921147991699655139494467373721387857585343998896528960467637214094149417337206705904891509015566155874307054906800469648678393725295741637347974375232523639796693480904058415711790043915544787233960197341575137669989233481926544473136287976910655490700869485179626752154515513303822021631733834039266615752966730560166092370917455114658037654815239621210936972770205159407240896012422946325228013767211225878206359821361860510226956982693269399755615203116809028727917706847192082052683761435574473128303877102899568034973559651892228210938328463327147136837565448773408865275984242601347509662601636732982062020236820300526309286859423490816975513188059170601330530856647937441589081445538472192799653799517093371206260492161821649870551467525225393747550366484662232223636419809362061321108722195153417838768344740842891588831738318042721491175430177675431829531498217378665654031364844381916906714374698109829269357530983011970724419730042991017498703063397921142419510101992138943034912529093575472526541174255143702291120713111921021073534509097542120437069100207783572872751380730724532765458559477620697626086065139210116965241525852388621380298774931491651402310473378439038030853868618184516145527151123671725928334141056532562481816457927987749114900619599386987023438602036128712050227376091021601372726126501738860288925045953334226038485747089893073204333845731668377468248495255304639616076004700041792439291497782821642780193023012105973639209995362059614526291282702661861439510902440905004505443698921074636281970317221494390636253142675417686353744852213101216963755192129609380137330323523224910004234618066928160966857827370561532494267186389422857792535952578706093515557634837954122125571524247762431057975347134893471834673384540922989187631468329719197443293647032470943993524823560910453519648158989447452690989521827052713349996998932531336323477562046512300683525234691466224662506554004574867718050493587955975634513168566424947488188538051861959636460926989086960793019834966942092873378246211641530441320352520629271739084624464667428811949415111091883349108058412682004906309898592963123665825949519435428313879083864200190233401338066791180709391705900896624216784324481591384968714673425587643793046300164388595889335691504847151500344236431350432226485320668202490583021610492599332942637371526192100295016969056797167871639375223315550460511933799900800889942289040490237272115370603238571773772161041652107297335711690631189105299051390200196936219290754513312238072267259927555228674683203877918176309372673584314589812822254966324410775970371818082912811246339619923080315256676070904832676973650549969543156232387838212221788088858324691819092421398229876277052615426320719656737292921455794859286321780426367352776011707461406246149500784974478965807307170507967171649130625691783316638853834575124795364244063665645609533882336526724224861306292377562303131284809762307865781481614533287993694465506454859467687533413080498489608678144489584578511456238276200162039067641237717535905425615243338383450791730119076849574356278624009223903166488936768166195740498245508746621953464922519910102714832653345419729569546807602354587054002374240738182139434384593898941711163786858179945325495895372602689342387243666094336516049281176316115006875461671160090484609105499281548836004074645921083205408637814222206750052459936181487473978997788927975248734282278220564169468995836806309421232140271146261208191126926288647743607899234700814312124251366647532121442519160382545697457747354408631123604734186516648553545394915884805501103892912525930086954400111711861085945125589964723941684429693878563439075130195679533033485165888272118374809952786672219697093364901819584155751121089749025520706291316446187461307741777738546317595386036066707954076990248951428368609408828805282859695607771310610670144280571729992690098752728464374563271874639913784368904437728158098889478307464720531851990592967432150558122201644004252490375817633375829633118971778116507415852478563055221850754776777246875705361236311081003587155273807393332424266092516698858659151598933401365335415701139763793069450248243796183255055792973713304298800794856622415978528588057626395982385913596790459063835843036100765553713074426280562140932353694098844536418128982062181334309746686778916725938919184504766888739340274713262651023193797280748350188755850170126561515536496566052539646895979132132172893086207347170132938299454507497341503776089177436083745416702001424275422524851655320759669936605931638997322906624122459339863231861147793572777869699984585325611246856622889915078791998170185566253144356545156953765451981431216752184988649136562084799240104013959712649165570051285752728474351164342290779270615953076355415714391286663424930770112933442602324631296029726456913393124086540864679732774105851787975817522249215315351290765406183181817242571794317607241223064679739992145763448857857385315226354831682000672639156801189246540852941316996420509300639197445895349020366457623443787952811688863917617714085547929289498752276908698643249197784312021585332004223556250649991388310197407765955437940241416365512085400643649045288822941912060591881354567625501149935613604808277094085598373679637543210238449719417331654507244766487277449459017567575911054933102955901327011729920592787098205111718843405056413891605381409538093201433738495571354802291485963131765883976204314854818653038539563201426429342261543927527214386819707967333256886300891992524367149718593189642823298948004038321410818538857217374322989666258526672887750652341354643627352718039602421724701964881237720848260961860579773497246035567089382387712790156483841423052712533790078656331908571836783969314401556944081153585078356888325906938862335620366767406259204510118908044380880090820519848476970622885011414660149357855623823316902942500070147859743445431889150973335462693734556393144067606728047899181530196852515119197910766712435758535597242278803960078857812101699616587578296976174913400981836453673912145578965484839763250776156002704129776877508745135396107608784436374280086319758050049625200985960178550865711046280150479788026442389916608756057090436848779965051492412171074436296052850413296674710137522314104843442285782100527224018333100008803963352983721803933366894927476702940990043100442511694978685206204684775421541228878124071788656627714024030029825661781697272746204084516954818471422273377340907162341835078490271354576367032354230783548951041518349415223702907752282759597622122360353973140140408794590601820263962453145079383203272358447017751556124924703282240356822399025140952376664381133281358446365649720172881690703079499390084012639478559432060145872076547620342434757411505611772985998955248526242499767364513415161028465954149782953770654295796392493946909868783982851888525103286832373554237179307157810635047529971147409198376962615530915749634675594326049264484951175251672907061314209523579518777591840782387359410728529143077064189911794661780416337369428074554775777412793922801440659331869915447760686546818562245012661178555681277590586082058220525116884226242414097391744372635753779827854699647026275534182302161605667533431337781542424774424911494742004332992086917239403308098279345869813291857727916149675081393711220532582900706725945949733176944898078562246103323688761312931803728363532234058108852703891173954339511571376525866176749701205064364038074424919220335213263616882207215409572129433625958150056147702455075061818133088443992875577768175775678238411644876313964801214198648167864188774894340090572315821433037330616484730523002238540443605093556622482828889164796776517846579370665435626566347180200716922029633331361008664203009964181842220102496358812209425372965911469860635060346735939196414552354164432496703736990623742772571223432383085989503096859804335254960467746750640614856010011448822920020028227438732088652725741373699103822278313730994204983760127384188141222654484139779576680293517129138176984608239358410969346704252284988606750847716983755419640782278084741769118041511722919071993247937608517418342435951133602497396468711848429357026326011305623251761410843546635708228307346229759925747065230794339370305763638676152205107162592042594330675378434651833078770617818041637700530409692857763044944235020515802823264048740634016731946861159641462079907975247936142012610342911526643131724940924313215753314309200259633069191601173738917942469771746501687243218072854359080245649433169445460787946010436821518907381154676698862648484127845492717109602939549963400936534347580919751893341141306860402227883088361271374905869927040518595077890416239915722256075243076192428980408358113057088737713480341246249869726114597211287978994290817700952326118761617993654425084058143899961172551763961507957521028932387433358577608305545246913805788384698946915960837434928888610230609230397818521060645208311072845852453294336660642817161985399059395847757879914797242183139395924542970703714212556375828046877699551406374763573900771976377063826170616552661708655891720259789068100159852828832097129227538691512728322838960259482396578064162015249468285135672896916893403240008955023236466561132894287163691843959780993327980171801338928164180437760742378610762722772578803184599189526021099184284295333031568181785262556806274533293863410649568744873496055078052289012613655890329600984823462173497993531060679586078186683554916814959960523639388141472525577933205715175587125573956135229659191468141857951262269278899203766343237120676486444046689956067891243618754262445890299391834060881781078062901723338665328528627696568926132330002868087161920597116987748782771886050978169626414047881885440176848865559540016275393166798396904505413864529278486795873636885866306761120619682949952263620068300370161591409013017377799654143082761303608947171429473547822018016729976572139521981054758493693001325486746216676610999844114392958352667945702553233137891980757459684644841820137564999520557273443303652187047788001471999429509913588361001954739085114095985270524275262564559180870102759317442528650331364707981831085421512274006432967151921685076945330004168064480568847970790319100375333163292107816296264219586231872042893282898600047463868487990856831579514528177812268999426483059842200430523173627401704906254492026613241011676993420828176429746260828843397667463904613054929886411650623226188572800452629841050220838308394779135586164619757923588111110994150392040642462865751382773422435963213674075306454308665685141282711741167211219419741804659181288345473802590588376421798910352400867242126853081845513107693480811508080162315210447615925317485823209102091485585739134619581977270350274882786689538708789632008929386520760177284081053803127235614856299844284986618837814611674514391215039582496467745461042091445020479409928022942250408721622200649489636821378345900457086307811567184846762711655381171469866503695626727727156096026577914294822641274035331796886757353620530375949790447397729887571152408916182295432362876157389167031523644986763980760047507545503979516012385446057275953776000021951657001476226674862218596108488762905111186318420848792435565004790270580360695753308656031258193672533867131764977718916729681336059327899413599174890769326485990439396371019351873510372092764486776743904037231862525529676943655100096016882945509086928573290554730826124646561324275862809850283540682138607440976091559101989681430714641862380279338482102974639311383549673323626282876492321025801633263396649432334458209326782284116696578475720435887708634689957897547894448907901526660844788199664245177238954884017771238566385084859957095806161869163230504104355351703705801370364764027885708087754909295572447032614036516994126602968844746172965865945579140796357101049051161979983602367239890488437912637968687299836635546576965958338659740726843387610281517860169515016785893263651161118030458383547667237167796987856461190437064833728018991863088701155995591217346316720355117073526232525671551738177769895633970516203764622894697948888670720554138212192104553718899872094330700821626180667060196684339232831988676510134421499061017365587794006362614699856906435170950959684496639050390007367449947930900724305907506589715110724492339607600362291396114640019505186766788018868424986125318882436381335019587216165195990646319299054390450393573485761849094954213081111216140987781318522605812738366482759027099930963559339327038540612141266866810443910192547212709292477137318756846280033280008393498795783041362782438311041519989772695082958814881463578402833596114388696016787100308611374647161338492766401407095212328639164443815962784876579981998706646902421824006691705877730966097761565375013754941976358602320292832395654549102770686478910520092300498626296428827648280466868946279434586940913239285139108071513135428376192719361649467395391090371413129048160915783157050861399452560354780639060378632155671779063192177014054282058728235812585819138075738127859222990469963540296187711149522026025759094732825875213489648509669230485783030426195945408744831005690728046679937892800767021932810249675029599754863770731224513214868163226876490842479088788791462722876850183780891267231368895502874685226283134042041260530456584654907862073455540770299726907948283783548678805048224016777702642613403054147177031799859195339421406338460121990278084654225149247151761291436147713752913598330224064090965298729338441737747269037643603222550953327871597957421750256877676263493655486378174233276835234020896841930821628141609939068711611359685306756053019569564421375234549118831321584503016479383569343851189656279226208195095128595377422901630216993380872746632781463265706890358324806083842938806696225446064731392462307815573707887421864864797098123377675432523326967426663131896578469499251332039280315964212819438995542524606742582693826066445757610078735398224370630313231020655484114891618476650659000057943790863251323976647258080518477225909210372892369437862736627086428931312334904901973513221435671890545967806406473749480310863505570545180545244373746806129498328123071848829383601645575886510169010826989734857754481411482747699529067053344485034544111109636839144356666629058569119015507118129317776656709039885012683216046675219379143319680621962095924807220024856847825092812894243578301855511955097289103592283225637592792091296911524228697872616102386971444795700399116870650670827273257557478440901766934289646267020928352651626913890880807779562550490374633055301408818263228663825128811797093379463274673736235567958727776607970025596491449045701662066760973978926469759756084187221168857169752894894504009938819808125116789770676843152362946196433815559830427362621175099785478444695907486996243076008795947571609522808960369916141204379895953458725796675184371089422040887789896732796692008325258582466306876493570854837076634089561101037644510529348278462365936137544447093560701479859554524908037029666623743696131696856931030342268189294527778631194395331805943095148178177613002588551633643771408457100464769677978512405383134287980220081470192139998722957468861721213708515833143258176180115957695347275391430673908891812784895605627028368513246591446271756785286395393932058275251950177677989270685788914055302370650090879219830888917876359350041468505523567971666240405605213589699622064107436608183934945361888677111302404841312650287994117003499175801941351476364357551783852268396233630337487704974506190268355666591649459693944754415450054901664664462822873776976322455440559603603393617965324197124926421546073323922615187105393354095435555142779757342483994744091616546935280858817565630885773802147348825971853026947329728389867531441290197833151099512961845845817033688884282444051293929602999001555505109971221987674177900700719564312893920053237985932568292367550941127812875986139339176214791209774102708400605151608811887554308639900467997499066662013091313247568324410456631175967328761518935784513545145033147555305886640335427258942514511550293665519891429607852804547471874523386848057605026100929081080018821301014458117640423119043791982483489030107565093018214984110022668140675844502094943567496185908035829628824121505404115195063888850445950841233091496582526344750758777405855705153786813510038992087440942424886094268529481699370519728714485560240200014825387398450095007896307973023433278208140416096817385182940760243793066052541920594272540437393024152113101850850452238735054354689576497263024065637119946982167366933735537368227529339265744153197458481558252436337546753956208472839472077797789617658378154456980224029277700810039560830941495084848239474768367741742530442373665018625253337870624371392902919720124087246669798016466461629153400912751904622263320675959471658402890210008102912006768555324447252871357345575578542990328538278013114911890335502347779508136682683025609342048360318144701225189469360031554343502705952150475073959494976859317011937165401869446181932056827996810075973561804666893433506315627744840822426560252978245318737114088611993471977153340102307187676362520147946406244296176149713640355136059102894051684907975477785181298379394050610660481157217671336130394295306022252256321280443439433219547810078451919526690011438303274057491746810582972385330888127413155521951092016962960895015003687872066382783901025883857286300116547105473136257821541101892678947882509304142637980239759957941898970325652904907101645490852078691912456485531649146067134136163267303800405932150124606640543957856629932407454039081540324952630083928204784333688096442654974297767238352185504175592183408409108407986495886492791171564447308836670936959265159051265952845111411288653455195016089388278846448119449739035042649586427310686240648745314440665833858172796144035359341950341135314187927245642989953991759281665187488758705775507381425423863822820761079349720660802520871639844424784752729846936652710309306014595313937601698328728574415429809718142683296549363954363837041095730445356241360608552626815951435654298192771238567244955438177919027117774950140788583828477138029857388023956983497546352351062928943978050916237319272492708701013018223371339456059107334406526277279605204446919309038259148843640150443273431489284486161763929369725069737031696193335848185453140406907546721189734020543408179184994570636799017694140536246222644271058478470296643094685306356385016646987244629093370572059715963808134587891596444136809035455789348598526347949244196197227005410660929046102694949499008046545928228664790703850315712406974333639813675552234324149299156793806576758506574317151534091120352050369543220459348103062804400458448356762684284847028829201292750212343625303363864937124453429404159885416775363985092531277535599564319127614610383239877754971667748016654495147374826933240055198780915023191090680255934874562521349119382144721153553901677617745759427687621830364362510344037583446396972012359392435738625269366799191179488605157194871672323417894942278787782877730251243135795223584898493670068661727230636821425685336998352232821314115789770195430284493472162142301886854362286530835881311140141519862262116416371298742957933516956479270754047733899008262893818353861240440286705497050677689304096038259194297072632436209343407456380705245547060551567073703717088776707661937032043885672257589542106376360393093835074699548177715553966945929349512858857159137905696881214064714746139507996891687212608406203270509692880233660615150075198785411974657123388914554914687907226708276634775188353316707635566118125279824817696707050783653345877836364393722550325034326924299169112538086085951761667291960862193439252315738399025361503467587513729318400687047611833365241076146071478942073680211633422298498013621463975223329365032418201820107437161092269154208045479619091004183365887625660067545478083583618913680098201753131778301197999550436895722671079850335774479497693825239949264545941445591845673930215004135200268408100303803593715391200873305315117002142685334223273171374561296972811202804187035296343843557218645162242406895839750423307916049776211482661565680527739673340560204427720777852163728571853829316915001693502387227273267016736100688115175535986980148444910643718550398161694366894751317847111792078968138946874126647196086155885994154916138391625459412644177171809061970539958878787844489142135420726143943236132891053162096250223052847929192590105022594921826995686744901488070160535098217756389846251490387643484423296201416365483608755626815065042036342688937737238957336773931486400022772050087161813698982652017777659213755297560621681452520315816753399252398053933273477270128669508903987545738759405422213800364333698005455766227512096436800524559762107890641417986708114813043521019297092476749256546381002025394618420660379156523306647896877073699340665773254130895123282603240098503071560436453762836633422376983593822488674673668356109042228259416685171728331348746964395307036481019853862319187621105974997183686276459181783177334203895911181443224515009677107573042956570100177416442839454910188087901418186285554524588019920505528472871563638190164159995190335898114577876050159743927181747401266712901973996228896420418491407362035834966107149878744410564239785013937255312181706793164737884306308956477238063690607175826773062785371447516356662776667912897483218514173183974538580817164619498801614616438422732339754462118727417487980470910135866074552384536017018620511234374081356550270961831966581216278333463382585707135986313873860065042919479559598204345821222482441992479531306219048802244673104721046580286721652941473407920808994372728686905909149875987334857228169662803328318287036335535830771813388908292863556485440257443399621604474303821814889807936055997723619000820063664640378989601420127462588500919136969043201493761395810366078231572723938687846663876370894865527699718558312762599756167354948356278544297281905796439660659599310551454659280432828256939499114023053617564357887353234516352027525349707529472240590882350880865717863074835313548588112629618626147054689926432815640565825603001373406795996731122965130463230754679145331783408846144968977525941950247925951086921239050915174434850015961299674204947281278808131339300243729868889535361729713065836605158866632491381120493628578979989303386702769710689019725021080828067880481638779294707048299398945308907661159230921304605164656595424450604619837157454816769952595100918269366688664795378253492481357823973449652046314971432671020418382769156718059286914661993125524690905739493031453470227434035571313454689035218871613101948699135288840652446799220607041189023400458873400789552696685103010542978026899093691386555704070403363952499245079462500958916970386905838675582600968175964923826481030837650212166201763091610632149341563336831122870130142789730310345540358473600496726156013165367543002706476934563932586808304681656504721902407101359102870535261903545567302807244575901210778173528729379442270998029288304894836795710063520193553073040255422770869015689726680898702292332776319868851366257477671751555408902518105012141122489254827875369309943938584643060804657728832151661866198939685859300091180040320474383610454056824996965507366766999406209489630131964671407597586651119321611279655598764476158494739732617523031648996614556817718352361503012529609648882243478564431452934897920486291677075313262399270056990774042585459429363825193391683236537326665061205169409605442662538867796996024605313284167493332994962323821211112945021490712183013196159703661724847296108485840097115823929411926411907530249042777787948301479006961445951755128412989104156763957758659985781951134267486389800141637034198109498700557411223642718032899272097576897346679092488939219730882882499660587848826906133220172277614296649365921606048849387883558405603415195896038095905187807282332969618218192372676282393382550043944720820010666238247934321976265601902870349649443414990566933758233007118841071557945211082468670791929745975916370722824890881738818640654526909712187563377033820613441592709842896623767251086741196976781207202673643805866186873066099693787114763695089483156492328248353206348133293434792796830067575208593388663049391894200130552025898373220681652199883082919235092250425499067578483684816316089023330495316961945817739767508224341472071789870401872103435035843562992295817334590227075341799043393091611801165972970689933517648904141631615257168958169565558096027203574516839152261035541290759553408312732321585040912485325113869338980653410539947665918771879896276482970736340515821864092973882506647821561843611225642651891438461370612802554958221370803414309032897136324484870506970032900679675620102846071335988927842070443092453603342268674191752901391594261110245828300901368013771152093561532062308148566051317293691724595300799746446275958706237566689020682487171712217848297781285949776601630181603194127028197973437240481958832559143365234975254527481747102676036979899296521568928387726949568406437883919631195839118470227250111437185660430733846134052179528774630361360735511828713231059131962930324003433170135522299619478207938176649214746321805318882073147427994629235323409821433750015787461564558037242521185354297006490189011322533978204693043808864535471201471970151469355806961256347735673451134278490144487479339946502386077135726145390564128979694709912574988985505217182945071577887972304016459177062006719685640505088556473856517873229509881525730552935244958167907891066130473022246771427583762298640901197601736871218608255696402934215313875806252603969172426382990417005209322111592963435571820754394364878995213650931653339567302270154923659673415731848978963589350514128314262618301547330822992314279040640439894884389583363203208319289929385502060627039847668617033569498396151569206016124098499054216296918603994211758356053551650675227967076633273190214938222672361938288355755736265437495184429946712749429191258214869407500378688913635572434061244601761975950254719956400949710262429061891818291876140721934925135205494800386620839577714307618944824364553023097890386926976155137499437300072921483162717045695181465189959614629886592747966986457476030247830927310540654861018485865271655682392692395074944969151594084780677696133867173338308302274397144555982360628064575520294950147052004193833053598927126192860342675238396029715249863794583176107681706917529355875459670613827625639968340075662383735388794406901916988092219854417943908143253633844594862029447655881761789565519845167549707983360884801856114281465366197620529655222778604270425649361296616662047368198688879660875237607724842670324878553635697631542667513059296330749022843596450285711447399911932750230499181640775070875137876516948258803088157574655191213289243618055266821430397406792139769639680105810689471704082649399405660091174579880900085032852159819093582070538912795648859480922308752222750246067815282685857159593343070174734516407339115927299353753491679938802747324717154592508642659273251914337935589829633877741874349006692787792661790133780743015819135533641619912973208843169177954523561621517239476827659072870976134998930596490861626045532116951319063094792216032099163762699265729900882140059557680344290798988489650611813392942533941602170022014443447410914130883227229697941867892110406213259593172391777010786388483574535850758966375197924859506276210252767532543881805944265613193831765435683161875343373775048395226409250267880092532976138101666000137281969709616560277562221223676600055744429552163815980720607731789770673296316859913523866430163632458995113398581010816468898687116319629132883787400947224623769902752118103112189806692129562129203026523892715755719900855568395332710735511981657228375285150406413195890034993403890401342519303924225078955039544906172026474525821946545558161718485618635205859741248764506482659647143411371195417407674063619046517070756536493456699089513552387436434692826286712257490460116838203598837987325065671239139999350009008066531245325720005764014462657664071516740860362523912629505407030876224143245162703823032671828070773857412113958797951983777527367202109859181776319700022744849332086227905288122530770470426630826767967877927409540630763798149896258732325830205171784807860474370679271440103308000762160835552018321444274924807204024511099795482467871243181672875577232843245836395876021870945560132772673637834543116173311657065791152099959374814804893029366428299494645833496691219932100433939474749968729239064180800734345656065396926453507165840183639100992150916351190529406209617726343139966003560015122289263334466143660609999823984081784935232698663067629814887774614557445572268435631047461508723701923882503284927547404965070157138230034180316840685149462557062917832888885477989744911810577295837207018184797720409058015770282271511298425874654779345312766921539189096278125831685115014408105761217331111670857259481670933694527984768507137830262343657499336862306405390844488555714145591513594392903522845792403139536761433177104819437250824977614110234883874693365135897113277946507095915954892319493797170884260288272321003388214574542682915863023617062007089281555230010929785320078432805455749064202279871450436909406490067731572593638351781733161243585905234803957790063166405037804196435222701766571335455923546695698645261911227974461724199359687553869998528686412916561524813898401961165740269842651345034257023342755697796573193176080802547500251620688423932472490676090443390166904756338817951231838343048867111942655600959038792247248521073123648498294173205545631851501100718777184696712071704161968474538427008728491643723479306763753679870487695901012919233856312146959937654769688443604530369983379645563665383541891890322575603674997065974698250726639501384286470742901809713519596678185942653002083434938134037128164460213470581799228886439181758306688341227935534933547319613970262570822477739347559614149059201666914785165847307431479436837394240825628962293004922698448868446707732834106550063241135956096846481312522872270107843997308671757114319628354771632607819639151322314023625804894227456786625062640526343166024331269338060928404866090809287097684503442380840780631669953153058415525367992564548410652430162374665824699219997766562368519527685238310225520007419979691615698425598960434042584904377908672395625240291156595700466334503649658365410733175714799774939888017940890728579357877119732076746459931772551503664748471637695624174820075888563237331668609308537018916182431894048632856302661857018055091070927094362811643053511319613244061171586170947710725708929154410933550994278669128011358369386479562279486450821631061527146473843902692734005553870239808724885798983944509080020859081889552204609377938521794080083362856783461225533621055959758899198372406901176036321356995613827785278274815148861435147283698043958905621999217452337000261052482537776116181683379523518795381834189614217834232221526777975321089486456449583402978393770660978405409374735444375590421416415265228515373162116158813230458169024831422839940589668674476598586119619520059764276709795314383778875829965973571653801651386217134782286238868804494629234603714299873706829189314754424242983503160131356661410420724583229066421795992775357511267541266203064600093143597522886203318255511098381517148840920459311827933367924425838583420971559299017780122253140601300205456863677675633437022973286571340152535406051716090194883965950072518559856051988245793352283510284545849772724330235685474925703425989238834459107827192922886557952305247177204531877127661326648066002589312519048727531040176548368878390662443648228543285483849108881419380278587038177336974742224301236342309240770205630737028456039289846968724820360862708985764538089358155824424744673443283041322014851670274435130219490508338624058432227763525526101177080093218904371132993391078213006860608336798677686176849015632516386935062117772738865573277432457156486409284234668944768750696656795935247598839413307027117007340599748383592984419168657974702051379413952269396821118780483481507533785200606127728458840691738867035603566259390103457515697085251163431369601669188953652243699046184483067151979019182966204841976381414520222525601470638228826920412237824790293712907659437691173160395123401340550255148673868222363918972250373021422541689338836673775831823802980982182669611130534864594986575618745685653304520655965346691901730609138008945904465615254415653249173580785019234302971984092697851368482276735238294660689384258064344263832058428442200286504613236650814714079540581877757380041460451217652460428805517189347436449761577494451927915271003467422719665934636944810064062648687980138392543744018892457325135472492840578802042213799559605321691103167922653909147883124756591754977334974093606363465897545577628478811214361534913794188105613737867607105297283449873075797683612282095214481294177357410106278612278623760121069347202543653453965656529516814108808128713408816386196832940490296083039894278458290968060813143294841748703575417767056666368108398388904044237073812918599898899470178241194644971049706852888254025598064370890262811380617983349601755700317113469047953523344305752744342211885091187347851226199833655081571712592042977635917725355367673460738785703028724201988043717840167835303564219571746891674204227521166706177917352498493908044884783764626470961745306952003053870689034545361090824293696004325669507252089557556180453960674048252541847188750626329598719607655090832741151493089481286205508339482887112400422907763878660234137221883743579212366674279024254481840515624949620148149915624702628892746655144109244191460541326368762249244072719958155038591235852548656108425140767154219994673745006971310823443643017166159213179411527433116314048888716698438095630233710694902207308279488055798674265459194022972455809479502792467309759663244115091750596909588738426336564239926247005500007486166112846665531505764281416219954311215974510509029121061462425529040559071788507840571468390963313558526710232227424580016533051235149412114072308931832294139293569284021813396765663299672586658934271719382545775841644493582345994884512413776898655270766015771870318094678462596738778521947289232641234410129286425623014197956235079302202467132382521201372444901747952906968206096173854592593635967678100081755583570382194901849654459461840173305415924564076200457242930798980778280218464839470342953024650060086326691637479689566582123712402193491583360878310563188837308503887681975035864079612496563480811571963795202924151196388479767150569207593679525471205858040728442940161025819894938168941930071285053815445467104245619454362557188134338139830508667336730025128264696489277396476773134489226388080369034201665191294363662551116725837295183039756426640133768657870926701090935929546605255681729041117556814327145734858046803870582039419237574164758526602089080378107013884955705330570023517757003871618249006610958664918699421620775057337779071017689505342486998152275720493964118795842656283935488171397180478210778857095019351800979731155555809835237392511079867326650896696157908172237186060563982062799165082333041859027195647577779551679348500119759330818233596951222438092182839294293013016196342401541613645840429684871210863167818611360850119655779465469869890317433080263107186136186309615400748146162046514971935975904653355608414166646638008625366242673614481675343943315665350945133612369827350116202546698429090137613433160712228787654559490371082696147800961634812145102544528353028236422145116580221315497294333093450178396492970221558124529382959481467200458304080083397107933708936728455770142133831207921421141283309797232623172463505295894115912774194986137117874362170516567844675117156733420650721272001359789017854720315891084949479407854949830334661081162258544373844416748397385531087979009118962997115792959246738774625008873946279646733726284181218496132705103918602665022991625203719361346718613835895745542787137262368498302203146939663786751479422288954802744998552479999358873559915967396702534025154267962902924223945917977313685236390116398148835510883189570363548679700925774796864765159852630188885171935850896406961755341031289949308408805339013503724664817258976778019091554905160882840996379687551969248991519033756308938812384242505842956279960050279393437849659408195494741251816895382731080227605850711047483011147270933982210181927752500126071619400399866492339941153749367994233018588236700530590708277362101167145089127506477264854625179463240870356719889248052601206412568705327559975749614617347063178706713108282597619542823253172261269383243814302080252712800993754075449984389130826837337922543458983229255831677029423532933844964910287842745777485392993800201110565640577606204621513860796362999429164984071503304701503355636272544546355543203445332386438466132017115497829552863847457821314882429005594287277979210565703158176736468524560659164070078230531213374639774609293239895043627934345536551320231554346810827689368696691754627102571685489690834564684971477066426311100575261780071136812123132561324129622345194396128367251982420082671195661294979414685769629558618920123120670063098609615611475447392803105442593748218097354301287091175278374106436695211368307210543642416843031677941836745419653207439876094498177312357980323113405492211880218794972460055213292101532253918851049189200696875346491268437530454203163946083179725274436395018238588928126528220172827018570421569029103006711326944929437359791300302700177718149118300535337688321431960505441646488188856381068254283483998811735959672560432267913050721966231134303917649917559170585245263729305956948527190889385996622265690445202818882464685796769420372529859781712045595864949297507600977332154700324472625616180711708057850150361530570652454359670530732002158056994554914223047709882250715774142533300004771025924191193899821743617040121072929487764316672328830719653089890701238642307280115413416031921069185251813722668668933479503122365784084088819975174433725625922812122451332785000371875343125230832516381136931617698332379365704273579035768186039780717861717145959912387903663053256786843138801173239186206316558886682734821053634805179575111224426779114455297508151475228363016980925539071292585612905201255914698661979376293215189398778279763705045525898068737805279333948279080967552793370961318915734462234044802708761377476483439632925305543631616083358026145167430274650300917565244714071206580722657943316798436366971102554632610433632391278858729413897700732237743084551979729500797423895498635246564621690965431997804949690182727039895514730515549617109988126744457521684274144182042835778401373362082973306687880955465547610400986316787186959127562491647261628972955815784354175324638679055594831961127922532261210132878748449643743749517152096079625259320549965805017965943059689451955507000794455557248010541244080544917829793992261428029563451991614842356504487418170022364708016839179494094169825795068755030584797714497049552486179894376513648901664704270036532541129749043532623813192007411523440457152033131885992102534490287409337747392690623940075479003619387387224162142767696838039649499966808180142769448298009904621326208917074322035189354429323441954047753298242100596292507866970379073359900731986314846456662650607182279705689434025303993935680934465078486205498139749507110897819782990592398373604790052706744042191360273597515485316889581889951137818312805253768463749264173076143346012354961890142551948392084855754159125602751454297475513527690270648646370988582951072433668688364129003192508235131813783149008852109805005309282842278034518009402442835605532984302857361126675040384593241232804838134676594881769795401448070358720893516708168325374641042001391177761149345412201218894343738925724220123786957392461382717691543421868257216454518279556171494105337524097055060855236980829527916954564881672015887106161175151628912207498809736661941392321413938314624116186726836815072309320389665275205110712085472135158292867057478023457419829474576656652585389287848996075497348369786360001104799184946189155105895294132586498432625110767260403231112960682496540909618453048492844003204559348447449624466032826354049989474726446071954141292854027281771719422807519506261910163451091823716924942118054401035327023611722084378050810615868988723486296423542120259936109551755986244155230605535628735132665832657711316748280039844994977250443622238973712381200045099735637473777105169664281755920882987085815462335775050136019943816239418499870370330806919161985794679964795614342549311314558557182269776935053853401859512284602936884656635274840536746191818394590857332558444481858019188361079296843004160246831819766192127171252468801399013686732361222131267853426902169403342275854128940907270687687754347296172840017054202190980527386453471988960809070796398087361362875512971321495485623370599929575925527245967070177950488690545268385012179297063558540313027405538892931010071242903166622262413522467116506565330246108986021309821764535938027276984633304623310843513873626459469358402439873992934427022861539665800825306840865808941085208284247866301869608698267095055849855723118033792509457286005753491081730592167131614952139175402187511699312021781599174875598888220011639888262397643601535018616329343307546937643033619874202704140239328434658044663883210264092523885356889861512505338864089565130563887305634384344931477613562902935954468452450992886082868556533316122187703362585876098866311467915433809006280931789557119565217103357598960817329102761121044809238480852324623531984482907775387914747626805242295338192880338894341345140083796487252027082015950985128194499885732683792310460501960706611851910987225955844300417707609371854605881746713184150328291514426879792265887799907818398139806772078431676120458849359650434325090462614402814088542761352229955914005722710042700503349632954999125517943522036081933627021568110648995440636508762718985125316849125312433077645073824383717720470891294552452247784679851453223546650347911659893813263870785239962514090653932775263520276208409230426289587180999801609799495335633462905031019484010234924784065201255353547069132392128476553696366663166278679591017102520780904035503849206937567467528733533259250347272129745835075902334578002801951094481605835842082995608616901842649645428893533565609009486594321673495485621340884571217951345514695769620712045725203035163028719908458997726163975331042847903633992106606175778213981165152591078609949973857213412453969899613376396805560621347238478006412599416377830615339051309823770697883775671681185838882401778102054923624452696812611001514917143532406468176157854991318837394919073705182237602792105947163524293719160648127953652631843905830125836785237859256037747475553473979269281091476814417480156162641015205278242892240546455988566113523501531158001856537291916186233713309342440551485300109507210272208418346337494536915008012905494777809216539565893296642985725010660068508337894523406667459412192918784168497751011276377365799884555058993424683323137069411752597060998263123441086076045495874930355858262486612352799134481737703282078512987679183922789830964827166335907968776765124753010241211576172845494192023589373133052253878412102874773995483975281720306085360014192931822220409008197331434227443102701453689501520833855811411261208785354449862612692428872155343666753017895260320858732968375932630809925871221120280904910754977270862893211540472116188296954623698742720996659160125830388315805738036549145661203877780722917767389993817226804895111679519606213968305905436694426397939398942256241614343261201234660175024877044582252723758217034482674110765447737037545157413938292998778837075131559360101501497666021721495038468974105614457682978991861614772294719284783880107358634369613647709951926368863406920031404464475262128787497904985191753425340641649326789612285258910122673257174198954568126003541722423270152721893065701033632056933694237075252070831513743997351016424546903482256795348173686272127367841699914882629279294913876782805827479099914697623039978745562610017333916298317722026414280552095568105428745727859218143399102830443762173646463161811696059590800415131967626391498523399605621270322228217819040965662034564077119018090558681842506909321069133467777140753733053923750812982112362555108581214718111756274557710476278142415867284257401294515527678346581047288931251232707774357143660923614339995474964762523522769997233762621720257184817029569163836967842950202894647621735449976688984726725032004635509886907619459891611801613580001258843947017808958989513195308570591709882367984208059796255597987980524339432046510619898236697955424550262806643476408855673915064490037809973825989123975741025728350769554340603873977695064279274824511207226848178068449849516517250991234045404689127069560682241410210687460826729181639517936629037630551349126804855166737367855168412899064168683097583764763202370823557436905568513985468556131192595731952187845265128399040126356076641091959392303661468814249030694844789399330360666647510300875506344694610635137694207433881937445116343586039646085907770329198514855319108240249443356172139137951181091171766545193391286749269474250281006660109947058879686561328605065855398635740973880895735377773471011181033046060953513732781990069133005996659972906605894450742984372359645321491823917519705086541596418946005705240271115961584523431369068740988208328566093735665025035695391456923623233740666200860882183347006579352920300877802085850559453785128576144654471040351914731710156742114711554297787142585540123273315138209129451316497590620500365162129868029340690908940382296185709215612185719930132132182702618650695035142659099757295970113177194471890847081805553524586800208490544541237144027946301605433819908581389694543160356574285096917745304698321320869612416843061622440101984835164230993344096290237264060172882491610974440444243789778872709062083844439512325395145537422918159947721792743137789394202123956545665238120994325463092671937897639163026031093625630378760546078634452456149914165378369982539750182202736689567038548662978101773037780841616464589222307216819357528265512506153197237376394435185417797221212974345593273937921408689505690322806791402968532006642603702844158374003550251226941724686474974354707323568673983271428539791180224990981803908191657457469882911054789255005975344202806666701289934345492478378062289132459489043116941315246123048892324163908950781316715537445423078846380727920748250120306625295588184389912161791770798563341963002581060137717181684747203717296406396202494260533367160452740016806125078752819394623056202820735975172881137440363949994082791946895949609248985552702577971601290991776491479202482082246077120195559665090197011530462573712679914993235664679545937689914590960374496962066889804938974902652884577317366749025975150854790692577641006200718764624393628419489018187435319336222651209383164883846760361544726825231260359861376568738177447198337998896716598107616703819000755780733925182033006143255350253949610068993428198181957012196249110423481988584974152771804220503296910508466875260786623174635371757278409301189613094459952970030069859732073957729968955632724039053114378151825740106416180689498573337953630443978141747993602496851264075111734805454775380612709530214209417271716888510973953671016735410306991862771087027365766074114531937499677889923347723895881825649065964703834195693787180474169945558269917408679986267830436708966499044935859466306009488279792484771425480712721500607411890418069866752462524100322406466004994089346384001259431768904112216683999707100801070478931820803186047798203396391531258783313501494073252483950678162955105371984722867005513596696484830733266288886061550151698644539860422367071374324486698667876980594455352767846780172187782044525062680193184773479921370657168845525239677958167573074675353690641262082436517897558802463898223287657465389631693116402829151342258979365878103028385558875105678669084548396211510557593038165454161509201993860401152541201786694080971196142316517089366583031093221790822772360513935691355704252718449009879815782011428504585775775745498899745791525857993845828010694282860263841967574780297146830288433577522708464465469736325932231834733960410079596041060024399730255452265202828885748713391751005552934714958892076540479442430663312395584520948055430490509994855156028516622820590383635780245009033928491785495027973884434316619424974309585615286535229144930966186595366079340553888253802130732537663508679404937553021535202402165251068616189223026366771313025276202604523115764144814117531094532255836997295488573691388203912541303983839468670291038985935162973164417227774585518423638357178184723342678434927189401121222948002720330182894778250017225152111728975504176568101926460840241311607075396923008906717615086959182907632625606425902926972825987263077188544301655295560249340038458902015666752384350376411767582868029803047245934766393471073780392896290050700851396431930202121546359132740746467382709721910443298422720754173546911589887411747580107836084491839877534238229320243995290349398277799120025205515438657927458106664575939961270352311497343632154697068998464747026600025239382981875008510339833647365791602160383910295067437606619201947487733754672001246065259991562282149264809125113828711571660358232532852591082126298968716467713016986331622142262495187640882860815862474991522743493402119571385041056059051212963703147661688851054361866733762741699045740972406818876507394276689817274916744430100192572740632677151432880899539741150132991654981378164089399386782916246755510023003814488524007549619025134095095494678499159989054085907433812445219289842156118731009472972669007235318084450547034956704988464300972066434534763252666986541609891150684218726155226144533378227643506244961511610918052870973419331461433804306545724181760149279026401718398238841865695810684244248919611891637902836134734274285935636509426617963654534105549135022782913120559377997853139877594254611713275609278698363387132931716448904722441843917283936664942740239981255185488058740168585320225706901194761956909879912469637560042948176755633271535534575814178221753532932918683336161347759588941899631012334471735318057738424945326883275240804434863031155997601218523467346121764426370348314142185208096440634844162023481224400644410123414475271335941478546344181609877506094540473760323322142366003387786621641207343129584401774788724450716128852317040562891238899820391518761757057301721596114358217948271484456721056590843734680605668550010512654191569893635171177044310250582154322988218483550839703102236700721737056385904859353825791075161652605927785356075801679875453283228441085528086245683859521553293186892246342891427367145107486271868262897572050068996284164390334178189699597319795524073682302834237258784946933429275829331232179855316459170411836116017906344115886798393106180467819700603780432336556200354390309998166655724792220607994697027636360251885688974372186086049951875222150532032674346182236630754435491188907462887919190966835459133524746428049144136386869547565079080019879890397443557211957971975473243700529085636159029144490677649453483764086026557472978890718772770447505698779163757232122046494183298643150675843161976292604039546368568127714397908515000687133424055974927046047539432207675826442573998692420134570277845999129509683981794637056256191872859611292873471360800821952155143894072063239370079973199736445991231063234715323691354011103871734974567549546767587770003868015119155125821112709082820121608601988234316699210215209640779290086594798087955817789211091834439657650148364227039146761782544947343768685639644670117548742113024719403557806906653221515179980924688625733243526498695862340060477056704656260910850034143857191471806061253894744231140089918203245753871239335614021418662983059064304470289158565892287922704890750956281263672501535493174396617915398854648297892568342875422991246719661009783831339608283771732647386841390947915008933190025479555210009619755787256244957378886084311962946128825210612256180448478411227353000668709936825078890087340808800029272107799695213997436905075084888157673763542126909531973614379816696238651861842400395495231403932782875953916475339392576144618662257033782885335105936766849827082211837148456184791850812534658518567493860491599900483418881178200281840880748739635203949185118870054910523797328928435595861892992388649356617161267098114163304006745722491084678812847467157092985711944138631728366189661308271083991896341187152791541582889660637240363034516526786163908618584195308693420987268631117547599871976794497645202367054525332805436577218553235160690865502615993639385306034987127169401779853083047236662107681686318499844655947883951921324816196043243401948250163963851263563064996437038083715715571293206193287092378844715129586038428073350185450631034498860079977586323773557487890257305418341769953077698271039478652233765400260198895071931715885159670345785299792583454941281822130304745445314778110406891813301467785983026688356452152133490649415405963923548916711289433123115269542328512833152419032965968338122176705964974386310979126555651810599253668915219794403196842601179234592343785696076236746786253390804286545598624076999709320025135025034299362630565762614883097795466840017776509689273799334590237257184496183165128020697689897344932629923962585689454164001596332788769720920997369069622573790896074331806282216837193185537789302198719829310480469291363492263350567870240975535666812547874127435235612755711001463824053338734999809139290181619652918314929422958328420782055228969179456118823308882890812475212418544882280223474095406535458705891717494639216122680369097707432826459433146694546822633696064348433344146407302982626890961024440332510946420949224499879549350780666821136205165211082214732647852614330324713648784127012503393908135871952066252147965060817363842628322529838340949697411273799026916530524458545804656340134693044906912013787827020542728788851458379339399548347460399574246289431452012120131632276172323835898829737074606508142549238840289816415089436701173178308250286727358047872880119836096219847105334645426917976746281150390766044618759312148284740892074294252278325397365303427784723721502534444906703668881985442316810362858472733895755745618879244341928064555366378941382912306652279269621883177340763240096937063927393107971382866678335545088026197134532438055047714391759590721420315736978281339423453165305055665746638330382342186510774662294116133599618188751634501712865865513850578179340847557925929866153561109063172118285738281475582338244740211598811657665662605303147774350386709192412839974538622234348080844880015458510251363910295358453149469189597403730714021804891848333468267537229288702823633308282770257833358595813983614094310865944428963546036462487621407269529800298939739276211510094937634879991162705518302071259541552918204099762752809565302630605600188937083881219698768218438447933926489017096362573650509322215301160506994145680002167947287496552321848378772572070593131360390504211119094829721167661763099784605548388402298225446602969153368946565165535324263378712079952869037304801498036968048677251686038102738501673707269825294100795372583614900321770522704801274957817242806930752744339390798755222887274107335084940257317576075476431557183368395638442071771778285290390388175574590499939895516494735034681303734561811992856086317517156124526962711514965111357120958045264744532271750531884333798031534194725534781134756626402630561697746360302031535353973585815196591251206556543654328421853731138483923645840607463497109862855194545770669889467081105458758831472321976208909815520305757400987193138987471605065855478188745739753978792812795550450076384978916319141148728789786873506258451644683850921303917179505572105606335008237508340007613808376735917514734715033798224165264961529475268402230718364417289641920248830090606214169857809381881843634538246178881315820744743739436043258978644510766987138466049072856573271330113321886582923499714610831045125352396583132221827411722427615105876120891621950033811121298874761929076326107489312384708085788049112395057174616755632661813936996401894206202124434876143300560883235552014778463651236198195767684884501553213871544251142174835176540206388177270432587364969685981712452765872720318834395096428170797990560985798669738579806391290366508672710429790902981668640611952791049690803947259444173540881876956102446317859565218025134591358249662875535449158311863490485109972788146950240878959676560288934971476415597736999436957986357877607797171033736951577578347055490428034091605551455745285795543435433386871917826550304679922404069073166050256477926254554591614730054905263819014594349543453129871031944800582953146054369599432646469990930816245411255586598242404123795285221751462992639058335244461156073603232691138973977139711239916643700816476992414416328524944469046422226877247776965296669921138325281008958046916437320690375057484137877608996165635408943482262188086967858573375086025030361403219019316467336258447118533619368578241387627737199294840956073085540168495760974458963452292551759485943949783283515474957430465842218536860017895782002432404264369521329878018120956174524167518367644391644718065653063267617408070405669281732920236995346971311009948911252367630420013591399500022024632484413357769486180782160173118886247830405371976262723636292177889031355461381195301493585931541756977177995743483023672443986908436335964336235034004731564702399689703365598155802091505062927713216406395367737403928241888029858628347076272114085355721101403072584425415516522165633450766672876849488255689849616468910797837328358882855818011694237176763702424080311084369161378113181296374713633843926793656007045342710229208635440367992618800276751116213432937902872376024604946685735924524850699106441913060879599369440447382666786856792438922885475106313944430777293655364353039376566051708547842356425542387706223339843753294537661717350352411316880512902551637562448519192041788772393560756903463806579497378872964206714279105323798573447870918769043905987242466829390518217519519904276275066423220448895854737449926253105253890165944767056869396970173157351600132982981129673326638757688153646622223463524258223792981398385068526493615533126933108959361519528107370505996263642870883037096638084212711941640677149315481345900421105696231750950616858343426590764590973813392551721696707873026245444043268437252809560606626706093220190966423674990082548400462160103436919060133801161318329849156033595663690153792199641100328171860890456964743949663112977519499480783029768419954246902618319954035454571428714697067585084068611209029239911127237810409160823533443561740493370189112079985517803320699043318032047543382854522907693078394184454440973058400845012815330326814275981581351590376980324680421314024662229475523332962090117693632164001478349040363537311533558910368244760959629252706397214941504507320074469502890461124483189521400204919124340321456964970946545085302326868606475034407268061764448288678202024639087199370991623484060216511789487163479496407880661080125089806700017473213978213267765086494734106991133167489178005268970448990882921273491048603146600076364532410660230810916033658844499000351860388146470150913649671537307994520260329458295854576398642508269122465311657058277622788482677058453972407613216700986227034616744539209411489432097188704820977368795930996901367506065558268765735393190287699380417281495324875010613025474417607729786743826327603515191824940749379200635113773267322641706723382668666613768928344621289354171142988429594895881842411878321025344379502076744046170776654108709103843362805391834055097486040452409743373818104782365766181354731290114207316052404958851168439693908153223989130521000761233939576820853205106922100127228134480444163135778834701772122937334634848491864380605107866698837546814239940192769840864608386496615556197833869077513177610078686720513112769624115444933812030986142550442070679656228173761258137369542445844497881514016226268085433377643935384296411189908870175881632465699324750454534315393469644888360281500324012553637622893265510166444469851797696404205041682924911519950342081008924214953368743286063875554712000985537783782143591555678103107523809765039428681491684563782992915386923703455634616970831682336136338279544998788355598870459545588248108598975752178725351859414542056085212334441093461101629293571195796049001255995340631389471503133380572139398709718588437047594679259426006455252764010737931285130714291674268242608813205464427704877190444585151043023333336302364730948935163442116472336298472993861429465501399967100255104970639581492989140468383987854254552517878489482815831363568101729546169259926293705084878431512710328357894294635471775819462765845102709534484235427015320226896734836304675763092181804555319959859830023156410071360758946829238291499495891251977823574190856846521448235040776889724315772984163475194514532648816850992968874983963347994481850380603865259698108553200360427954224103033321914116364965355161433784086422111408402747490490794349877830758978772212676210793749434907718516779645298353110912786226400927397625735755035260159195013201164448180280494040009648004262141496077622593053574377799540874841007255206885014495535933931573777061874394267109360293090742370777164392746058402146219480318468738831260977020177723989108494354652037531507122251987727125041684758346057993438315536510129158306313933488350193557043488190279648254920508156719168767028061809561353739682438729961778315047485659433527839102269907858591330655809748074402839920080346952144902838986525970652844764061816265592793234155363213322110639053046214191422108560954570224588512479160678606309995363534734297024076575762951023362768888997019735040348166955715617960133278458645702217993921840639688877533836565362094110741481757499902074518936170529159401204220379131265238822679508374817077253172999636426561796088826932426210357266732923178329608321271721869014729559592404694556060455177807354720327117615012261618000593358414004203085334123047405063982375760359011731873413596642887030957916723837368641296538554302024043148936890049544079192281785801692936563724085445856038508710237248216977736640884951584902794037648949232978738329297182247366276131121844285406203889336967544934222260543002826438264536000694053185672576894145676901646723501583760697087550776181195994821280030268247911756116316559669700567685036514100123332014449177204434134042372027318039824211869656395747194186242360193419476903894196605180847540391598266770283371647820563524510722244651311407758203382967391862218238412137335788665056052811945951209571362699061822754197964936965429209453107158746099466746414693536404087720961199287137737744825193756311658762274005898189541112601459202760172529113715527026227097223487919450169110013770160320594476709983458470443857836528154294931696338854429043701842333264874086680649916136912191058066796130642911670726251747590110178254981649709022740758038569650559136353887187284624360659576373662581488059385436508650106384653791992596024107229206152506776804715068131624612104402419006486632064959485711960035014746718274023764253572642766910807411287179598832206659637107983076075389806320075988582763569162280366443104851342577985346247357581523100602924586421917281030369340921695598259015953113189008511252411788489608566995086684630172065978270018228138941436813962006184187513340352820655881557741860271203808975562799375956513582047971746521755815367994736901880314950695412477235795236876541237054306061097978281621665781662936993516687276348909880249920788285299936006690031711309608267140695367954168701578716028342612784268225052839370882767070158072400752387484706289504982353272358858675056706265663587852841462391601677706611925538346445906780059859497114027456612789512349368369015440346529650921037837433434371918331738033131863720805533344098215846160229916583761913081132086522642199493468633343997420410362737613453969695946482827068939392854524859596985164313926663348510316529478031589949965408634182877056165762454894751383828597553129035823170112105850481971436967476399249846620520914299628675006759349317108491822777446237386739908883912111545236195718667574120724629088740153596935816938089132250201892898074993333026431999738179802315896000673708444956341873120330515232458495307489687716678721802842573270533620971981555235963643351764838511468534666730484759061344357718171630333302415893449952863267433983253310264088318338925886563209230024449592759386374665786868017772570533167738308618980380925210392735934213324005038601342286432570052559849030805381319456675024380862634884474735864725859719722169445970938538956568200249354774251811075945933987728111098357564523183466129627861594672980396946751817708076923672757992755540972374198860975628462516395294003330642244391748429468115596810216726340436756243844294441451065060132299428612750009830519996279296856257279459981672665880264043531862354945047928752632359908399577599645768666501934950525892840927537904466281204238331069451265283616954978605469414773344972670201863077757765973529245146166625947564272391069734499669980249358537178471446140033280481775644535377268074996650923615402721046266991310765913165302599934571522491070730528679171022554447249993836955322302556749992586428357015901313784201406251192766062398692964002226241846981159365907494117612477921675310333444965603128186772390075617241550390203129713696180675292230908414822495226536559734757622217438879250063241468153929076915617440069299985250276082397705523773195946181548494253929607171265575124886884105818188192830619167430715875384890992747259805602993002266729597847158052518683175334407071412260653968227314814107378892313931842663408108749810239914690377815831765937754771252294366975870608858496658606183969588775062670050222038980590131008153336025960603558015256028090470727499489894761767751413900225789110632472297536193798858454947716399872474324197139546947559858168848824128391505668761870325815633849144228902708879660432355348881442964157382019674060164146467850287233868456091394771961243153973439170548341537374833565231570788678380346355959971020891871109674723327864410698111667116552628214723895337276681883443715988271085397746396614936477115433452767132326883838727227294703604379878609873131410905400613492889618393433188166960372274846126449400615106142759964271250142752792404333990863692191002177416237668813631852684030264129342083957238131623235647975720279241724979253313589659363877047911553473234767069705099857676540337070528939448452242660780911308452150041207079632864749814649461214625281456043666118425650769789929307228212351285320813798899238468276566218997530308422249963718892889742325053857471229800357565241541794546242670526091309717809479946467136344381591171572327349222665253391026024886098459891079039206574607279089470060234075664424977411311865392822106952590393335711878105391383942624430862376637954245345877984267926669024174084201909153968374916704176207991053084028861699376993230104107695468672589101847401645141708548075850791612464071717163656476810567855603688415170191350253292836073797427624435375112606998638872747910213392960094032662489771840215374930033204883271250272175822124564407962031239750709776766574351006213378690694722196620849183918833447591615649177006729094478934980730804383232383800634866608897654301932164878700703952006884875842724868662278606242883441674469786057545194100341963401965881472066439576252514726900446477195431357420049055120965492130321213423545426591392340167607330953322948024172419263785633227739734101693532255620902164207463186152883376945905296968739964325214301758802170061395609659937502267123099300048165629374859673926589794316224602480551798606691983684684772796866228385062767451963289817684159441199776889729615821135803768807322966695639756705343742873705774527121829242902347839680777889260621565991549419025331440223707593553009610783937755455241601191886242963211228924379799274574070934389036215691132332904762255204338099326122968411157135169253118517239081410644001430241124795765294432350895193470985596725279448359532589901863257193088801990292794870651258665814629570459539324842282310482974411327263179794120026986384782397022357547372933074733820300936338260858920797987601457644535544079354500736386983131705270263166892228505744399230126035677472374699557765195283995320545232576919649324375398324023884661229964263027815065539589647590234157011350560924586793719887188467731275615997112881241272283900329013900187792695978200741079177313454390971386421588801156949015706932614704697321732012183369204314984457870594701362155690761147334166785329887302383355314241622168097370730942368498769297223350489216949092615821876803194594284987105272155590625016542949203923836144085212060617222756828952867745679244129587224363908809027380366566081590450059593259413529265532184596973662676710998755363354781930812120651566260515588518104712443883893703501441756954858529770425928504320139918601784303637199160215398905821259832405653397907832675284777200490682434142931290934915817031011431052894830079616072056638327411642672590345379711273336881960049502223699860352862600974040540681782075578378142194487505277802643188646943952224762899182347442592188317050807672595935186641717739045979104204051362469469822712556701825182296174001479216266106936531846749899683444475371355537830703083181933744990775487292338761709800336090349440292357543999883951651593270310479185654166975922555429014302335415133832851364092233800608233528331547583927022797969203470270862768411191019124800377084464418721480152548573262335948455045539014379411124102142160714838053941224216923489653943359039006175964684364177303524446999503572455959884231847443812528411512197641563804597471382028554336277972603297295151870949194189613935784966018971928118629068206537939193971752632775993759996682044420370478623036947199333127862514515703854800252140048670950893760370662532730973490092192178954585843760698874923510565856398379089362903898154177543319315203591618848021845825145791804846030761165213351365727789668990418023247540683691983638454919765565325339716410262663884932681595372559920440908211804280657179804914004324633516585485144781512604603386365713778096119445291895144714816026412965692949334611013557547590969878797907936418914963966043319021461693152825235521789186929187547248757191191208484542417027956470178632846727963693299142312253326026208242718728833462991294735196658396878703319560415908023872940231098711124036971633922953243538733427588320033626102483812998219591543307941077057160468372791444769768280745029521599640502849103733575220502977369513229033532002608856947034575425436292763503384697794928084906386700025643046007926630722930915703020754899136614341025306693726815809559086166564837302719823750617420588125737848305584082596292785751278451577548701449097225311238629821181831992133892090114721709205835986782242516725974970261540900705111212985934225049006951037055423707027259386304967342125605691341541436847782075617199595924909029001312385332981325462113866001505618105877966805636662158513703539196715460658077462980259748208944741537114145202799786167451329634479535952701080369967160705012560002028254203893030426413602937488277679019925933090063832722510606213223091023864314224940799924203353416766400858700983651598294540674465620837876545068168257791306521227149134246277228200732321594809365817727676966831295893007811081601910600095938895013390095263238766836233170626882840488434898770934193287637066947148173191914124454070783663900379933592112223464958161447165575088136043783800164669302271815081082770364418463224953409854922247412215429280912962206833033900582703000986082897994461598862523708221015995257955265438613817194450128664181176615272950226119209440855402343318203170731056132253201117198530443123779459520801216518257390727840574881051116329405266651640649530399517062331551577902300030721000790481443909351096330355542352744412971234202257633002541347444193955859974129378567107006782878758984173273962652419568617259401840790907490485673094761269853530577348662747738028115162350667212641854129111646875253018808393834477750787001838805690509343378305031119340598512894778823424189860891190088368921251171154097653662362139506825775620524097065409974760121510795476191601865859356309133553577505417512139990329739945303642559634642924712314151605224291914128528548638144302276067445243278319071269675016534806183120414305829904336220350405966640735610755880101754042134458921329353582634340838398178473863840529854391417299667417364914630561702046189973521167370142227649265777765565409132779641285235506915775666116215972654940527364435031191891448018107113139424743346191040076083147657175090727883326601653858216079430688319570438818313547722336959098091533835843845348469482401765646967884399882740020754490263556110959828189802044055019611212039242322981959693842689413513355755867951084440420129244143926434908990348822900806814325794367866458257437554985856120690128300346887686334923621012028243005648544245846711798598766951175376303615568782394477501113822959978729664599881039427677564976006263275491647277887597174383290103427231465752275144398678092662943116795816069323378726226186427731137604331076709305365101937088789294390253121949843516177235888470863790415208192474273350589860348483443614936230200977830699987858812109564534824775063895629845597553623606282605887350136971103820142423581224835918874635966246432298736527407015603602848943612839922769760745558064767360967003389572789282060342440752006109296058737842855345365691677197557157699584144728366419793974099249659512450661959342610455893762999210318877130425639956421264708073756048665083270265070206047890803653396830830059473708221673147230908289421886874299117895635449569348023128264785150013323370933775950205999905029320358514043814121544533275045229019337606606854216141208074661544966331131060173037721663205961966351232020104654485352767481983965940721555907603832909357831541884046670592101855662427806808892527680265879806277309862120781231529447646004221032744474588199119818960128804921038267822984737535835112047307839619389480493851147459216348223940632352769482202606041032497331853913993379860513708491333638777013194661644658286293108286587047923573140719293252067331655869961195522977943098966753226591529707738180803601269701136091086912166681262699156872496754347877891353951251095778089853056782917521378577335519052221414772256186248553510514441764405070325199356849375909471310388203954419715928860373547630567399034562403013149044172259109487023167176840845074283777851486579717203712853045302608261532652465607008311261686043606609278826602884585103003551524104808301474089924638972298698251624947222082124406975672112485466160512590104302812583452331441413824645977275052476303681207884657802928083840059857248137928114632054888462774655997853450413166780194665914516670123173809563463437578310684044137832353199891631249170651674135523610798764931458563692436600087218420395204464734704977302610201082141709317612846018554493333280635756638650118625855537438625102168281394812973680570076484185194608379088001195308076912749612811729625919162509732305432554046915942748538135337914124426664601321564428656111905836313479434946356594715853075862597800888845617423808286042930173115332110778290970829201982080091888964793962287280816224967712127222111432800998007405296564968409215613162832418543878566764460589570199607616831950176593909486088965036394599196711040977801521508508020581964502109917779817413800231668543455754437199766153468782401042282109785615198221370610400602968206539872135446483152379796057303216525522650248885176382052152328818671348118216286127118898292191420122704956870668992495571894581574246725946710137655244387754245516253795237998938473329391538583093614807158642286058783397490067082094025506372799106631887524143148490429105663192556704463244288656060269793069703962400719518888867650448171046207635539661216363840673532373056375816227229310920372158284043458922185775346059544635963348967591198601321082713793386140096798634864349174881705912037163756046107833315507701162689451267774397729579366528096287682864232781351809340210606521358857741343960486359228324951058246605198204718372470311105486015121906128721160732500498021907836730037273054317662498544183023571658641635412118097601988026806497664672401594261753585864960218405502025278419591332035193649113126233124810937591399091139216924578841979171813356342218132105357372694820917049755360029044993349991027426716517181415144908386667481904773484898820649478825782426093372574001931734135343291481317911190297487021730169591580607577149774786060112145595024224105558214904431231728481765794665978272245979921853548373741498214629275912081876886315040578037439819166257782141307624674210873689273822714467713416702492973586656244280385148844080652678022117134486197906795293687399335442429783875752320599317208472696934912278374055019454711252112845138445487545387527087301216931656768600879106254946546563764667455614157614522240058027834826538147100792105835086788216613323660598278884951240993882731063461667005519343166927174435971376727124421321722357458967149861399060945340759771627223270573293192160123503454756768069029627442364655733935738946978395827429737539852020317092166309186112359077197719684505239367061287999882304289993167916915637208413979192005218416740537421850338067907861930922416566802123326963642473261224332900701857613244599039184553208496074231231858942930607959730022884344624796895681556765159230921047763010926693271476496433618869961463089654546339423158045327365744010865973225347902933126473808046597636021009191175264259383019877942796506396256106432865472056036377311989893863407416486161906966644322188601056188459794372411654366635193631958985623737626093552965348367691186160216413294451970512409628744049668976384879612233271484938420670266848699415857224807297518233973245099788937537776061234736276257309062960717806615513091105102969317936551751002701094604585380904269241168484331368434166009938867300140227471134212940283944312475669541195930494482673760732412583287610513458414069531918328556290812779016531426081191964208130559988318793891272591475401464047813526452003529219200184660219094491760996798116344595370998465449970243133351806465221553458803244874509384204941439477769378107095920743949864213467067036049643956412991343447591415790540519524834968716251248784897349903334344356137334261530717980854106939187077654027585408194197859201320849671401179571563119068889265778999536865653321982247883293658982917514251669853677496073558913877585636433062692565350500803707990811877847629636913615546680904705709720595842386331225640369810585460348170761794853053742607802197899291892119805504889805944601893927476816729958369553460349811367936290443984556992872092326590807541363669932743556393223334163021806722066528580688885165782269794771244645714819749803431231161368423965388856839892214942733174663024147379666489449782409329677886123137602298906869833372097996089155615118790687314689347113526165771721592428062092089789626074991255096550364575973716220589244186252911595294998057770713650603674979480071001502038745917309195516729999649821365684586366154963337805242241133214584970423127526858640469262585506747183463270058944603617954284923322809951025493615649257792237334669900928575111245743877324044663788149279048338308095916875959210711042023572569161178473585433846760171135646610044112089835169922582480669966319040013601351045148692904122120397454373671317340391005717379852289745048220313803298117063396017053708144734359551398449381767036172893859603044932885727562322988663503216023568193175674658894193046518803413554576942005143665403533670754137341802279815979196805048957246667805285302007079811505776294741676976854263752099916376516275360240454054882223112229500033332645648866388574256452289789953574773561406467210497693302087818989620357096033301786113044687190175919652848757827083172898513063213828149753483857577566954134191490893599592453869943630875104302843855564533920872803476684525976738313036832023863167432870957943608040561606612205545995722191184380481590620980859280566142556701353921439150745526230114847660289760343428373359530270030438217403214769675128826920736886663604513787102528785317439579792772746833677086967985836497241857902757787420400571058938908315604534231013535678794724858275781425207838026670052198494594638667333558011061009179776620830879579853993374435410431054475801965915490936342437609833467185023192222028146940153742899277822707845661168890360810692996310674734416116574653715951823415594220729099007520504216236593653486062230324025539275247731144797739307923059903171057679721620809013562658429341513910915429175873750936837098397391261811814453556178823765452371357536328419541584924637412706079724926317415054479091467904915071982249570958955233251588405596514324159305579757919540242516244317136811248672962097777472479205187250336055303759503972124089625383265531102590787312363520235400595487282089880095440464712401925910281839381485221613698316286765390404244794995290058857800701302082884163336596697456940776653778077753459650403407736702175021499573154174818594209172000610600810949904850802432214109023066650968400161568693035713558158171381068334992734147768485777381187084421943958755035518210724560365767489650781442113604430809269662860475680509936249526590992919432623665966662683627513929825352036281975896530746230182219615003558284283115841954540053279727379339113019725333447011831211164981586317964545526235569257605411535752436650088110773850142623511980839584277372798761824882361255874162675115851721066858034583540493445579983869818220801189001172359493750035516654454520615431565641110345085541383998633506471455899639950681929737294181341085636873757098801213082834410783697169315778530451060926342880883969433426489948877910419953020461142307511074101591515696680546312454125454731384504260589753005859097028371758069905804636183829366981556667450930308809637365075544378550857348648705247588420397699712702913358681134664495195286127560271638540383919025977436595268235451455623792091376876063030355456977950175150724941931245820464963788196137418581466752328259845336588948447617838789761450239437924413333024523549641809956791638165829127727472869128454509658910218288635998916672082613069852073835530537917610164381956843849703644303442178946497450431069057449001476148881009479792199648834734062862159686152536203053303055439003880398239919028071155101871186563512727647842175331425512237745695806738447034609219904108713171802222965951968720885278009759910830234772551148328361054268830588448135565558786261618629835387262188430155621093320953784725537862476123339935505165676232044239463349317251061779746782788552212174172104485178844648744869280924203708035075514400207707570940858705905686780228810832093991563291206525548491603441987922557984539841301828423560350737225014424412968327009298408546330476839215594814758006983963972907200065675855633622091177513304690070451416200425780408677836747356102937871073108038271291148736901509914491649358671962290523019752354192939811031963192270464729570422716588431694566988490459978465998752780267338052464812414912434724295292858056586593240340401205722180740630826904900492698238712596637939656494547496576200044375869674465751017381029877766728241238444722097180841541359589132799690291494627973485310556833008850113688549254627585401612125257719820158163770207644371626020670310121099529004386312459117682671428580811603291740638535695989531058570492758691129380489041514029468095885675405533691932216683306533630075771304631290947861148218981445368651064879765013363203307750341235835346944165885147712386933050984076237515755195673567410429952465759216801352666446172452129701995370072630425148009662295111746446625732126838181349494712582126366706304038247263973201402442082872643055653731646757045601341558486319765771690343441338946607621362990928611651534631165093907988943359749637823968812895377566013535432628722876158129248091922673956901045099262794183351404476580001974911629703111063626282590335518829406700840310549111969004050256296841332856367931902223298190310861999580398213307853845153671435136120932717657770300704569816160346978488929469858688233052964002744221524360443972850826012487724311681853464373804820233885619891134877993184414331913229223050766574507597394143601024920990152854731773788353218998456784308384986770169906352442755362134203540548578005351371524774093532338015158349146332542888608576228678267515229740990416909449477732525345325217401545812492957603413718889006983319260847143187039835611225259525758927977786588958190843697782630013473986866867616184826497227748676354734480138081879902958661415082784784100750750979093639832104111828754748192581852898129969896594732069109850818265898014605119339527867074695913028393041223851352165368572615618604130383253888013534535320327489443582101713475913250577776990257817051080419015811471957232408031986218823366635417748141436627249713565854146087840836567392431390820847216935595090028095014415062332715687222686179489176095377943357327018918979449839161934827227865600885617608153587213626038436365681165075962238648614885774132016442881774991096175216769775998583015753643321903951646905027699911633343684412646285030249122760236321434044015153531616835007690656013529885357333305102117196995735107206164296258493338661782828719545730574961218206579230937580937853211473544313646835426701731526426788251752291023339925736599547231869010275255981154098713395382365584719323485748328683754051282137931595844257847435516317214833867101418016715287951279665675986110894588823984114526092723032238098679303645284313303742960096564045193091920794709176593419455406243112624459000085511665008427460528806472374396960859781285016999283158015546983759640662520939912533953154712215068202045877562120986760489360940545216049236291320941178872856406713864589554683881559898611358544936245894912002220531179895226691735887648711829116078349025716363412712944378004058961201728587749963468906411720509876896952304193183006696533935503332580555214546189549457582616445496056956789863203375726196641664465483753738008626528213841544511312762255135918553820190176727821763606669864312073198980843035171312147072805946495946464249281917877427987618843212952090944033974411321050946049687155187245450147856573349397784982844900640921574448992567772142406766965096251621725366341223447075933783868194096841420045013875068781865242424891620554709071357320354939570047841956061400500660359777970530388878453144214658646138532929119621718890768692697240870262560585649016158399189043909597193244402904122439496994567755162170228428434720736018200998898281202046901697865407947097665094557560669789168259377600786373526754101186785987980476161574473790199044368443114117691397300998134382850900095890674019661199561003270286983838864499952045270015066394471431178049003699214846458483396714730903286122255090697590506653868230904103587503413268496638348549695732700307997413366658910708064249609509575059354409112168490798511155413265221941758204410564697280020048499043119893397895058109177487997716782545678531031251658277577731610063103582048078825054489610285889086971326785877802404423874267370205474593740211244748071510830238863236428879159735872863367647776398959445601258535929554737043781671611892772194376037646603264020884404505134560414716361398250322947980443756668188729012676775970691992517589881586391130059210787285494714333600063583719152507590001340771211991103470400412704730617032110895678011745637328703757180993411228517763359190520196370367357709223779994719863328698867561547188757027707302382949453852746318735886833650728432694799406002685959014906162872500189486427422251054287759189031873574418872468427121575345116356893408949980171713030463741086676860225971594968992301006602806562753161542649384918581110274039273920742872319491185752523455651244764256743908403523167439109173521112104206075445822035442499199603737634011342421298615556138559425690180814536050210788835348725347303208227728651937905668679980031117036449254858286514916732350060845197023479771463495185483242065789726264563535773880863722897872743072952811293338708774162436759920917474436904965097598067184807288693796046817305837809858231975477919943431670643528858984232024026795000225005435872736951867115628999734982385735407274223012721088066110943744671265813725302738010532369782754359717219440076927324332995045366171395084164999331349949943010996924624956288475555717137163566749284905432576346680138858305993594458689112578188216783352843876402463377638836850279399522031718342232638091373939700785018271483441943117893387568089626065937123104038588557236562637233502386369976406477066166729854846767290265361549758166450917160936238678806736973645743101787869233052306418849238811081581471596314044967154611911215057380273936355651440760300145210886021080791389059920484206399537341117148908221345857006653748729614234995004468496265037561607027670619252697064211531088147669432143216819659408186296595843622919577802252298746243107762440800698190273259082179653235388290190645817255776664647167630683927217758797517287140297269670451678824869544376560193970280599787879201099397745305751875751204747614011330334222906668682261957229324388843055518518007480235097175418089820924566335349364226465447270430258999803182204555294728022516412572702468406109115921864512980249773980345149806077119784018255471234066991028645124659972889677322319261171939322386311709890762712685006687609952865511493555429924245761976755105908727747488512612820063098570649935969751593413911573904129616927928175596529049603703811080493515096331428821165393491878604340370850022063384744304717218073872003267580132417084802431070206463350147186460034182669091667904833415345359870093783538155144349098193490990042291229568005544494332094627045195737297202441118711433441643954619780893236301956637257722347454619658739252508130344810138902825851302099948598200256815808259293706347871595382746029380464715569083507411791633942854415698623891761525964943586328443997805302496599195578980019424840585933940935331727099546600481884721861456695205219216152166130939913908524488848679738415128816480165569009733821127485338637478817761953476529247482628173819287206702454955415474951600022219132225494861039562773221427913030215098275653543003120875743650182889318311871566937256973511307249209690075979993030744107988322709779058062964434792114445405412119052610616237829015852971579258398736141256399667060277177969132552656234005062563830916063823588877410811476934627039828877560080429477049022332856110490391634503832086775562933386641708874147389963327618479134025672188304438653199594900733726577306374721598889423129386521628615837836874811163965780054163332202444611068996062288223725639230533030090709369201443924516156430707108996207618703145096699950194018890674309004426400229042193555586877858685142381452810281913461701197777001835934888212635803615380809308763279092255916504114571518098323020502271761470752616127100604140628025880716915577248701838648754444685413880907997350008976713659446491724773364790502141150321720525109335999612471733863377193219768228665313273419936637536559033812108501454759796542479094790135713110621189308014633470711730678393115472658366606438398036086632567913984344769317700786866168378380619413372846233841531759442079973096598902175062492571009391394640098944861912930475812127610840596058151486634887317776497861924369682501475061564320344897266008248782420064997613141690491105760792019580369676242608307758228823957934297043706782658026698904050527892545743926875696110591149236111443317198377933093994513375547997468790687633001459811917088803110655451669432967585604891304394020425737077224222672949443016225751628227015388299356312757375731006994363405160975789262368084273107440510349616263952930595256465067430017640058594706251084009336844787723666588997315949607846558333977663989166653918327681925630735669634979450077354272480326249461139019399783252649792502537293332052504612003977949891495057330968286454785394026390360078381186799606972304407135470731899231331516665100518706527392417104036887602218403954055021062823830392971332320725098232557732957593705411227727282447508461991888238080968979293123974310770971058459849143775844880536992961158097653829954897147671344714586857593652437793159783809544831602282738182906625892792648315419774174062794181773778878980186937999948174463743701859136793819927810059796979138349501466543263948261085778474830775824247475996799888147015755834240359788071179858075740636431967188345057368287105041528192734806619294826243191675908144637641737553468606135627464884581456199242305561065079511116790101318134994917828297091433447149007355951732628057324719584016504834686880813585080708736607987243888059984168909213731918999530377388375957332953770560673600497711545887590156822922939255044465889991019317403207436962706077734714314019727542699517455113969751620327001404829684096959616963547217675781058834158506384643936778319052427915032338407385205458665599466955081656341174443948439598007667709100926027944436715321976602571588167024944765065259699722889671113523397051669881720454398623930493512835871363190103772820357970061667143437689367965109833487921445755825932714719220039026508977850740755877948381318974799572083310046356927706152970323672684503634528080773472903601830858798225395317002954992274344665403684225495363889515832397380776600351767366628059342347741048111474726197144057662630997405703496289265751926650460311730323304644038804557078122491185921494703334343850211176230693548042249768584784500374495675678104501848807046261659525144178344981984486152363200394882146064167233098064503989630628259629563909500670906542902786471454293459510729404451941987689090816257558559874074496780534486363112467688690571964980403559554919513142269969310271736537432653290955708968359544894319803815879383966416706928485950516328213622119557724104591987190313816390578421271697931749445835057915198491172389484531769881915540997872678072161100607484481700576755289589153384890442533985336282731583302200162625270080660978660335016436359436353678789797599388694572484393721058912990358149010650016066404505175817138434179547249187634774105322997949842172680461370034830174377654793855366011263147917030033142193154923105490325985146380399004925460439966054859024797989721035688235664253952332551922173340418940534974704974323796203184405342773199070777559703365144671791403564842105578294161036426072124646904672712155472701192272691427816790678186201601820486703653099252625965783572981324427898718975564532495687649838153539138756883354251881612520283969933280339594091784122310913808915201211511758271310068614114214438118270075491371762491982513803993338253113707280302200861111293125433931419913114178217064447062066098180719686729257542877119024924088260304025013733915811300164615547926008650669425887180451736757608820961881457403666819720810850665778917886748951512228803445197749008414357544620907309698020257453332883659908981467535417928230021787146187877705839089735002833652387838161861745016340950052206656028702007079347929854390942429769645917507203665576054147291975619135633082200813001429317164107206185161723395642170332607018961202806757340792635181944056664584063398742089463036200536422839070070921562943633836374844842291311453414097793860770721538813444413672674714047991086292941712730127965125847701178873730053755048676039844658931185462474160015582969926175892262186040383152574563646725703576675689940609935506242548410442912335963751085730929116438069342890855732623929895620536587799171246227453745885933773217059906197692492665876439719284640264640761471860625854592833297388320576795161417361379250874757105842608095257111800792268955930409850569971118396452420923590522493460576151385525594409264729481636417380343973537374064825511018974469156175879886638778130791845130317186140257739394009000907110514896234446158058700548718969650329302449379396249310643150455248798884174848703338471209383388934059701000552047507942913718501747469263915068970830439428126805597318847492195640721910936317372628291506183174350421906959427838310114671294455668277883832811984489980551750931544108870112861385884800296674728355371379059239586016359781448786794411068196778959481042886225394443106383705668200606789423927233611796366157215977346112235773982241455373774949567729931988652978339323299130545629479390970261141137254715875900795286960354565862104475908371566868443490701071499673635386069455578030638328634548962497127577186652052840646751031485752249878267184453054369353762512200694426494375350045589659108571994391495310259075504044396402295691052885739400344141686538411472423262165087203058397939580554055842270741536206698024746060164327428062980245810602858224420158332708582384943023866154161388433775465424014275128707655112160199851774327311132665109894776002509531040033690028068051487604603910965884130931185602128059144160010830709123925170055763900827762119819042370987104646136379726365325001521521115487194342711994916854161018322998723766407368767153144287887469425318804783838373537808114457169907250051150165226442079229020215424062121873547510175358305495660558944100416434261159168956951312489293693229032800396738055957669880958695345741599511739311027965047822347127058910446969485130026530205579402215155072149339400063321441302259546566348780826972390230323528008406191234629620921148244378663346928847299118278666858152040130116278675616931449808580453163975584124592090861715269109523629189262268273446766627535280225532503712565683881609775773286509246082056275083318351817748410409684659940298469928638051168534842355364075614632643545782945380517149314071869286623878517991611628856078883993859750558222645231002764372781506229669372239396811338299582655369469561718286112745834194253019790482490825378373613138633831342096814768856425570128953044713966336804371225778974013533163471140343502217565285764542229868734406270920086243206344859755168785441602298339036927509187407363083363522952784161930200358271510369643114324339967917078000981990835117309187136800879291439126911937534315602192331306201824585171425708832735417598256868150035709449395491292741674805316890270163572522483224548831137691794347059193898788763051015217372487313597697191646381343278515574376673592643750677890814241653629548007277020503643278369499055926725896732488072380689252696572658508571574976307195820494185113273368742925355959607074530195402308986410632564096134318094124515958680207383414264947388967137352024338417160680797931151888263225168726540035913281561013596532936888197890631183735707295429206380686945805846403762912788960905669340824233710683064663074609796397925555299106429227389221823438591385362920069687956070157906145098539172998118985558066630001777427101549080513171725073829776466384963512380069122035395823421441264927779885387895179349388662597938310221087736031848416628660970729611592244410865942298438599106935820327922588744336683517707757844868056432496538938788895892483092257878706619908035417169368910154145622733254184489268506799575276469990278401285958052179376329555748897757617639703708391325956922216122594279225410932207604729648785433409024546435680504894519141555506214932514083720472341950454203957506227030341562110091397178335573080186377187602306056896820691502719992764335742573723180233482530752100916930557976865479799608151112314417904041952322578989663916081411163127909064122445383901760144073128695557336656568143410466162538009613822097418294652737857116665172311648663762174261350077440539198492814650932190378288904839626099325390335018691004811804248293983639993164064998647825203913893199847924229549508524215131996966295727505823053735424082741764985290493411338965963064084419078481656328153205654546244033018782434206993123115065850859047779640554259822236305969741752733599449222947793540931873884957263710988516579331089203232288570237898552783197787243333777180969064627670818142805265958222822574877609638720921156734526025840297074711370587220629235261018797303978428002497008841456700954704217051585481449651580260379545850087730526038512580311217256120528900072243882323193195824681675389294772650332628303643646383779292454784548709886375922720519809205251608888628603374180341552367248390273916517170959235470712973597181555023346274550794961084550454801218382100067010255013369522931464173462901973841417055073769564514482500566764065802470356755765041547074990763059827966958516098379408698491131746548238975353827368749009398642368913408918921807520017030557009933978987024250329958034873661385766963662162397515626053933566791349265523753078598753032006162702587755150177985458025988059910529023833702169500141981557269707208078659157854766639923449260610098280743365075502413180512574590963540432217607716556073468848193177345701768399553234221547789622944850142955430456319193565585413136355523684951592150666722284489197305026343069526270831045637095932766708275466928537499865286050039956299737331394988147534791348186675393536778274810084382690099218979117983783412928668453527448690997004456254227021183175033470016917175363842101481933550372081826841849745196720891956524501532279377594322927516840640269283765467137940469561073613908746449281405900885410687316630631263822439946675124669933652074399147397826130911109031254917273117876497938918816528712476314208694286892323687633560730304541089515809935287075320692793563490357549984478447624388182824967924033941432889571695510469309002283580567748041668792473293244703633887954075354308015004052869896021906513600974544412222213029423769965556579720884541764560452726717653918319678952862402386662406968525883067842926089507633041259268143715056127124900832771923938400377462864693768542414122552009115003810780459487771189984175726013901737749685145934726870177957171236765891676697694598101517955822716162401990000054039040023114710088744926088395957995148939058623891281100304489034342959785223775422753672696160516127839873363485131450723640410429202115274009252699675329172675579453473252719228628276059186413215772924678294015059676244314799348399472852461487439203924043787277653812176635636919733672871570811637663779323137196273830744762094664978066279046447169033616438822163065024313525832934527602156559571245284513478664963922869156385071092939576271492947838381211832643219737223496618820425108042579392632063061623602169618934696179959213410667465825076211985569096694254501960646479087635229557636223141941260921513423899359178972014716177004244021161100044963619036487941682319353131392958343366765266110655659298139350061774805949079707889223623873253378037973960367203764521610710305970655619856103160392399241856867126147735973569786721579588217305125079414197579374129603900745636425691001472694141010757996065883498597496971657765951235188563837546733374524645336136747405235805126489524447216397010997361610748672227493086284934801098259137986732772895612471948958620720257935717821507685989244093372460383670195050761982923583710606111352106799684177892252385491732574279976256511801287815070713824569866324037854593066334607895591210939991349946959406989670635295132027479724942159142202993019866293444230305186888573667018773550658366993383013250862778943825717751441114492801759921240004940275265304244040599129991273133646872527741890655725381737670022292296198598283796698877262071607906173410575541165454206637169154352199149267933641124399856476924389113543498567993757021394097812392545519054698209479532745087839492002167012964428225357089914113452378137175049269137181250691512213564208978196575162865136711495863846987867844797800403207465637280018120144184226046515385152326635628020276955071144470043838506281700999522423575026903298894996500449846568658341422335574289863357033742548197130965573926570844176982004134136185658070335487075171404447098574450024176903954488661746239416385243980262768992400550339526828280262592146635929382699504451329211884877087474244786597369292419813435364934790644287501212507104196666284186690445845850969904945896702942050559089337650391607384063470891761568814787240520528056907790022458751869413111264511261167595267439504694606881525693220710231377101085081649553292442924357957127420374918916422663080732643576810296918136007924309489010514200409811803859484985216521350310959954071471823707407674967212602596674817258421045982960297845549347328327438975507556676005914433909768412664832653480127251156035756695354190198865046964488317748884295972573946295339564325064984131260618622548760776466007278220362493625473022063510246052865031557754277044226442246398372605937317954851808444345265111919475321897092312115823861639195280347925374818741198333719797498522937137870610774155396371317672606136210116903986791731919704758413265856135311658472262437681550066359401322148252345237693337998979534586152784745538127260630482529196578349680627039771711103584326042211644337617865497358601411715032113233236376985972729260926454313722468096981464006860568523485447317552446107181918707858752694451810887809882880357177470822865470455629206773092151459285261639452470254164233170847571997763488540654389077439186330654926786059882153177582311354201524157876693220816142312568437587566086765961236822304318647637645419718699770999786084047379051022176481540881658130536386904954671979037537239229471405617814977492398504604408866968052026947779013583846686001303393138665711260850152161520026090874176926431474043479855875111610687101564855481763610301334785249448563258617653064592735308753556434594436722890689193711608828795023062650090620625338993718634625362711540174514145082287111876898901621474584532377544627802399925044350849268968575992521774961031973413996888148781695545655544730802337598855412253031902156192459081719924585828841715931382989703165155264471229236648579440611147444284776842493747510840853468700395432179160608605175120244172820310427542911533656617371642618684385197254754309919162294597918180421739162843176400360525261001939045482719044449249233762903316168603436552067273276813135385421962644482969362422795376019058777624384807275055097982369924619780420508583054651267713762110026665965538937705228003715691787895414374296687122648936830083886571278695665337037814166046015036182032457536986969771868430687611294834751952206528964450778677200533196721612837143649384721214091211179651481492490674770401454120289892373315560991472273545186712504610601179355415912760944803962942665650237763137325884012053208665816824493451655256712514026713980670391599493952043732940096775293955215360719840415125100911090440285117756901627089766080971449291313848095366295929575737329801947256625695912358446744217087979272622102578518605241175502807252402748207205138185636055718482281205182756124862500555567114487707092971820873683874298248506634888048289668174084114656981503265835346413911226888751245279247479259371089997403127615612583534608251445933595713683255709564411898157616829596337727305802253901264874957158245592713462402830103690912234399306179744078605468862646846842263503582279252191995081334792099111399579422678277603762943796767401032234574249668162633243810362459118423991263136608841472815187441279427300216856959011768851800911505839722086925576622090247143842703773882551750794248851524353114245495796746101003443247079908414434844369584826764045379535225595336457955185554827572575407543999897334934343573092756506559624398374737154812304356176627143904215022874582589474032259704868747884281693399327473419255277901604939570043526667393110226664019415151961039513606111039152240686954698205595637862300405838729008481207276163588912863404900458773546083073194127743606532911279530887940055433737121788419356211258937340482658570907026441437186804237772830260862445954307009556091757331602214988182948532012424771328702414076934096508067671000538321853099534554109789023131232574539219444416470334777710916646936005800928778155267548958630225776924065924526160832901261317747739677031758281277870173488815531934772529429895852420644284707789479535746935547200796169115153189513869979877989559239360793757341652552825990979232049074244957505161695497837591534543260735866632420962960280428474016807972972678632549810013091539902561615787177384845154182784922319014857767158204198960127846321936744815839156473838332411105067022113818030026293304378708673700679334073044094916995777106771760938374147002013596839038288988028296347018536881799754171493175131538784930015095737029906547073392562175069026336086540324061683340358118453881200126305397717500851410479935997288462030500039517060129037284671916772102510994869067515288423322459128335124049334898553950091746458128946323136270038490625576221905746323656155766137833600267178945364867248851018912989658598625137103452073379960677618761740170380669752789185619548632336216739113446786615246354281379565904673546433906914650467946152637561088747118371186294656381383067234524284754831175384389823334294178827380432777254931820525820787063863168179112793535731402855693593232313571691153966851698245492943108104957965536240393493537666708629655886687751186213197904718934247737392886754213722027018036330268310044186168006167270842119308290665469382904352730312004847346287987335404265578024882622479751692794360739821644979675904280887727073622411838317175248202842949408050172859770222316353092171959506238275168291573592847832384657867522035748745350253200911333721611363742618548755683915945299661747887557312302963352986491863502284548056819758203598809102350175982368727169267657486141402766133492277153180986908324745212886858180528361060262222281124296027236426324280004771636115161454393636377612758531007173576334985372437695099485512969494080010399427010827389430686678870400726442844482920135987133580056717760068280760192341250580971531032113962339957224928135571348956318624736434272966901384543548412668979471084570899453784853286380194151324804880924909345371622243337629928108493927142963555731616105962935278914270207848855824345173962551163466129539783047166462607916874996075859449980973367545174674364890238187903936880916082634235728818879575141557439737382820154601473543539217249540585580728002481707812714597325699563266812338303048779738964771023088004730131215911716123351129175147841816795282458189531340744645129710261296809024162656175524339508983257773053945453810141875876561789857268648575247672655396238841216536110675768756039622354658375088982929705038259125017183043113489530565442147974582854982792532408408876959682774531886383672289733930578121611471469476390681643614496359287798702791837417316173181066522233446221851242069266225590887212415695525758761878278819799529782848286377362769679901121474813889080705680516816178436692906328105682949524612638843350612128416256859249143982211325303585502241402515028360988381715595949303631367387752243974990752005714121378842169297195177354427733878661465343081371252114352294144829945704985409466102624110435281086514452853919827308287438074146912531457995811026796138934735110633360597641165848491599097344269623076848425031083246255445986473410022408621366399732351100934756556403098184509977653012819684132758920688742986068000791358804665404585712927438334991015028992676592007089503485662488170398683381936802279962958615097651676271853239424140083030695455038230064476522875039740617219916192657059530709244470933478662743161448582914560936338354216244169175412889542711598786854128337729771805081394165284914698162143984790962984235545810146503564044609175630813622739195530282821122970151303844891174458411186506843717255315323754193485906994789475494246678613177294423878488738892027751457045950359984575159276524329380070833894253386984963246474723734069722559454349196004191263895535181544078613676210572690547871709937583721824153785202408201203026252909611972602139674496043670987100712662065671864275954235928027023890665316710561525180674356078682664433438390411017114665866337415720475946409061756319082091904424229382728924255974587013332533594957394981854017265921450314820926620356751429202267202930849559731708249200423751058109034404009931576003491482881760144827853207510322133098418483372996059523405213910617653016432472749403814263701513961391940235620823965660576855401767399746786569762026126255601637165060874599864172107833149850147925765824752275826534805983364591693666629189270949791686603318787548288907603817066736469105903120736616772958951689046800203946526342070225786185723512859586853533880770351250812096998955639194865577602077583465973253643217266702714849248096882225098546271609222612305264269262128423615612826899881303680853669333834510014154752231523670767925388611953470145133291714757508689999156192727482457848999347150863313847316275645080311166591899541694239054846813373974522198203271261821307160037348381256265982476102602878936271900242677410295462576442164586959580357687305170303522669744439531451943290436721283769570041334481864711825952552360722631808099198812851390682933973455058776038933029858919054641749600844430092779480419621341829440550314226711065062431246627928652715342466547105612921528362278629387700049745801352217144468314470999598284111079130343123208782605078182483688183704585494811112869602886793327905863394339270813458242363143938294426381523131192433186056990647248048134165528781733073599629982532320821618968535002446927724276974149840716835327284214653828773341385108001511086172488432185718593747407315881905167133321542598578908602479381698899869975758294931836029076024808141089799241109310666179368652272068533193674669208484236889537416215310613036354582232174627570179629036996431433137622141915344817090145118972299912429174682446018425788723493029105279691071298549291579474297266163138033151994034845151736654003316177930451091436101718700071241485740638361989281171123355063240653622779492682771074830098705621313657961643444903970183969242830981500204639261125714786276674978932931924622566374759783226559885848662769387693807866129980919827490114762470410366008409338817081803417001159320416905062528184559231249733207345538594096607324320195807822486011066934480327056684083883839519648261823196495536578709231303060854181653158976425943821866240601296510187102662131180665201217239234776883185118609606188127051934350264812890922382832782774168181112300457018226755016206840238059912705203178891907663648072474058847004270850114193427902032077066091727478564020329321234686776740504396540107680450189924790082184096914261399384305229202027843586654652794727532657832529332200407627850126113988575347944875782940480080441067245988770635916699518554052767556999731912430817729316757375954651054408971674544280645055917928213893854065486193726998030998061770813984355703760327781916595106673098393545712327324554703512432139095938888167282537736732512437838740734463467581653358991928930733841381207089391568752439852574354625393458497639834150047908942851319295545868193692722728255105230924101462058866132968530238869463392605979230835176591600272520964223382672385665724080953947007692287223549883440039688565665810791025777967173868488841114805486701823744831386793130164224482882713580540929689529180107663061930350295856687802062057623821020828083281926524663762400170287716133590193821360358586849081815105506221475644194404600132203685335679348915490436775493682072033224383436291388771651208617001218839983898607027009382707665504535533021605534528642544408814307505526645011223837194368838365454459356518390442546204964578870175569548102054643508260748575632780518723149987536316849417561952943942433997633901040988421235578467548533247575077955339107583265216810286100793160103048539283908136679474280368703274981131983102316852750032686524281612345398571861177557958040300473251318667015783415154474019567113019069150719196699153289963980819467748281902468992518716915184926890750662788756365189871413541866339039066102976483311981632415444545585008098674025619198708046173413727487833858963103107649006096280191625279667558790503728400346380184289306537084938076137410729219227762128942045683601665275545473320131874451600574357905840794735377966817312663833614454410843724347928987908151909434822922140984318261053889074831434302072573553311079043804838858066306122140086848739452612879684237237928421499289180063125533737245484801749494363878924069635358690470117747262717246878969259892026154747862885054602800731867645707897939309011226891103062079706855327959318170863875835829108617538663559418487778991059469065078378876003187508463907241297502126297416666579500789490344533682448113265889414522593473013190148409016959348864597219258652788343849693395501210696022113253718241003111244420754782097593752246895464652838854285046134151194021227448100568640452464605019241741852487133184902628960521537934811390017744782041472047011288119811522443210022265285284492817015378527131576102319295246876170053784983952361615414512888203874835981106615336322791503501669092880979690724743681717993460346954092089644735043699682307512270246078969310011397556898981507634474489876773376637435743301070547083094455578602812873134886823602501794568979449203852499124252174555096236995720515836169211359185032002902049226375341430445303222458746041880419488521806754456801866503590055678166737344709932697612605302664424293235020859003956340657929610158242372774588251667738072432761404317173865592255012194383337042130543003697760610523678932056227457330141864803792237819281037528124857409696151677012940996771236884239376002004220131576824245865215877468143735909504039970448829939200876164237962637340261411465071016480047976180793032042317543910052018260695784996942073015206388152978204088671975705753582960634833393337818151222990292872853379868170729241394866281031485882739430534477407357071860605776474888137860512035462925151402665342451769829659427931905200539705014052517813661035775788195808413959522719511510279502499847471676535310228497699964795853077370461941335979255934485406439133584975933851276185150977703902792241065451339517963039781126415004429758289531385835744638960774940042552754154952385954658044715112661568484026126890378937201115263009249935156876724599365576741908220949887360930192987211690752346404104151715453513575445197217578592447840838993848668692573372387297946394361314710101949975451302624620044472623617921306846529622144526762198520246681144352072172504928991877302119249270936092308508132584649409816523103466326660145284892723916971033907298422162650741251008102568273557210203450300712474296672973987119494242004091224313565023159670209688982570419787435107914198917608249148982878257690990058490852199790641545197104594860202861244226099588838927367555166302175421232995882251731728451632657717732773946904472606790420053932625339021304204568808925742084111667749511424002457478178586805411834922873919948883711013865938769980837362293323204176563894865430193313123380029552326455951596253052756148224990033329323928354518592907819755034328281271767303211278887988014628753711676672721060913152598931429538586859958263077264825781626080273635895045038831342057796821488723373857734785251527597867212970564866237836836140448861024527660239707416897393271291265869933904295100068026645742972633935759953757568446903190676511320114140228676555513252434248243642478896233731917356522562955194051514723625241417145085063167284090231793270476862387002362889737123746813191338659586219423092562727211695363782388477542161373068854472791946811321969633791314136279237378126322845083964445511847503504404678420986596315998231105195943459374745104564920442535261950439867081645758752192811908101845869171455807018990722923649757127209064141796868852224940854580550481295450884864857695826732868380525866884573866048018522975897749835925072220072199034817951437875947548067470421028675492244293813631541720075069112130865485946347586268168599907833621353607809697905638680021687407362914265890530380146524435790911091712731603523266393353867028088177627766234423243950344593592557315515907454525621335518159142833664388682374681014629466999552562885965737832689515084609593393372485486772229867346259017340035220223028274884202448581439865708076073709903223017034211421742606474897109555893399780238314246174732401063594121226266814783804636936491206380756500767002108086587908814166044903761356754078348244363734113511749626952657802702018435519055993949821483506288348768363372403895167881102280346345610509881393040889464366537523975226793073159412710421614340312883843919586976446873199169836553679025965663590135301533014081769309139596740613591897834206969687379577316781916030190827222243381300394148616606364099433622525522052744929524358374021116559749924235627590610869760742709428333151261691942698042603894792897223651260147604274946072487977541997083668362122248340541558719430333682440678962052813661639446374248966728779962773582117414674874076373896931334493710742208813781249794185637677489342528560943567120435479901512398340976442884952643032307628277195579446167706633520633265536665711675000126174398782655438331322826969954259812402779437405279924644276107667990739067099368608084788945046425314882032634724151804647697446336516146029621184260425488986420609779738553640893208039089088300001876815015467149352780519979855780341173748720818448888211703812864899560336383646694422093368380834840830998146243354024347382982292831711928270912623912214233795390616948992375092068161633223275151750177126922727785676299454660241173730724314420190740774651471285993711975508065409119844486297132596702803730427717618682568029428460327243609236294116976569237210368276298635005214955112541657124301900242075752406591347468222283545869020961008967950484739493951994760055882885460381020580371687734396874783504493626734708391134251375604407611321476888526428992819320016058188613349922363414162873619159800993600530338938560475520257726954747099601725502679124088003796192623742061974557038621654308585617481165694149323098597271717587970105910909007775419712065703342719561471862623196095159532014670796664265968640553516974297970168901032019161274704311048647425380113372222920102783945905052643061190280435015913036637582334570761163141917099514309240983631955843892575440719067025973766406237900586404978296829137991040223614807280060411101058179367175015372400203285184849814701299430078521493124698557143763972921337283539345663687125289243502677225847077961676766933766041895935175347074738572698464589160680054815698999800172301301833847117499328720182674582638459473341530723253863564260363840042264384201313692285102773058850002242202185021097338014602768439691837811644467944302998573524697003509866912605188001463921783364977203516037433015186710231814643572504398300815302563685359010642501069366612876891099663006347877867380291707471107741483844077544674618043669268582620907738982405725323467766218690286133690631599322532845469817667683729441087326767231545986646527871234566596494853180826479251555938821962819994604715470810306476177057766757774843880831118802317531790182730021890656358582139244472926762147368448470978832299467140956372401303718362957851614160323373454326641666004542458017778318621512026223308840213981752873389994403128104105066929944208210553803564867993510479203365072670779257985204339614155042504299919271497285217729924802169487686213853377780790542360363099536055939777579837128667748179922592306628597368465537927698346246044598222012917363903843602639289791558413402467618598787326103876728887953097510757564662913469648864890761914760849290453979908472965780927581600257941026238671230350732078229963902769659147854140156722532412248499974187854106970544959985298774770221644431564408420082442675881910371057777271731038315205649278244861882396054150844975254217766878152377692877687018608287451904099615503278760359134481208670696819659182439131541865764610138847677244601071627922901299932840105499164511721219634946183018508778581924657148815139053091683797629674779813096039121140785364340322516745659823768118913071808331152435164819877732546491342608751743861494188697689233875385328401310847373795177115628464664680673184141949982354571976975377604103960964584260328759866765837389401537513182654380116334942258135549633418930864299517292005187884299334754022607831944862559644309307148025161802970399830583157347821163871468187025228070993431256625385683193184243985627179545645925107188467685991563436238566326092505973781567859726507812821627099994115081073989066654019339146573250126227814970563102538645278145603109298942030171732064193285689103494620780596008268146851310523912820150247111933465631771746999428888799681648594783129849322546367157550153641891644123412302687585532967933549136237068199691537210556553480851183483810565697374665972569334892850127922301835131890311342990512151779245377410078923759734197710670381514466077774458780606330842200436880373466610004696442313694108235024903050183897341902635020739202918477421985893065539286757519750728819778271473034561298065441109541280386704452423540991769695439950425419327144271582595557291630108111119284027038590333054188782634359775217976744322304492607094464083827169161363197286120460901478366801562326537513750250952062434221680646740984981415246439813776434922373210045810898237163110802750096212771665376993594989127080675934694881425610821032695046261897527799663540008642055683024553809147533460046236993291149960304138481972415367378476462384844706698659852264619392792012853753178330780691626935022410719988555061815803967243747087978667570145581866846948344059560763016740891550142874894909912186761060497651183781800653961906211255915882737157886636863117573659094517252369000491521568436377470946380202332889833664242505085799987862802391463793326702892279962147125575649077945046993731471940425749384412299516384785912410612723094219737599026009582482731954932360191557893615423761227455460289351005472824099835574721624684131712945102499971694307065910498650651937639437174802384300487847274595494740028040178670863613121043730328151237534658750160460590521390552607747085687670372310775912079622793678593773404174879843456863012861127113150091885880569281322783295117538759443297447683024223781504586327725276990241715024112472561390889993038276256592908861995004500342365930306480641831762258926548052236858176286588696227178115291334281860187701198873266653724421716288147770728901522267522146702331689130182563929208459062159445154611212192076971544356442350420295388550771177315467070806533059190569219991005697626794259142837418894287069077853162646243621213876283638900302326236883016302215396349469067280390000215086214098910217801988866772424438079858519132009258047627180039558714161974050435841074623044312588332418348533755965305977349201924959332008136008233704885313568112488181931914110129875269407034860791738488737506549454317429900816411599479873665784233438882697870584943000850771552449797533678113531030601955503683588198196107937039704928661925024611204163047255583477717190534849864424637081148992840271081790777037798032392619599952669307673761002037812317866958328796043569087067090170342718050259576942810423215762910655162954274940896547462169240372937413716811007347677702212319750912493019704076881085858831711532073979347102230384045729944984317479690170139201871516497808387926013790203821796652898640031672674188751645131055718546626668585967640218340072002227787242255908021302477866247699950308985298616591485536549962156850547939932318757804111980249230374341159437742575703077024410518347823898312218078275312246531751560205373859926532041103649739902127116698246411877013264993899074115806976998265834270670870172375120022386295316610385584852650492264232350285368750470436860281273743630963824038493398035897528133784029620670191498567354756742409327519108485135988973529269432398396985340552667596412524485731579293799196963043324632760757006403943069051273977144968567255361672566255210869198223307677458437092580997918900696151423738825369879067832606405237006373625047664370722008259575747868477000795480325661051635589204769897173445345785703134191065860876463584844557919764021365627098603232780161355510455993061083060825292502348276257213333781765250641793624780427546160629739981147881597516484790428637053837278574939324959707927626709159353104746315225696051948198338302391222412126710059471098597706232521334714405893821259283614524722312548435218127092625204382149591616609737011733104644651361909670056269644548315085144778585030940589807601405592077549516240509118440802094803205172795436706693965904182924272960217425950284372062184230552526256528770208980111378751695748259176629618645366257187844749495056071551201753073786855981337616331650582554417037781350851926326490187175878593867948325274387569747513418907692935605359375512960459453775359914366021077307117327731852124916148840645542626505658061101720534951004110689841664241489992822305921494251367023678904919995575433689936299498014973409901544176646580619588274166196484897939827094422414032617357324949602340045429855836084460212264885920255627795634495521274187718110410464370127145781104351239273491741249253900125439184113274840834609220552071660052594958358089181069641386782843102503457189850873799135696040113165111633522031022777000918571786679702776655192074865662545494775075998915407247911121602007155292174413262590756103098353655317807134167818315062348266339800376732614339024127008561752663859141321890780801992458953407061641936739525150644416508878353727976141766302922192847260472043809117258235965722357339132173126635312065613551227047258850767670812793960019034797758365495832325687347232666934575007222577330856871059330984340820199833434476279118568135435323668678719640946216778840306662889269470785234078082677092318882270421112478082544482705010405255884622362211099673484088512340800441448014155677664172053517766427533566469943648416932507602071437966148668873553388901085279839105002031698529555549798975183952401392368398479409579893973741948919861392930786854118310403986946078884833731824119978030621306859319206393428969104388011409684170350139903634229513807457231100159943213419597160002619839526729555938144375308162081277838404663313935015874513313008009795424789428647692305817172788693640937259077956621937032305157017188136637096885404398690982861033979185199012707595729066475406882589345910082770659989663796440204435694726113862373831297584405422430771444692545337919107892390050080313776721407130180453673596409473962027860466288101495441667301974185896248420415346438200849875173628414133617030370230979313469647488958254976472675400793854402536725796449564477967273033424292459805539040358763492477674465288230504897609927619467837929204216012072961428461122782352203289394308489178979553351492426523235374677504194291012599781413038691115113438612570484678099389089978286446308871920790388800722038571937108566752699391379212816589555666936451620378330410173981177734626924720851806828502985327336474272466507043211065928231284951333172515717179834231225454247266810345418068581815439557580865550041090929071307632565192543555484146955072323601320253323159166686616385251827448590559666348254480892562610551928496922033672945660292781288102522304180783106571978313904576724628723107230034062409595274774432503457972099114393222420175712965042841235219791724274525309633503543121661628654934137812109717854669233352275839764147630522418975917683723341239132406437484385413144332578110003971106405212361366988805861966877972942813447471758310179815718525180906742147377506416552895991846115478231739208950818126437597547054667647699821936024213189217858457251644363494696494925959166625594068671263423052144750310275902956679277897783053339143942075255531821466834997321589814163596681204676925665713800185848760025756346610175530357952123457365407366576298444361049570181605750247075709405498912882810088267943427996812926449161563150201569648349888986668633565649744333962225107378370064112165101606393713479533327190357959063911974086075741113107659400344088148990217902196456205817084352283161042283135946387975937049878792761525989594807151270828144841113117153013044657878589997073446516348912280267251227412528909992556424000169356523466903732278700702269083304774877668745507364681066145629663236567346762154863369655429137874234200875112722671351140365631124908889979214975218275114297804221252375312848660549803722997926303938046278678217426986876439677099183341179253363169722435621668284267839200121552201738670207651240246552215282460882008637004347958042156294625949455478820883255212944517125383941040222171045004920549743425029809955068952919262539970286928162996276456912034808035450045029503137831722154973862876070851700578771297646830520175278962632518141766544717250052020476318637284177447417504422590143312567336453637153785708106556155019712442321533739474024913242764745854015603698908328358887779542645993365601385737609628867704956249797759903342669299456844389565257168722510277547227959239206381466728662035088081154891818097540814452766142569499230104005408297028529508015148399040435715571174852932309406330035528800656305890545273508107493829445173434078768528401662371845426387499408780405023341625183932276100684297312203885947496565459895801807236035983318112770843685082966659010713898694111473456111446106376077851048615547091223241945608277095795637153981367858622490824071056890469007166190205473325554463312211197521051831349612074680667049054586941336724123910054489521388848448262252552986904906440647446349808112985431902344863433793796684722455537034151355602535549004611500319482073581172856196499231622235105783106597258545464927996602726629584073888570780657720799444834119773639978521943737835466277571705592968479110745216656788148533022492568572914607178774311175219895306268425058610726057452164395705355220357232394073412221936753947192967472578779622658301730532283198034070654488279917312185688474073994482178351414709521797002473282682868888982697113964913399141055604642880436622022778163815536632235431877893966607178962806713605061809111988643090888008428539690205764544862064400366648566576809396809562924097310785646989120152493352008205173614807998830901597642835387042811052737058019295885788860038934080311694815708434901763590590523349434405043935018762915170052758272735248749929593561527089109772806156346686261954648680768881726789927514778338189795229686765317033800799078211461666558706934941122949557597527353022560423705579201987499752065827087424504777838382652481418610148648834185814164574344691864526007167294579588716859519188068363582121973653504311310589930436661436926997271943554733142352695995731884475711608479516542612853706837926402125674072097634714670548648320177644007676862855414901822243824757559669880824183034012343465145886002860176510406055586316388275710384572352892400960975854280688226111249979194018278492987662398519389364479641524720738066920040161926309781963708989973789035952144355250912929679164256805527269386177759491111057798033032445585313249448255450200572791331512365739427909502949691096684838183153680649132243222315184971962200301336256734363187429574788616170669287775013931070031540568323450400171202848849593192621424550150618350623496974536397034925661529562802309861962166190418670013693666514643632812206202785497160962943112234153951077894345362621240706163511911699810411025437460432303557780494036050262407738700875571570451732237487212862388667174622366712302067986853807235370325628186554842517214022453007154963156844359237002329948810116903516843018620076477207350902635332359004338564524747417261302140056276907874817795737705766712070642601550760223069170472268457166813104660824073214987289756334822128194197587017425918164045249519748294817521521671474359850813566615264078613253289590734274207406417977423938465851622094901794110826738014043550438420087635220595076529855986285940010336195140738972085188213052745006333744686385932540133694948859221740316809376087786749443688753517713537614673898919016686449888917164349665911891935243266099285120070941455244795546523111143659144589934308290224052153905672341319142344628945488565543877717588513822515553337909915915198900925368251215537879334237444899105076373483723868552788295685300380654210810757120086084367734623774201371701152583479592620444494977260179403749584550586328137974403768124700879275017371256229790546251274984967962782570797376073872356038343684962956649051324279301761009428545248166208207867344054110706319701937716885772124868295523394159889498972916284300098105362890470993146485695203738901582165097667476025154286625440885572723053881165486692660211259293685633398214245760331971972486985456728587869021312761387897300972725285334532134468793238059702874372355726670615305211530364072151935375297744045376286665128382927217198684763614673876201106581815350820549948004388087036743969085985941614501490674591517021114597824311417974104614748793352600810738673029008608035213222735706770188824310294059809768098714169794073392319801596443976198334227484790470870098458822310154401776602076287207939519191440979804080171866317259397054023420337433888802654496686742522336901875066652284232628726766823913201848406219152314018270972417004351170867940530358135267777296622269916395866299119636850237639659176232152967888205030728014223372904082790347930613433981228906965696325976823489026543394409496294632138287038206184628606013932070738922344991995724720622817668311583824814850445174596609089384146717120256591822672490946491856417591368495635493209502791586386413883040788436237743259548816806215007743860632758526066527900672372857557813679285237881327462973833379322817039811773294352204429114405215478386537317086977961352407692666304880175759828184345957358614308881699712878484853416600306161752239740489052764911647387471343307000317452997331287199577703489871792943216583405709694111964125173790137581440482977868616998369580914012147369068118288688633867862174124448304904108605783150040171492853268126361326348491378256975006627527240524112242959173088213843332496138996945016874547307652067368874126270864883454647281527935142891871788591271972067900501890167511598689889189622713955078684369446405795283875088732944289160046790896249145950042837660450016946297491781295240746633480720526438279063117474056234939673298105509643035966101933882308199288088493018299267923240605997541306370407115716739269414694084974399018435949227940495026134960024969026920895671047753030725649499439738801298364533143430572394556692962224306201545230393192120483642442256779725880144535527062078793302277520948014908572498904656179847387221562451455563253022734931219330053538077011868415516181482757026384648124808253649038318644237679821155529799323735378295148834322799177281201335855577854949202052330958848557541403613822530546615359294552054576058507131724834480048041285502270149672820180841774582315843268477341269542468757396924208550885423266015585114427391489904793570910318961389043634099051818458101165716034356266356895386770290437720254134076086814566199591806542190024711835405545277996332847253051157015786501723696902011965513519288926613363325424767272352811304211200805100561092458476688397422800765984184780651438386513159634949385723522377550459387741804192916716891910447472950910663001506163394023416190797561918740792955570314970298646245199835119935752183868717951978598600063373285385431126227143324980702418157906088840537728693639034947629740479516084432125586359622742400437769940503885716090960375402315561276681562360703640946027086150787858792033378464476772999802734129117691103065522619948029678692243082994936778530075606042394391084909793362812957115093147444201940065650423200012826355182252484546376291899381541147151148811245672794123608695017747882198368801017037365510264917389706546864309767851804688227754883569916051313641146156862150857843374125247203494598983471540265116721748033567142549463246049084540155634637191446077153356698504266220180771802246118179519294329520338700572381361374915110002976341706435390936224687070473387068256571088178110502916412034000905671544295895690628883516715452915223077476467055924935081433568824407987436873594656787797354593757110759855538886036520814276543701042604599063093511078931536278269657589456299729247052308745802514004496508678981461562526427868132616186487942148824287821975664516582199629724635738457931449120177291572076032217846280288859401220344904108666465410493925236187199142787846473379361371353938642500118168394912103535433211019932861543784403489307411097729387801000893375269004555986102254567931226652100544282462379682054883811348632491208694351591284013070117623369186933454833907583771557667544551177092952896705856026273747438811164391646140768813647909888284413027234972405365200806979601496313031894638631695291136072939291618290867010144994610608359731227678107509474513175347199094220497910946184249592106332775320903308022915973344034533327893093510188911745954576959813255952772041849688415684471510935257558019344008358431897510407798674699205246118380791738870180634774541120353785336913319915041631205683750436052216592688002899136006636876568740370961082258521388455740069840525125462613134331870122178998409052397677786126727834261668315669294298754389881416008318574390794387964113477310019516715931449598383424801344194059193633660535423940411312808883797021479423821877344943661717557318216887027456610978243714512457744860635826485371042735028265259628940697660970717720807641967783356744310224682232197304695646405422316524353532072190386486299803656384734325862305585882353970572059405894731132798201925849726023957763294721470399835163907432199684920246771530507558512739351387127122871988465823565297470469514355111204267229369351517490872444841729894708085110464848660446686070658348373751119338654367057872893731976824239545820552213465762870690594889738441327919255359763719324816644758265659901300353963147628572658876343121753462947893629274275840868747691248163931384065808329909902574985451480220923458395515498596652575846509745193525381969390701891147864219219340223505196829907972596602100295299187074578721517370594674072944677056377972468041101869483855065550495927317004039922518405194553526200777603543164972640966872962058766688140415512660273061626906329618697776124455299250672816664050655274370579117620127607803306553352935370083690422561500575234703322966274993448948464100038786355645289640037170930754196523818238732274643945700954740543733464181095434631675817140531299571442118535655055628867251956659207313702813534905820177868194505942829397152496856632234120354683619841441058099861361562764730022804724505040239423674270970146328354144929746475963307838757855812718249993925066943917543731174592465349065943704863697737439921902910016619253290088892178806427078526778977601305986994811947141205579713265423911335793796077498249777269607034064536316097360040355104384414932365936648236406108650292587724646138565770124995093083003405534610918824201352533052223699674051398989170376729582078547649164011946078160142003395567814389716911703399596254372379012130130474529834554776935362336879262811391450262602576156143424775176155446380086877567663543935382091655416928562551259933529335981629044070679683206062950907861852188584630175023234125787621603269113501801121531712964995113525108866831259877308849456014676692146597390195308856351095046048528011059746833085149314196768458953612036620938512907893988713958585454347103702360468864059050708193299517507185870748406648684845123739325457193266601641350329498080458294592065829025880424098895397917919088310142544703452844507092286338625316016525057797065843956710611380111092453523307105770877981127726003969806494784815280113962485661590897148613727219525908530255331620459536399093869322130467758520367131305028987731902228569944835453700836509403251035400101507927950643672744281812364824154003746076822050110937772763405538610326523285230950789752809015564310528142414113602972800324425181458252982476470156595795994226892492584038192736599954737811085597133567333740571194097446567590895865616694797323386085877899839358406114443948951046643314602514402814101096285483300774649872992579847719641488439774263715240179817382553250528829016286668528941732135031292168991834216693179928501492230498678454325455411455744608730977985545928937588819022946691139410896497218705203222433517192651759958917190892143540815949884229216515713216685956482919974088105975866051511129442390895079873613351137093069461903629498634336420414315559665430628168772835328055604789210982096005788978825867415315274681108490128309137257205614889034660288504771983040444729454942186725590029182999800203389759097646509942266884306344499473616977404963990705088776394340337906827353189270613086652159689748651966426321692987306447441271306667109890476712371818024768427208447766519194656982325172109004470512326177058679363068907094001015279974316840551260188056727811919997627186680322401318505912892310379709656797015055909786099152974065864994750368432721849328500951140743104434589085161350290950000369076660668667550059132298988475959846810773330503829630025935781484549629811890367616683513066756274475795149170947846763701159707956278753733153880213833349572134811906552703330838139943504118297878478141742474627314591162679792136143823901085030501187847803594579032264855234320120996215250478854000767256361151916404995304633550056815270541694194707636123471869744253708548360597978333544967296330513045485739968885743938825354604732542978550975017252616070568292441663784233653100869629708120985086140934871814900540285949143081029134776342324159587818575759370141430949289874867735633491743773684249134036474913592981311073439990321690995374945114070006123979233346727866577504759265799396945137695529528406907508155451387994540020425735695066504365686008493606904210886190271877421220530927107332465802837786271803203395787173369558960302951278284410196952702224768111315463432157857184062223061078288866475065021805903023193205360429823751258302038352072927812763762878105321809417135607807394993035747243901011131520498675409085850241721862108630207432851089308241134546522260775255281893224481496621844939134650627878974240332506729769681269730148294656932977041548488100499098922657632434710948875633317687858293080195638418774090494024843497458567269779982839907908268590978630586024730238731581168969751203149892052399743975856404281384979589040493030514205123532325773953984092348876207417930395162597573662019395996172494898185734033302354153212482995121097911921754529715564413476170394790250110938820199143105301938840086348671310855697326404615646882860669748600280770830113497784608349169513336591130924438279622624004257972637377123856231383670199323531047604088423270513604198176638618981418966877229353932370455527677882391550749847884117480834691741001705041829130629390108110443445997959712355192773514750104317468231843017754733155541194123930093939541717093054273849430135807796741705853358457433947760869228801403557234885065531247453563972814042622573199018027819510570145200869085933765334973302440308744665436500403140909962851487767269863448675327816865625988696163425924341510855680799109707900421412814323079325929797627125303828140388045043217274755436852862506138196492319275359706013390872592521354214783875942208218627419287181312101277956921506697038514235219985275784401560086780182092136880649603566311195211389235679471110082225436961624451825936692077177912296434160736963494767386413451124157201731792571267554705401633340574837465955493671803729558413906744317838334232937001351827407478438367729252916621415597035330963009190710323169018322498735800531464477374137369850447270777130566911810207701219976770017149675054955340521666804211126614655348880586397182216614445265689955846498054461361621583666485774783943178019489292131316261832344661760850347073882782794417327035600993306442079645002736155199797325054194597928804825772843299651863935488369888241888941718455333531813042029982963647155215260551171652843901035371714827757119402703804100585232480180188285791384819896796760752940798595030813267242598839565220488787262295166385715152209763378452792771269350981925644637452859609589781917610204400083639089228301964194669768458679122302612071566209640157881215695342931924704600339020395515091163165554241900756744444239089070887910622074957122072470381733094427287010688425768124705549524311621708628588729471280177363994084812005193335781768332423735700541353716621074793796528169845425113312605420600577618667659340069204912932680810005209990836540592892834015249994973329120272974047466391310998053968181580172361367661420612552826089902962655717862522587955709554682057688527204891922101752576194954032607855705628609992739779465533986740899679868252230650891041382378065110903620754952111238770852477289197208365990974500807890455140492809111894563911685068036618177093999253658937799647740091701197927934454642907152656539277509645746217601351517303590222302488118163792277510196038326018159291882291810469704513335890218308052667142813670954006997416905549370458452465820004650303967695886543710184439973277977018129246520559573648493732205898857725258248567106897028771275929256018059798931342937643460075846973014896530247552336008782178540511366641928610728679150457459372546226918307322247448850798589772270719973226047375612683134273932186435885408625150111221146055423303974307855196937910246591147852181216318025422430800678727992402843933373988818780030633371723008945010835574506374152285356476975727630982885579690743009958261146090495710463160167622016448174477632140074417017445265704435310846025349807717989346582025407542781899163244961566591251441291034361337433624752501208036838639343171221679343896776067406841183648300383984797011883595230602094079904399324912819410479999463156493531149596057681541127921254146400601712764574890691103759843732800070568400331705864935741456310552300978692918186256997972235812202505378149066779775270623065891156949488342680734396549901521903446642246860202714797397614359142892706201259729899370302055855574320054455134509500218745133580060189871393007770416975507290688390369083754584537800843474158507373582199169764675586545326523481316669691995998545602551906742626604459264970569438106448866494137159126438526823049643746454260719205177299629098363521295018081470041243648121122171172581872850831902163929465045420940587376055226109686920496397264447196982994252670144383063655309522797946852602159126779063087670247224306789714080646711513894080967114376891070816365390423059711005802118108464124480760574783294986438001087174104110528649084622368276448671107482219590454984600406180406807161202228977705630661778844106925859035213658783680037577904498220788803852604544102227809408687725945693254798946101142796695062734521127486439724280504167201651181074954664033075630601569136485426956058711968424230570240718415153807498085541656945653017555943628249651484360013288541244055973074987136225795386286169757625697658664651498821750772067736656178336639185058307672858114823881269916781807869633249216472242461836166764771929430373865794163758652252139157021285710749285657973027123628445730890567424541017136171332451734262959484979710638056713650883684484298918348721373479455428307308777660895357195859751491646515140817772743178308777209881007909100132437204718939951806055890639003832360142160265611761977928871854323519652889856775799735538984923236437230128355215201196652173749801496057182509182514083656601701333571037788555596042975879052048965861342714681217240166768027452358319800660123683853593893842155495365140398735371099291405042541566583159572760667211416763286445360156820010763644613461548904620231028166094703147702820775731400826559899715391713126670833619463593097262824471387923587069456962558584086068622721231934915430055873879936006311892686249150401645120837866125105802433818642925661320215162636031697498182813035574543283197547600123409520121718014079255330590008788837994332104694283577960779925056198954326690702417441126055177026893387556152803802684785462586898604182769762311506875445549045477472138511644866752212139474605852762960277558923542570762450107090308459507468626896943735569714002861205468412889990958806566979379326431850870547862259141182145869875472996626074192048381634926455746593498263129448031262591271941730589517946165212513986662078566514438966016768912914989745253769239393471248721343616528330643667656204400720119598807075263116451929235264974133688021191268662312961679542161356776960685570537964714942155243100785549706836850246663020424937602734397341103820989297597802160092244906455929930364867200608944491291281268181782583155394300909188497022270949121345119275186683924885926459826658594043773340057523351687429616983278064396168200256616417243364902564540492860133843128665485038115406490750982643726503176789708409436960822880457186597946308087303551111194057987978017578130176390126139485757555463914718469205982513045217466504830707123299527678664478432513638760638018106874885772071777627991623567308227337427703287912106797036476013615683965122136678170486780455835991065641135064441921876934459746554075288217752975429764970876541020980891865718666917721253032975595436881404421416297430709536473059059762492318863698977970104709531004565063428814684878920872129810187474339552767423826944991526283120526540844543548853831398241363108424916638086684544136648166133752334587588239697804897341359715744554470258197963322463445725302032327214380628861427400869273845203331288088561137032070811693235109383253987230389106292861663033795496519170270261255832462572293163054224435502587270976820939616960897677058917833176554447731649043774769252721154888869847514473042529441143020485271460765865595557736996946873220635209539537778262880503536534927571763511794600792166941829749773440282082345337986044910433293755403276007319100355137246344840205255728969599861200615795895906205023148347884569855538909609928125975639464379231220109330005454751020137377789293067473173197583694372043502433693326359757308716636019161873659358420735673673132407223650664467353746781233933630474115587371978489668792168065303154007775330110834738532214307322785587991111979615118635925407574259084499625205688275849002586563402500182430596208203766328534860341334744220354539490919333679773618356038643371200131466813203237099316428141620890368808111804570694747456365857070281814047720198117287871671756392646066908837829072116887971410527237055912387303245843561149628513675561977155576007116426414533408856458693577292511566006399700072590538952436972293518866296092205624462047493182284724128962111407517439528953983175651446559142155295455637927216720550721840075739377541925871978322797443516965929616767958848313303844966581494091859090185361546711258742135243450604085013895372670235906047663706473712448713412654005109997888775357560854179627310417021151509316941179116057859552224764029848557143001843842630946382311559412936919469143901048771277166702399824120255285261933871487165042484773596124496498656430332224670658614896606276831351189932022017990815778753491746438291307578889774924688025233844128150010413309148703645775787045498120474161603066960241754922675747748757961490188700646473017247341107333256259491038019625714450759974752923852452807225322678824547831475483918021213918507219335461933468867018011166501157071064865100864011078686329970458390592029306832110271000990080760722286585890300212805176012978782141362209685992817703318700505921684753748227743123246904453612007286578975670765546264887720835174456443422563637072861184590719461751602528798618217174559142573374701977247296449729057625990416765854054902900834834127275483671447150020055997311371641067751970240549401561648270216792081401437678587411698509757974145571118626721416782654619627765474300938638673929568115551973112235636913689025076211282523393291140881698034632499101619271718755028254978778173075596216943976751498994429793400780345754850948745849055141242950225440311301938849972552413450348616339006671646078448709657479351971652408594476352964846191090484500239498760911086673689705689407236251216477198143615336641472918195636213267866007938901848923826320053846787395224772433995580528261855099187246921091405418802849653944033669288275145088554262163565860856344092721268902547339105033972264348281472451333536111447785302649318312298393641712415146459613272416123460882017547224941394682550384856595468496033255254129782608874979782761602652140404536085943101432646716227128321756934289079979616291957642074765482173877690522352551062677038608696430089952908888143733142370588051536717925124207402037426005832544741652922906080680885453265561553314641364669626269933990984318740525871765997014403839416302099774133153137500778938492803410391165693858006685240519867946260172278991281959488239869897444502117873401445424647845110397613698273320168920053014592843974481418926441648390739557869493920619822692808412076585048894657964064243565867669119721774038915334907710708910780890985741071122887534419709788513116719870122118818210790334513324535872729517992517014348238551432794254261355336908830643894065419964490276125661264979769855562895312547602383998506330769462414863340198828302524928059805017754448756430391153520062273287175202206352037058334622873214520810428440128656113561682540932166188133655720031333488473511898403798191408199506875746071246406163763339365232660385106977351998071602898117478542664875078859694836868267044599881675700376739927985264635517112239569324093585339272561395345907009808598370155535989691761272102358616581864621466144251948584259325904667012948410093462534833251104003958918009381706212143235254545282668050607900325886710840146291771947836814736232072173870115033181831664008466622186293975721594919654148862203776723735720810761014133532332078119184069727687311653624469692950503215601312181882784670430343937899034610778657998612908287803995427904857533527864079400860454183271505382434121680423663057584332628746883981921456740976209812153752115909953605034598808101586404058561415195691991832030017326801764492803405214381433136204574039528357920585086870448475003115063143917943096484804481522192050399977238502209612720255344193777641038136286766126791648172344742372483256473304155229622561933325238996660544911270629597146447182853774397165157372726379398750129890117443702352259085969550371322321471329039016444016680224971489406434496533003099766731771936562284103362072414505223381578372544870849325064325500067210468794679972793408642397018320191669737628043458599912470649978598652324396078831255742182060521374507123712324444946725660181139727062338827707109377294922125725765174237888539986744248315598967340282149373473838649094212802089666273333748406276578866784249673977071560612757178907797426654956341876648727721469069578713994789267691925215137731264984206182091991690986358019846949811591896849124425604508238990534877874024371390437473435991747741038698754867288279980492992811695720951678449663321828199750938197400222452844288198497848931592588535080526926864256855229145185523206806860680672362021600971134438282277389161894265311982158642012551320064599792266132720983099184123768509698851879457655870181462631506278917132199080029077727244224642592274059672896213221346398775641316791195932278897642276118908059559498055751210753004442969399280023059745050719766861402723931937365554560765735100776470948478796166775967474084090088452273235964393307379454056198998154651733753691394256044380714454560870886099792372192363883610880758347270342401226272694570408808267232454708385944307064571327980286387842832190602448124811226332239330150070747909748854146115302952975668652158962377383307204425350203050584810903088694627443085597126285536634669752144406904680943964205637499214684248824124540466468542452015114111826834551232611311796128007451765499049881530707009172006355779574072653763381574004481805683537481296733225331334361285793144562167850231902944125551134711102252193357669893022609893774669440917791112788402121233765545786260659720446815427679976045006834371703142704102921780226057273732219320191939691682227903772994340527223253060374578023004638507398598853039288871090661857026522424275939072296840892667471136714529092431485220538519613712551909314438391476353637221399918140668234555981935680208129264152003648595560213071832511382032257643864383584254830974638363370710356782687188495082384661620762630997564352456761363078462081976244468694438685049409038872605256608963319665944381021145288585878791067163436085243996603333169878233271467519411185097094032507075023062800036109342689471548379989823071054582902079626304847785971671271150638851887969967450756997061977181312464016692993594182247352815397602958800972195093788743819800703137271483487936578308253363448815439699315643109094756123387303251434503011260904878751461715270551626227217878631262974461941805507632122155377113990686370127782501446662692173076410042016130610901193789949136706557885523878996923525356386652959734020599006044229859110212290506081656337659248299256404417254914080555270606415976563425871115712242366250796046278046131152781490381673362715819869221460018375984546240088844998084689645521218078009075884433550255110104023116509398013062921348653661568054300460865711008836140004888320500160671816491476470731572461680426484264885305320276106275720024340352052757176189153822170517459127389731092452584955958464481303818161203151320723469011613291908538844886151193275396703564924436258031336744876153972737617290239591646752033384494139779250789758576652115409646812618676010792458261560413574297188410697647777251048092782767340851385958498303365170766435773481613114153440269095259981671985898584054213123459520129978319358045031433724100512942351502843952775265432881096968011960164104616595795184670102741786985777203930906248436855607967045416938014168234833588209669914901168915902254913947368913485157173693675409850190966524047624958912891264313838599964987792958964021491941514913251737745747472196197067065092034803930220613294348483124108994421851701546008735556143432351137498039636747755803472358866937673533083741214555224412451738571986988336256358874680621715877315945890051109102535009000123052486793155798409183093909613869838990433000467106066398417873980891100022530673629601145527281861886781857952466671893445320960628133893753277252901631113883410596499950611870485375018214777595098311790655948145018869256902192991306644864323947367678291304654405693521251228590817454068101299126765237260053539151763119585581202797301465994121007527354676338616474024260033629786730853340133724583444667768078545631544495230031675072690873265912519045877994338936179270700037611032414093143127248169528498355609895488846884529266239439644686070838033113380115233588402991345952707069126872515974068153619278657560062784202990539461116861107860726432897258685656753682416629960036131093219590092123004914424715035530927652991658375189223192202480177524658787510256401503724623175874066592172063877073788902858892477026223794180495256436179533162932674997480125192382356975546237881869048850702329041523429084720876850497053901083327324057017932548963826314341024835709769185176169147256752190281592968855738690018645647292765578405954567798719565512483463070467791568483874056485969828853541554927268349950383230222279520046905810015801623785738663661350595343137699024292963335822556600233144638559224134407377098703948515700966509684806505947513542007577531434766949656932531724562795349700813010138679639465674031350058467019293629595017158405302529784166494710681816648701891948866746167968578729579708673490133943890477165275489961271460958731165791040912561835556669908499387107281553691275389042689543105269554899741778211486213755258396628303841125551115482119330992254814926561724451074856957005060229251577779517225680292811774109289749154132338564999250804529248148632496826400565163806058199667179517691634295029536371897770068382779629012988990909561986899160380716349679977518838473079743891242896413674582841576273390942502168127446222308125595924313238043376080533431846232499871778273489700829217520355001258065462799685674436567605745902784723549485878997088608407918557732315304748779084105628395885993010804825999536824514458314051499359249847011457142590255550859884459212777899216171809146158135952257579949840286402054931701478159738131228138533350362396109689420358410761607479696981705009869194455676844532289158681455130966083005050901482476051644878458603757748288499523124659608977175680893192475110974359681003754649751353960199956509119167220965093004359547889260284703364690191461043650244459428056149943394924968055308331877645243132679990668812636914275590266643854349103011978718143485917381565530277038804454786125963549500918107867871386588898320880244452514810759247691619894046229896490911992128329230755905755963564832812778327118688436208895961478201307329725269189894419836898148418345183647852360065424558607571736583887285872238182806341393255974978165819549614933903157893746601695487589672813281218419600868045173780675470913977800126737764939371149444275402381998768079461784546389931481474781726547073956564000705345737796900651267776340012888290881123567958720634841144452207585118826133949319105978166659608258825085497921200783140577994678833865891156904631364819002493714568668107470605346193875662137283245181095936983126273901722291708213311312540974885548887921199489777591326070452595446250164273042546277933254409901814039114815742884870015504125168604227327399992935551303315132105834733262328890105288877040091192242565387108601567890349678471631397141136190671874010653046015638606881481571360049906056346040896611436396386003546075768220667103047027792111707135093121606870089412555767264682842716497303770675812351137429974493462609755082656372051217074764476207754044865794251635958505937897458214844909282326763938415499648712174761033591265017126133705450502396149497297815243652996262303443563257685017938642843295847451584334302412971563737661527543124227826107460411766234566138349562929505010162711532948492951354620587643034280042372200920919401761706872417540368179708425615929432660903548829747721964919972810479899631089256939876877181410061442333985221318744658188147701851880574628872913331844292297158042358172103945696103973788524372953625677904367348451572434637329902919127326237641101713398396318606554883576773217650284832571700323658130085344512840307477473003164035251032721244143422847034932908187553506291215317326343355655319501598622206948934061421813385196390897021361012354552769084760279264674998759756814916933165047771502637761943291088648160936416878378682948385328929527130450043236633648084354181964840838362455999504034939759546114890656765187502952900089846871491861639827346194431442252350293424051024904388215821437155892943523913390796931108426219660859246743768201922698829480363545555721427377493418515846708221315110044877075391143881073932643006204585721337833967395765456068660649474916777187723528036256542745162066566919777075597937420750167099361390104051098662898736163372506284934751253613429938343292774340699999233185084480636720671155676190545080149620709569695430455077187703215421814961719040072929137673584002163073508466019283946196438443260213787057163406593601003422102550469512835123883886691876755498604999972279663186461594761679192557382924905451818591408808351324061252699591169376697406299035009171768516560518983797437505361048306182836604992666811706070776235801606190923320088706486006309608498618093309792188120197789120277835604837047346417004619060904978641347918915325542932039052982764882949557999867209109971077664111790488390026066276481214547400239918866372578203985320574738075083593973595321975263570457099123341677967542805541438912570528104681934500758030678609799114834875879281480584133743533072153552941205032628423878127391416354196829115648021993737556362096805677052386843692035324753195163284218753969708639868062776449219178067469441873597517544712166427019459847984927815660150348093656187468191768347906332678806517671383122000078939506135913763371311830165695765516515724324107978975280378464843637680461471936992467937673257394980991828424274901080743372966209006587173533156098045378722390523846738505876804143121727521801638282201794493763162914175728332994445504386629519477622036046071202445259104674015769951061457215295380055436189591813524385942300444161657183559350540180500266332722157792965498986557555327171819811960188790265723570676959458104519358862013068668908368396710714394609449199657712320573256245386138068623397546729114068356290656903393741302815439628816022414861294230451664883383457277382817070594269105118502672685655202044649953274500855969415394549550186590189102831596912464218219999761881446270074915160092026553111334977038733733344013950486838083919560513011528784927479607289117525091081820728866552181711097378324997866982329264944839560139257312952873334089365357285085086197500667777968752494614084925144225736734242415254358333818884075945346826331086807285970373614468355354917003832543429813676354011646012040601226306908464804797786457798792898104089086331457075113997187021099565366503798013816359941454268219721299767245072169489183131931208797549658925600003098412115232976052019558581400567360853098050282146910115785518137395335037770410390566405764864417680599517270908927438320164657849343856510307593010376408711026718073236893097393481584365943787766724759695155016228305178806948993025007703099532224176423249332587427469973924270484680005140936751188532422762006483104084683786055087275977435811314737220934603333977718319474113107139685242414646939717299929312995046831590231320106491204239034252360889431674736077172391622070328781528395918496294014358491404546959908802811282000325657822432011897777544088796725325742366058688691092732845988462096808813952280242342231906819418377704225006375946066987982359141544589017236151044178116483995784416189033915545071728848372851610141945501470401615300643202362843105983868100152007404780967707549568315412090057523793534955080158460805149470883196131766302076175368553126500003537921169468909016352519901313616717213231282012696943160554663496669822186053476596431858642519007248959799289636510800154002262763319429325683994939621496420500525808767953718983534560630712775914448476231718682713910280968207558707642502308745566423769311267552407895759942605850447425644632972305383030979212459731656887401744434558078385257218471933317700522912255470569138818940928505015638519342255794415441659617025117582832541855411628441381323243816522847371732808078910708650287531202523376888099779237775580973550376926567016137927296488342017347978092120252603806339044820359916163894174383390584801997049788574099941734339860220820150119506726785195350987319040300739916217329531354417881576344849427061912728709956992864328704219280221820610833634826891551579215243537869931703909142304666308209283472459091885485342442765722365790872996266382917860303071929382022484958446737395756908341739037915972358298723936812228157856314820224582189815165896487687260218297049966772317712944809024866058412441490028599353631486207115294241614896818552516112452033752802977958968177446984117800795121649129883244309737516099807682578841849613690448267380722621724751754326361574297039007323422709209190635374482074413560886015432113719849483546165749379909747909758290524421196574390894783803508282957416240889867326283358554297455634287066890223919520122596454170657207752142180561834640002695077894610991127265691473206239566098030463766408017061073734350199984385792537746292864420636144894923103008725708982182626774884505821180902406465081081380296343487605876585457123435826205374053528883254267955845761609717094801860747638091840357979091158510766691980597252763556917986590765012424344324954911604839989280061863925271048081712365342470928737825261180102377719465505556585064512976408958078266866240033760506831310552882666201096522416861806337250288910560364629096857420049077983608592844768889406153349763918245202075023735222250246612196796259745692691665109043759932752869539544136037632815191603635440195860380235153909308150818523798620898297910684920520866264130189496116695631543575515409725394469903977402708088325245100119198499897981698765983520309795079671692050567661715757744748538251484159842632651565305231145869512692806853524331698023480518124288092530735315231170204408001273015238940595651263637823508658124455204800755120369147643260725916218244971098157228579650956359975240059647940602454773598522253837271276166783776720136590699726411993778062951255951739865305503479786748903522680566229128901100131805570594756271603868341043623577160990358448167941039653842669880466976776747433063435302128700981368257571767755780472210222453200203987708775996613503465382713952241967158976897594906005059481932010018639771017611204301426523601352842621764637326692056212651421865055512588190261793094027107190711483885745445635970507048898722957077707269819976349881912633041753920290229387629197657094220649376485541030315740471819718203706245406373901584511198259827415990411387215099990305888017655182866923481578316973474709278316496177297553716316587631085471056505184366789102463079394082400613602345193250530061093066650202563859190583756848867074985417204577535432657916218893347826193933655308787038637632462336720920544884046938853113626082240906679979497991126800124215678759949668593318364584847420193868416388799712627211648336373569066327853008403204889267850962960690387181216528214943871622484140919622299598924115874580180721126849079586608290193991924019353819061654144770817610879867477835320250117601921456054789527733018801419237202228783672538315439583251008694741377442516227861090480623981382417429849970471486366343421857766845039284923398760859880663244157949045705960117244629971747835889520852045205888620496179694289294348666633098063133324298533203862686334083983091365764069682802474679322126340692743942361715882534943820450321289628609914313518920894441680199642301620640997140639228393295208806039740465173375711604557100221849961109493652114625376370778086217713637470509300895830867728460996669332974814642394187086026555705938661289624628796773863980715097914321692058280981706097200908540877398279720724340946009760037777196444903493982363740946648720416641084787551380571289334574543355512882726737883576323256888253331781518071579618674852287323394526796283546104858269749571568197442841648128809661782323128504683601634573854940200380617913238877103835020979031009480105989305168431914327974348482254260029463420940096389878787415035263101122458404217430071808729670979671953036977075055151801868128741687439906007150394121678231134492145228506617138088617131461131481702469986302111859481152886995509397367811627798055437667010524145054658338792809617231694485487792061523810177552739258422193912413308751648276030081601179656023133983232802196536468363875035723009941453090294544590765841015204557281030784075702318583748556658508568756553673542136613718556403075465102569589284642331405289739659555129621054072026304250648517375273905637103952013847850936814882904055725254805110585020466307577657549312808399764490178313165517437228104613416067147365350433371506135620507762110188851269690732897859591769578473866693975651313731993237822517537930697934405005526246474326367620589369283856799431392018611363239910311287531202214803116622412160923222416261247049191690797285676751112212046926792990528324802306517132720314696846251064207597605639487870755498808588703100010846051548689908167009204820885262174273008955099502785987203181207343502353215944789193068748027498845190993358149827283931906169009818477784042365330149045047731161420614642535051722928712082994434136653867793378816899305156414044861925058315759584475201317499024797643683297163650601147384080471180927178466996597998775340499723791118788097008199911536526676194563537351826326469403017596026712754598245379407159864057936574383577313204641089597543487936106665898247706999811067401895714295261838556538029205390465436727671971557412609218724313628873913189809818981228376870385220332648164120726912688490502554237188338612434987673783208609654499276956523037152646107151645366164379435131137298715098174716977741892721818343744345163193642336939330062547432585354075928940782440371036747630454293133245183076615102436571424298832704866757897821453097430888231508140530784754824110692946399534652980403547652428835777109029530171743499890164477224231522739887569680629261078393657914978892916850161367256967961838978221502144492713156038810717763494082432669062814649931867246906074505787246583230144726334195762843059944077682764073424284192782641474469145896281153738426711814323794218589240750926023931763114264242661437128405582061022738122326621733697803797438254037646491428484004129180481182626247502475451094550821650980842513318822998950715763601192120324800239598263006299565238052854907303263641222352688680950471399353238655668604783015890229395856061061050888238380400963798757113186706015926217974083217147389443864680099514764724300986776397276079122952951861821181127637773875945036006317971611807002611275226844636931759012811545241748001175390086249430969739839018278956040347622945272229182879566755512055870115200830781774205722846858146502724701588203752443088005497720086427599658609273466538642867125468190570804292459285339946247091485520761003235278284270834205379024836350879924732672534375300321860314045825852638098549389981550176138337705355653422061455140471948184832316880440804614169612538733810967161931848553001493525987025687882126114361733915820088404861981792714061526286731333172113561978722341725203375246672127429533864336348496620266969932331304321309713163714312470868042541422512908552763606292969594244145393432044576206269612185633982620403361098344076584805002703949992744788911067423809205587757907969351878597497827676834997456061061363300494662995434024841819050057408808343999790772730399033797863991599278076613456269732661788289828210463782153504989506944862056597178120693962706976653605228665108759304526625600703236986668327836912225279347895108272511577636455076773794709954247814318632957079469102430004448607526667487600484550566239802423892933126969597319853230326338133416496452026138388200321198638004038497799864843572431125965211202273979957834512523160622805322025581662103933386361359594952761262530126604382489998674638437320566402835643375909689601489661384306382016801307078547008469678980529806050870206436525749338604538921776610957696361078929427855837886098392710106300499338515061496859295227775315881996468087287507425353516795263128403193767590238911953433646399266928232367062778607633135764664380780068140102226826423513094891207472810212869860212598276518688786968675501003347628377515623532684602537271752869339980408635634602170091255333117789631172029265657195836614722569779559643962707086111784201534085842908356348847548118141713768298714700058701440391580345582454292890371372746676569094868102448276023159381194003145113072800078572347825743986391168997456193775957910465551769918018408201362162843895912450557552891357478106372909910482094357715357145938976175321668987298224006632274124668862727943180045354617611574150703561895998547315372067247068570940746899864245455545293881774423233502582681892489028706838215090701380751988351646762558604737558158354611334356564865202710397807566367715525851630124602188585705896233518967575202184939493037212721493524265867700426745159078077564285149061162760077811307801655031601982768539795736420224636186687894923531088305896346646938060587467190419908276501073681592124272025497992372302304972346391539631852886900874864683817932562323765307763235662723026171612551021032438265356584954836178435093925244023306201745865376963855994680872821081575363276950151120447744118723651837867184055001821193200455812998350552096983855911501581101550665272167791181683716040759784002900073859550959872171952770377101563288322091910168468817787768898258771348443773337874854609676143181244197121338456836140233865666129466097151760403287540777160482907689791408363121213222911316381753672462300928624587816643589145966203219140567314926264578297787123330009170655573242953788711746645697322625915743027915202559868077341334180188390800446245574838919080871420625084170465399169098653965638228320809292266640118065567657912044237036594570134776015532087206855648446407545757644201608238785807944278220239466108598088917533702820983725268875088253626260186522784359241468971713597890932624650244474933303740875906500729613074095349022317095911980874316712530839689853728264896382081123946128819720950299088721752921934169111756413424840635580627849948644984736180397124241553421280630683965308503437709304334001503336048617072250961725962523781801757402480267066334958542746988776611463078054697607033752351530325791020654086143574067130613319885565992619832600339520277329179047518019199646299865676915753915955946858349148574958776305550545846944617124365115607090283300799251795432531415084421707015064214696826036628914471093554701188379967009883628292516093220638484575169250889592309259640803300969150088421739304771610396171857701979072556198757823779117317548286452220644748112164236826445480815077378116464236977118732612274657287577208637992685588897338309474369446982856238044497796704960915806340316048959511085522741957872257377783089481919122481741337827183705141000540291884374061907739827794725129811220868987245950951449733421462477713244547898366046683354317180474130140263115991041122261922689772309779559973005357024729112184387248113010188690520890746779165551476111410809266891504416713599531303750950106679326211567230958632282846001220478073031386123142706174704848233003965038305610842462878350178591570579234707369669041338501592986106902400961509018877538661560931563486369341976945906302877681063918970265958237457521081991307906941456159685015227645147638549971602388455219089635537180857693940912908866487023803344705008705638321768308247493733146774311190019650709682204185015449597282263248924015708811093910753161870255084633617142382880157935772838160945923788935736038806546605098912982290333260952495136700045886558416855003188525380603891502114028619589595716705374780461857162045808364867849307663384788753969551216512511776467376056254450715467231059230996882632761337795506774300411206260759762686381268680591980503397338305432679481856176191151521424187773488364593981458397217077710995720517718917273697264674000407496328922819376503182189252086910766824228428366931634171644958797905034734498424013541227640920701282851655274936949529560484634507630682966805431342680396226574431126996687325600216612932719912752553156358999077677313443352705241145641691432417748620023148575661147279469335438057497711371152384095424656659017974096784930155850640588287527743400473103884007611175225671128827701477307977238166386269368837365631491997186187426560717878466399323755499249645163952405621211277954892578160009563339578284559686478068091600109941475736494760688230995318142365075724653468339727699250203862404000771828868288789663209392002663001129205051038116182305073535435697612830784277627718114058174819985994658233510764843005205669317660759739183476239402054187735415641647224477607071041669649430083884762179654071748493789803672914899561979424819905916378490777752169064484983728648052047243457760278179398052495945042938368631392118334348635465668747250779858772537755881541337944832353040928925197202995163863765730812687091076792994747835305657884808550583955772695600998501064244042062024159702663233796916959790066208899060585440020490921452160934402120185181654660588715165828340688522834665444537951024829743910656496510814868974946588630689101590494099215259427585439223949214225248210486832767460743225694544157102842736178202170969476199328643985663151383955082528968072191748735370479239264256241327620702823512658988988953659414744022796443476981656506562298642438567193957194536192160116674606715352946772958961385796883308675274573381288423212901258175967146720043993765106017369361993829449526102269289959457415691366820968303978160679227867763898809549507027381068472759571055097677911888778730164713291530443742950344545529432951491361117860143858533543038157755767865578746702045906868010981225065738850542505628209070068208427758379286716919082381387249571757943116493377531851940766382219156068041027521642627446447773057064490480077311129746786446153347185438404048689569199107094023152931378012736367592006916267173344329996640096635431762367217183397490769690668236876610515351987997495997668037581577997556636015215519270344107896817724968970250362678749365445005651245045041268973658440300212309066899622561367426078205677236579744435372925890470707251329631240131005550711562378779771358188245820715640673901826008997686346159422225928411084213361424797811953536837333337134251919972722159288027712884404492140849016830791913813805672675019881058689345552022861914732268870994380202183599677103047723203310368461400798801527875982610604224972424425338012286150208048927177051608833163537741322789107868876976486452854970278257548596167349482244789197469277367091896136960250282485135185040560344829011349489638240508040328312497971534384439763157594836578348348998456107940763075707127640939378239636130331416033643780841254710537616556540849002275822909269447845471782439158368209578964376836668303800779736982859113161009439449307782936010385217342746842421851882681059961788275052069013464762129854905812021279998097568890618652674201749208651626169767809160140574014913605260798573541192248637188877966595593933235992725342778502068413839748787819775724357616350875562967880098390670364726104794395560474384569403538428781008587243877274256262861174023958347772699685105368789993662106643640743541313403788210293683688429584434812440170671699903440965180570567513659096704354315690706715944864020821077968090679708064041732303274223037564689227157431631056048337252328739044844354578333313418703785730595793238898218100694122610584401687819848804195070049702209066227268011662731507940124527935048436165664765838377537547550670265421708076921223888727213440063793754469985364841424157674588387803601961224965545078242471095001858935490601888405395315155148221366182965805209118118091827254948499347450215906359795813261360619654583090814825640321200507224582708809470160750505937988948292412478109323597919477924159995181776460907465149781341130104256185513096542980178917802327772320960300501712725078335797774969906939550774380151219905737462599050239023287340663656502775263385954416581800819129540752341229484049437053093341615305829115981849005073957438710021690536317643723969573165961197135078133993771329398624346998285949165303834146950239053425427314931216082019940630813877591069531361093054732529799950692355322894048703231036184322544342084029286241400215061882182266720556595453132176978312300636078496651791851907573127156330559107556411320493729174076225185299725496764335015270392298602170600399659727150972917645271497554819075514865495753569045558094282428252743370709806666909970131509306805851835643112722727303875489805686733209423093139601905732705804812205483763485027260934706699159525275635142575227667799400163438832453362206125662877989412799457264443028424423795551865739774242040252328527088039101323605025384360082526615329851156078999844794083574406967143348409816925748806126858820352826994619824915823279375694404802826747973483594444444685698190554120442574204425678720616601813569759484932806118582201594883102577916463517910297583391686853099070336992616632381462579424573594696228854946054665069786237620207926442614845110736903220658485293507535527264103921894807309337675609028853423361467275404254648396636766862403108043625577043591365716097660731111723085701158774537296180018553461002429571802427152714893666364507426853176295308815470852882113870718076626231134644747685571090969263214573079996815684427314957099752562502124830157780574403634609575347856564938446412065152798494762123531167723659353535233440034730819550767909588760762480763447946122572306787236765928739324090174692522706879154477875872430052128907704325092031336077896236546808798780877398453662209654444405940341920484828513098191993586750194692479941650204910848548937103864470905220709351397239071318364095111105287562123046633045723427393968726741382076077868997118147615868101706349520642722889589574783405615148062519274343436649425010736269739238115049870571407848653461039405720544068441809976779491488843950538843697208385290914787880537483691916498444126331767929985859282114487867212776588247892842612983365174255130737621124584918340930294915512303699160158632631729675798611093240002561751740140692055441621180493003574141565661134870387930994748211337396299303632549397872690170115773872383636159330965949768952374943747017482421136861172721074343159266072854656151223980627686552187357142891200845244824230208996376464054463162673141272991336935795558226801090056729829072063713613121348780177345006264562488160370852114398541403661009781810384277448173466132737455723108079430030160275029628165607525095314804002729850619858533397375461581959280017336001980809516981288792860220408667338740530205238404950825673396539273739605929869199433737822802756601978669486417380916185423225814956579983486719815678378739910145743527229352289621823643134245762399469516028445497146093235773025787323828590364299706588458091812300831069814928766132772678065613570756051786110513752119610601277755287743972154115602509240404792465161896230216682606394629510367796119278556049328204092509040018042231430661826490976129483643742879054258282757005112061858659863214922523124721362950830590098504595234532346921834180716481174217237449690707961040421486709799623634629532910798365716192953595397928521029495551681581189899751172741555233590258332379156161842351971093557975978356869427347455408675924941888062303714624099355443075053232466785373968613994077596397688711679050227916662380120627540666815404033126096192918365116367674170328026486686565969334668467699322719478909526493494345326062181292220785253345912922073883608660862826970748669830097617087637583300173255845536470702590892278580436178519015570513586845653327936223802693086754755167931585103520245887305203740812884431798556318231584746451285995348374585876349323094655923227772941667715164598927791847195908720318568807672559770970499029727392481622991952087995924800303739097639965151116703570471115327789512499748062662805000636375957346959339304657939672715419870171375422835249012696504957983781104398187585355610078705065927445909726604830184159291228962465091903217065551957867865832731760836982771765125094839866008865318185098984985872549347705356099880832936231336312718619369029633586830042821663690469792240638941728639153965660103310197822880873906148725433358190092627590596451991260893577402109462785367982543828688385033715707974744445350144070703678643516814147931735987998626999928675441417290215395830199087982447137986848727896749355442120670859286414094331057094449716882869574558847089503356032042872008473844519966739298956166922941605333793627639758502590352064346900068630544461702835533993284216109751991336641225460646378211598531038666041736911490705779087887681055345001416448686526236970027565713138168623886848009454465054480649206669676918363079532759011414963368815333856767308432850726868068297636688259735008602595277072756934575941382479211460841751798527996660649173063983538157053062931621009252096465003055678286005648797475080853730856042155097245658687519581725840039501141332117185316136842841542951629580845574816698530762182896956354625227396846447178637944846830279536011663277345972293901248725033440064795330229402320737301301792810728702898387560266409376675539920737569042074915702135340068071826753824507808360998456632089991185256124509876177653005763796034827916520211223373211395223304191396057594877467275109750649063231387903719756365610323781494184741867427989516495067791477701019021040210126015985825331063889939781896626425158380910204230879591999110118927840646933593165245301986748664144280137480279615857797248841859208336949541792377462074504219513008168042750266208212206887952628488925563089298007738397899324611879664960833932852757419974178281287541265824716748926528530659525810981192900960616787434362941467425449172461027440917502331355229623468982782772880335872546976641960474509346255833733369330797554600905840287460002878767001727642819431390074919015316037120300264169963537624908798290835235450382007936988257157748067405822820363731643975944418733377755418445887723298888877292283134487234749975327604842621484799397716135527181023150164817999916696267018867963496867232649508353316835898078514951885108219783771656928737582904067970544279216895959263683903170560956467912321747319332440968593971110134195329016745579336225325313931052758509490925275422980253361834188925166896899952171944927690268652220136330023337051380275531083863019323635889700890720414886162539700513934421478390961214411285973884501769783298184744709455115805572375477610925244554033064602878663315285750197571187573888022672442793711915988753175115739590591852359192596016386838030008498429058825364122586916069977748479319793958128191195893889310887339328606762574239117715015956142363774659671173636356075732342778750781756039423579464269893706636462830013275034899681798382992826570076182869729075790249540409368711079752895774277641374527530238317355018280265815973381608944254408843214070721698670722364851324078310580143057617903829614467840342613950669901258409785516090381890695707908170804540076645298057019125857736455595977429979328829049078812042587048035686277521025426217270522197851570737973101533122997140682376514057340848339764107796597827408307483694590207466925453124950365322800761573039024865295565769927811737782995174600652080883034779549624544696739479972715898602646475233958932279868314499240010796305306202849940702498117115489390765538942888605743956252743752504990330863899289675262379098366085585567791179933357737625648027949378291526033753118113191752350951729977282845302368708569929797420117994376682362584997799038031290959097932535900409997357972498131650577534835336343461041757621857856934021999181847269923647350428598897356147749391346890187015169073874734140104415090322799324879420954607451146602096485217196952164577608672014972172584731727521850495724092953709850881106366942865447371072951467371782093483855551726984187980910772564815004230106538414292732043586399621142007588521613390528827394999380028517629507410805315703678173923677351990358492734793917075532987679317583113535551182875282653190814137263968097825127332672913062948445416745638033863011415733094021080273380827637879365806552519205192113518370219076318258817166299413612711503140408266665617419742764488785445634821611604301722133719188211699072854613060027788781394868245886229185176758353701335733397568929907579889338845335835045221197418678590384502265622666041442485804481411404599977387004964898787220959064437526469053774275225543492550246348078928968202320594719280352313297117461974231976680625299423111783962532602717418414643782962317466200915687465805683424946453985582711501149207260880356099057017932918015719913081958757121688982373054869300453325051162438205374793061911684774726304416077325604469693436813879788167602792832392699787445763736502277867828801575303212418480204615473737001322644922135476090396911591323270388417650089622643725823840885070028220523075416802939833232331060666999935814375730254949721200066738635707596737057066210249826775294417148636466882226470066935911533842534483079662050286904932774456335529458134024779514274791440214093404095929055666028235539108360453480524575816437198334521167478730361619554648464928520395259370176571362363594207147407660975202540835664052900169372801695806823989225502894494519629324679863519328884133652057587281484246970067689568096975552160532983657963631604915355775133215425253435753823321268832095208821527315812239302293898152056379927083181033846252501336434710416680150536844780552988204015841047355740756696873532018501122062320975612502876853762744233075876966312450669007723027896947696720061759635641616629425821761974559351131395188465113618150235681861003261943431158992969705347519067298683247290037905895279515608709893977986747080537778584285662813044669562244375676609935959706051231191269621052078641687889022253599514201968123835169972675015274682213160689030465383219063234581843409592383159988371196542721384312945136064432551485122487849662587222791959634737390530610513036144630150326501269232780090880345408552626637024863078450979877866770638713989343217893941101978639377593596169314310596556973096773193835745854175819161297248285426067394846200793519887407454901691212568815524777115743077440046809051640171600315911903263166085134263627983990551719469569421315724848798737747603404761569062886115118255987364712087360393247393949553531940735839103512697487054648602601134534055276921196414825133875467746954925347246453425909091241708934064676157400182444263086037535526728427530608367519648823081545720080481380011953757561410155242120475033767489164784918450316580226213764498404796140390138478790323084450328082031574950363154685451978523769392873177752940855346466922712039440962946528669128175623161141977166576435425973413773151997599522525007756528198498021095983591907833322429456048294145728042801284915731573175852039002039823798537385463727385205632566718691992182414071714678547204000154773201547911266832285658355044487674870349395510004462463613048938318185110715443064915101459790758208630895283530916115395134256970074348036129470625547432160170736941760665236629578749610965874333689027990073999438898267858521579909135763649030339230415433196728756303203984897558377490857844805691185585531211859133091379590716835520912568405408612600818053264488342611224468609421559416430892574070854851667683876408889759474554163479151420134652514101428967818185876882726660236514233728588021775878845279284061614012106607823497426143027918826213026849545240857227088619153638953599150811262291037879375257924043976043403395396634040637882564015393836109811740552511621109388627410123238501461215996780729625814868781661236308678763271165257737853088440755569279573463509457682969649609669757451182573552294025651945049264724547851145339126474722067535069332456761251560033306867301377941111628354045217043586216076769598231259176928360218425545431197718680481166477013314446378816530645041418803816367418268722443061140689545480706999949052783968536075110490296804335550158228430748705244372784735639105476729788500025527839480989791633329762525750821186884963384266530507851830865579008021552165680756622552247323521827326604480984923844547737757655664066821454592679483456141061195146786098413058227052288750104927263262909086978000875127621912089916237900179353575517504115952267624180573876378797061121451345958746484252633008081505313031910999039159467681332711416869110114238772398228520902494396116504993025181811699591207934835846917019000889447043384241321731375598135757846486494594417429932822967045728315854188184223822037007397682415739218731890464992277257338273330836584647896858369049842619921234085854260700459168373008523677160697310096656831910913015486447390836469451800403320957607374218902900954969762843089645006767431633702446247541160644759583606477221244712587308758556520197419750344131997994162476137989846752689035411033447297880119843643917617596302360723401614865563313315113602341229309982994226971349891267042164716346391445357460866940763939467862369622652958194415515982292257143009032748392240030955794914687068860389074855182862890362785632418364988077546575382603427168881855456359935787195707305373085154982234302691484901054234694137109691755278825997834278483430525152664898533029411826953653692368320771929197407171094298550191723819846376857367427773676902493015878888177449139702938096074904612111368315431197561841981358056948000179471520302939909698184633523547621434998531418220483723760600590539715461445275461362721177079714762507825692323906031053724194255560752114033554318597755259795924650936246420743094944314781529307054717527583582667531550826493759446057083946587532592657855642557978015483133571825983909443309248414810432505182408497865088757124445607312725538237595698029255866089972143624980452255134636519819984897205893523757705113914191686337300729796071660938294633882587229405183432258942414150116624603239273163103600815357681786560351994258650552531352511887776270844376129022871943672922423781028641234872800787945687250240311012235466943247086684665136975783158340409692902744461206529979561648140807288954963845450912945746473622134407573898049104147193462004116931235364246689703758120060866946697406170693330704109543136394357898360672812917996478692634171528940866186434543801556715903109707308499179082512621521180175561790146347084269756496940735778854903435677952185197109991186720677232945473550663495317755509334958199419251351074514844611280057771454791103154567248366409707914457723223571019093587269885472037957349264537796544415344040639231916658776704587854722856663351764542173774527955034922820508008874240533004560295190260163620673678444357831006496478894066652973751223442053286847245985145498163412815853634971834313357856195712940130720092912677066126236138876405573094543574538779516357608882690196778002331961003022054623515974501123334370134723012767972365466931536998641519246773407747650692886506783371118275499704783884993341498202368662446202935902794242352467908205264958665695562740856028938892245052037414366236574830019757116133259427774725542755280983111812773679259289546271448493002038885986164365736643561904566742966938882411547784852728989787777205898405261314988177053347590914338677646102552858776524577016434268069312536172138193621829638205317682972663357301285795267820588374341356270966406779999895700206170880696920722403961075764512545077421926042627143836474706908576912391493428326602546065387795546150532742342770500873068084804183830650149505200981715346503963499057921677976200078616019169408662228596427802100704041289811146780762682410978868738567167259713050552188681819502809436220646321462305750020620276066520355725093171145214606134551845984392555996101277664971362318328617230879033620016545217273368280164239787286660063194892184909530892482238603424680809293776144390503800315742097492160830792407704378778145063521335354153989098057669432899941363623550078966548315566025765372374520834439165260243741538922698786508115408259792273864347315048698383128010600046135709864930069243649231561683293751434152307818513304446216084053500733301673677826327983953908916651179471639373049896473957929682966861427947929338313199647769075896584072319440073795072497776985541831740416577583758154307599319084561828393699084362436530668591870304143900050655205941331745591791474376394935025239201235160630456854068103146920646299020484860299529483332498443196152197847805366611541550087948278003265516965171401911721184542580412329914546543215484265494805627002116500690487936423090258516759649195685113165335671640931466011773024815465637543112459270216327333699419325944960781431137459900621760224154782657801549396265000657247938021620927820056030857262037472071717362974454816429253399443319811613242854602052766299616287039534662197466564458351111501941853419112371049171152927438222888624669681148350439291649046820725808855443105409892031132055165121382424703001698061810644399328175556829751075224297490810257190104584236218907513898253770881086011067007820609189466239539335935460542197035360167061095203896575756191424685826119004542428124081171530186798469254860472940648464356055651916937932721349746585548572159969419914353411391306925989283274230544225673811677247903889330674397675261905695007467773155876650712023311138353675759912329915508570033336142013355143243775726283250304571125080500210294391920873862022695725096648512582158853555508379813157546438011600177773211448186222976513329380235485466816923697912051150442678744568700431368964508272937687253487576330384094149863344058785326190949252116685752072387729406723434541886634642636136029085074644963269176991129676005364558669382508629702824052450599153862586435837547769304327248352756756916287274093264523047759660839155733044634854101228386690168199003702039098759302763781379731743667713622364325402388605929539344881187833409186479346768088467210350279381625717976421146623609032953620269827284831319601777503620089817700824331597469847958089058688194132917203819154876769361012786013104707998309725567488120602049078339237385915453292407901898861225391645814518239296111639734420818378395233850441262309474642545985967449124575830735085900914346013325050212210656883745022113531928517607471600496500696323550140375669791830357542587086013233845020674871618210921056161892294534291507480994966020709390371949515020745043357467896501578500028544214517132365826525009028073865659547447076588528317611278237123604011469685002237203912304828258360293569814893650297337531492175599948098592734730584846008760271455518650801385799824843912715687605584462066029501438295833211173209038744036160652835208299366179404965046679736496118564204237217764141584294353149033477174336720235593503289958910492729157803585878965962258383346853346121135109156276616220913785920951756712181695917694673983029238345109546590996284078353713253192839043970256231786967172198734552314018487552355694586988906654355089727572785573961312132863959724698925844086443857351600443583864788172276039806400365238776032429899922004358473929521806458759687119555843268143939807626745581014512450462379812592373812075202034484784722886209068944985187951512058742311291947343855960029892755782505669693915595990785184973239941311582669457201117316275264284793770985658053748642890306656359955416244065948648144692976796049341325446365732237155635505543011264877718924648242661673564920740225082193094251737291713351131758079636215766853136865759902666963055656888478756379510317553534022997779447409955086068293443558524510603470066848523682367384484919250323439648590361863075721546203067933107631163761685721565805583154344348097191651640584003065983513500146114650804909235980009097149795686689269933551233921155492510208490794187816083216025293743979937360926535900676974649952317031884282642507001001600984631907813716760895340665247975058387944274243146617403184177144710668233466688185353412122295064380481446276593903507529270624465460150055927620979713954744985476093098215564787881826775774579808089268342142444789141191771060064692899491365077945188187510701460207217982899622128948737696123563826303775760386991470582733968402161898034664932003220376129824488133172104762349649799719969736480651572073862977005337990732009389682879027955620210687311207863555303334113736858366716241603386042182723637337672047951825311332905353721755161313374015507999382825368545935615292274045343589257555472277492418856044491712711228474209776334531181594564711668437347746329116321332830663882781549375632589328390204808867751524800019718108096402860726153050770240740196641054216305242988899478069080917717256212522029374853051250022575097746141473786536280926587994702869257920024876051481570034964638230211936920688952486077048585952155613043215047789329468862785788655924393409041055051215224186974290723451031977743975770792937617574647791065699660958511073949390994095057087142954153098274491090217464111100365139227356241140290457664600309837458837354378328439377558729372492697921849416820702963073263779112653339276296357340576326621764000244775090125590215421793681964848705468280598884137512995516938097340944598162610430510055037334458061474662993756269908470716657811266731276389675254569301025319957948653275189548199478742820551533363688537533244827288611757608610516504003143321103383803937832433067222259816358291082264787174539889710620658923281506115562360206409572100901397365236852244745536369987845521035125803573808002406673677310519126070625474066421680962676897469888885655662998544912366628008445597972553103280418506717253551748706449993468401306552309127334948778543808689694505729544031108230448342334708480836604884726931391755098111562520019869971514521818861958428436363031373089339264988537768751245445963161516877150817661328256195218023820587027791104646265676038431301660221990378952632293056058575419889536582235800420710574799163184996229571426824961178486119055595779338924260593007172786350066562413803814603891593451977911767883447442642345611121768636218384055407178045603606084609263235666982286072957025031025627766188908608731801919532321955921591300527644399471823755783580823764160770341828224229796368180238663231592016599161513286883176028115900002891531361962022603778152994415757454134700422157578938915059707920795118296892373445842121875098081775050919586905561823414719969915368369872717010122183306260337952369908566950088289358692264132943382472367491190497518592303049508447408362184481839425160832439518190065306859937568942007968778281780660157424864070115486302286583723582558127606166183602995410256438010575323717474082348290007953719751809768646842638908038228268567831316213745690521305264591770237039251065804353073887278943728662752818656921037217122447567418535232440856217088613174130251421535379542802166865935643415761785624412113884196568351006372107888666527831537324838435388768513068804208558341684525379349241729636937191058760380978930852704873993261235143596944665448262216721578536047585880704490859433328217883161620755544286303109284331336266347377505513867163906529083033105932472765946220589452213789699839229348260694760898932383857822279373934893682694508765283248181858871310969234544667276500641117684745236588753684812789763647903473286995544789198581552472955593405280194088214055436604339443942171198989202770830684721467765701529053156248429808662220386737649864781743316371681412092777790085308078449881261872661460074597497128397701598160279072825115752210283153734766995347952761365126770517847091655517097765516544787214006080111738160351995223481043515478035892768434221876896956552537592397553578684221047196064601614009131040111030674279998973589926255047461645885322776666063169005280343384890151969751867615125838509672806422077145894510960756244878473330157219883571513871831351053445840035579785944892529248294072945030047046390704563928052262882670402790189294200418965291470960666430153972207648988083174271138320310276989851199354427762834812898287676926879546110772776829750910994348902390515321111831252152717026288529762636409944410677354894407002638629201241166475015625398799260601324220861433784613668435975440665220875532270768726277699522848558385286690965382414208166585224992097782582630980009925222250931864869866862091845256871136081469214608075607087496764888291343308647999117715375347214969221062151272630958857941655401561635032222997962116451120672061085897416402405330360461685794824809655679347925901815603032444342566681661113899573135614788825213980820850392913214592290846982242483256355255629915178203423803966314047985645680984329969684720027128114702413640488009757049745552192335661541975045023087517363713951787678402231824041178520960857965065108828661669162439307908457168698030044764009298254904911511835073625952928469437681713873606541911883973643890982171124420281500004327348724592573376894798066603984306851274198103684513268417456883968189664602451283976540145190296159050666249504978169695569845779012342584563842343158246088265241609958704843528354272525813848539651686510300878155395307117130728685752117113633788587726120746664218258558331276649670442937948475091276294109479381153123719909352102244293294151567371015357462955067128701219438844926315547812165722379461135106519526204916154912950566148187364728492491398644842853132041003015419609924639383489206453872224768013356669489615857936624366603769625283877234336157400551816371019835699778519738013910391261515343349876887493287765294116909382031968128496194647598790915321524469366784392060703050891703488593599405687837299007608722110509841284622719999464840812661315981655173519976718603585679726314513124598513109853284812104305306382138366960619704968554243902308874902622127596094784988535082992730378353877434562463035755915062254375873745904167579750840581323683076511127447688721231429867148831093388020320045356937862267898046955571776725523595881159308483475760483412438543628020664800911265116628732898172007766695961280567551378608465827651035992314354162693195041553298746727120037329501012845581312038452296693207912533648320215193107232009033621163645798878971768485377429881283226778359568160753672407235234173656155505500712130193433225107183409755313745642496858568489850194577970658841815296891374824938409434404033144725588040812454776084974963967118443791957775885250695252648105916905109003947171127513101537772517297998733284899035983606895872673218456031911057135257984586649344585228642080150837760906575469939089801156024681039371844567421142369110208294134136175802715577942524413917170607299964624891669056701521841317699475610145821417907283692075995903436396164732537084832156358441578356914050630275050745294643828654559659269076389708496477247229064002423181246294919546548603957404873793202920175955385853983119839469917599100222258252685404294797138390049391404004511386529693377534434944501666935093121836484753111995143112419046652547753546817194708781386379749038076357363931128923908726672936848136114271168386085370684432824469987265782700615798785883067055147088910127477751750853128482545705453140136813336103403373722365209113395245628442123374205562025296372089345987249221761668084552713015352536902222554989469561023862200360680112457198570540548641707345782959514211078033345391938445254325405458020782541858073740182977812545223166928564243806271647621812652194631511621224069224692892329914336247498329409945113137375806244977702199940812064668080688869870756974119759077196091568835550517696903606377893072642635541121697671105037285964848802726049726267988776663379313731761848739107795148249317026909731763076340626438863991634111637709024014727372278054620609057299338519112207809575099796073392720000721884465544934108065516505404600363134631042096185206912841233771933443462949742480147331746153712317067717090508236795554689487242319223986077081717824325014149865757421508479048136137514587769536120951030950395636804710594448446428572692578246344850658475175775160398578335937887497927704247493011958795273023624512923500541044024503552252707621840672595997880931337224911217562333915988788487553144744680861607982100623205867197327349800787360710828032304432567278854943644736825833764015971390975962802960693301602121565550341631298038382730620118508469980512746364488474831477630852512471449792359877068911742327964110322210020477067552388081703764775801993349958854641075362048474545904253133682638455218531283702369433810247037291893107196117419810169800001924891158652849573245230971622381843677657766487961848902395629271856437852859483055857486978849604171842257689633271322212974482376532629710179641824437331442192090414437144282807000693280347690426285580442158331424169957625367338968782049801615945088776615438412538517701742955592339177792238041405484492187376007751719209010825901083806697041086579643295087872245283724390262502737755130855075304385772777125402892818456556533673428412929020318199962931812705794256531668529042668749151669718908723715670917814986812857252157644398101827844033808269586106867012061550141010781184043607201106025565971773357450774487701308869733833359833324328504875789255830663002471395306296792878416480743713161054476365125175785525060321858557119583574965273530512364019924766595201079564865406776026903346077787671266357007889779100251773378389055809533400268465036853870382823606564718441219019013606131448436200576127813175446866324242393821847590804741019695412391254147784006646321280073631932764777424059008324746466218795523409246310469951371042561268985206774450344746481947217104236810923214135196080211585527288475394221999348426810944809929312455183698725802557086165080137198492543003748402160590430333911743750141934970475579099735730545943090172910506584116314161382185320571557932075472039594444703356369643564827737454050863095357168371151630199983460093064074883409932122764020471894671850036689375895000710607185579788301660833250597405070011511552984764055413737585773812953696316226456790582300150784697375667870934325506875069644375418829417634893862984446053906214827401748079575408119220956805271931580455509112550498060616717227395063935700909769987510731538171046297829140472338826004099269945356308646231579918940843700038105474617732038295593198564105105679508963408728680254342026534859861778653072709527458857426763900151517987506682495059306549757513025159240275187753889922666605628744612522474020189235389261603203496985172849958802345761290811810911614653204266441662591240489503993552962012641990919355723987188884840261667628492358734599456103355574733537636210904675190277627353604233855403809657173509074654661451451907762652213438795161245747628815689270592774849819954843206309639827297635937771006872984196974151930967852423551821171850591298430169160662951930359684915725586810194615499783053440743835909182466783033486601763495356348683543298524692952548129168049541642058426051352722183316374543160309289694946014558410536629228340856258916461273240382709108541402195338671852344615238066639027815958839650437878140525290945011226261101286490371296551636603390524692283335927388193629601178982110548635673262742850743089246985484849806651876666812654151857893716176846085750699632625972489889450773783023794644327952283116255370283542475236632364946589771734715185464766081358540409468202379141146404891742359006306024697502879953093138455133713409669768714726304126108590716788767063189169939445186292798194117212440169254896246216115251249034408651132516525519246404955677861880108051783252591154986425769485864078009839035228271063894080138232220496475032913828876865407288737391561091757304707266364803385735808022678866039742502266137142520483648178953026309519948657360489731534898082132517210539055384567626917925510445816700626146142777164786839240133663105045033060923823027070037259609714651433791405369524404123857916425456155778264901483825004437393039002330540612976699333381846076554621011194473770628081385243745139647892206338071188417495503139557810961247738134020656042616383819606390204567481699603236587772095129905387513994103585801111066403958179498417728394878162231892622452052476830907487476266027423631772558713432571807831111129488495987025194820996012679031667062859338629434522897419669226870026249114737068405295218515615459736939132856521272215577262757441313841782825691091188134531011553383901707712748422435295992108403384561834168281733758272186271736168549694246288043316878331245669951208017240428685047468764841933861915148652165737289848383389109196198560732917518188076280787272232651879107111337862502810654799442767134872314836834487294049302083376683646484145001183752102642370215565325435930084002502302614751605005718202024559073304701145164776057399768768567872021101933305513346134630803495204629714786192754922412578122940010535761366030743430405495360245269933707298209425002293879039954816751770967803686784992129406451290751126533735445157284373849633960280115635552348997291080469318255842652240845058515922160766696122280877909198747029563128019101990789123559036368805381469054102374600594823194585772096730101907173465574748951439362625037874125808868949393557676060369505357497344015727999124146620462894972705036793211194047686984187592392179108925371275914147819219484796985761814306813148018654462998072070743607290714880963680136506014937323099362660563535551621984694142033463233132678991549284208954877068688158485695117539528828118486903535253709840353850005587381131578822954521338404281906454624945944718890425421487302570895692801942002049634100110826195480777537890445992378293356285939068360803616883094682668793823071284229085303809380433749930267341938860386357573156697872848097952916776628912015646446467224603626325401850633697110402199305543055792879301607784799170924311515521786565568794593827567602807294729354285915851090704706280172577438842526184624822802479636466486146660375349370299031222283622179326042798563628317888430076365118338362382593757834266532909800764074934490428585910037134450045898688853958883520672059012098657316341626796251894979797142490981719608689159446915356576846176047749572754915919417340916884815397618111879199476737521429644047209546818460067957645356177830393138155011928692664352299735031577023605106540350293913351762116096907208023743392437052823820165146564973193067773270095836388644358375745462175797024501512752336600585086152017192207894678024111527648308266629373919323414069308733780184953677227773251402222069340573200067368164347036246780671078746098367763362596842059609358284133948428164366839789574273400764758879605307935362254259327846356390193099781842682879561505956866508268287478440960362782755935384069206376994080322180366772196591578942986636924104899247173686160369173912373715619139509309016387230276412405698728587387878107337274922748782859016766134890470186342988922175657138569854689751646337250309413382297817567620197051323891530881009266886287978908736662648729505809941403805972273171495332102142624584548921580331110122513527452588053595013306126393474914248056130276371861458636130042177564662592502556515752283287242562521565664370696995389010254353469847893142864327792966529001691141998789074557760482925335170894165239695297130295095877963388634955642918400423419703830490289231713449057168474539899966329826262171292607987111784805430944267948609275582754437104436474687734756244659759661689296904597899978614030161943036512698240888687898665365816695841971643220307832721400796227704027810070334860763047812157955277132324627638990331734224417895194826714347264366321761726383992966628395479327819419461744075431810918768636931581955788188461817049314319426468775750339705723055893852495381929996430939091103687097576756343616943870591447520984601025330753269217147853592190116446098111144809704600798306294393275528262062059912522177478887883427062048504398078879425696963805627182855103112556446623708641335465964417589909438198507679636104603725973593359420420564366891930296173778692734815058732124454613522381804507283503148864672714417447416864170864162756859535279342641818553790930459350138806616918547652640903011979063607735199942231573371639680914532157944428397288704498773272147790883714997053030800830369164644809271786097951549613956955512230798795377921683794025136059724934828834702501629303846030924731504236189524592886822867338486238459517604247065337092048585797617455172238743431904621998829214912169430950161002995525667576085192822771517948959358562613327711489281811714935938283247568548107612016856757361617922807195883611106934490910461804130499497000451637943575546221821188947206073783529067968189402117976473925208168280986148786444074730860536529786765825327748720425603046045011895893582424607379359745751747657807760288469324382764613116171678743102223246278762656105994042758225853831183498993373812907657179459423942237899077762445645189845382111456255546230552913780255513966951169234436941805245040807629123132499383397559264548643765000672360823304122242441122126802181290443007038088543484089903344862740815178660854954279611833832004605174770202426539634776003793840434789182868383790717567483748727085873347413080174944631412942541643708104047826745760140530246913474376196908580562322283842126939092274734520201353341521020424405240555221299251853647639303298580923161105535718526755119738941917785727959942678843318210497441677307863794218794156962581613242825382197832401271028005721114059479949312331719745921220749230930980046493865553109651481101824106024204932218939687792484723744588752201268069408115264536340698900042937072292305634880513283289092273785108192262077625866645457513838861833698029541870666678645352522098793934597149459022745584682531112022348430887724315088790642957865063211231505237453973168073935927189970710336773433000141008259280351473188760958378942490342958702572865216623311479177647899605710103631447052479093717983791884132594693057335665563945301066034101680428479037508943133250215201419489906812537536954321309346871604494542393316358086130750786341171840645884106886777468554944963594747783877434386778903416512645407762479563242592345005626030656737594945375518824815727486995615161458927337184045348578562972157410051547222299131236132952229358706996763199016632857457307387862578167012782796239684017932646677907769413366669842193533577326456017198705376124048786689956907619480105812350014831301594281749438638135283969599036812829749066891734705439273408528333178053987079383036146480495169812194351612579774073143922441152247531550538307047540612513621076113141336025844769394809036165701456924302337672042109651326259870597053311803112929236509846060911686221310916372371123700854343676363454865436289086200228134130580116948597572728210390521249386233357880905999538767807200272936322734267276537261745460362775254716675710689879684885092374936793462217843769956267550632845202114203622524366714316169529479106222740522974980918042656204204813723008501950596439703699909517874810870413287274260006956841899866887470737436094911781845963128566418178624202837404156461673452674038726799737929385825884139409763686267456768882407165344977044196402196502968414345940822707654721570467383898862216816932675972262803794920685632172122272704891160698125567682707406421487291371421137012591303533595958771460623595733127421409534014419541474620095785527141307177661235264768747319026000852278135514862829287805196466591388219708957212967910667960228674013578302361093215295914948527127668663197339674359252675028539050422616981561697948605784686429530999404515051521098393092594910578241833224872079945627088448976995266722724006652309261539614960283941463213375557031835330528679807746382330595216864821956638442473899807888591288187631658379439461323304023247998103586469479820667296384895087909675988806116332111317319932635781567651529230449431788568565348831822549193644655567197022435712103698616104280388237202319963726140421399693788019126779309045776942102059260881985198876400936123598040306434334722614748508180086513216836849477740581032447786466635113501270086566503110815793939043029862032555243122719679551395579754328674892637290360027408888314748146049913381224043608042538266142049535742848258353757939060160345814441579944374008416008569783149149276746522451800900609629121474068520235042264729079923601399064247735489355685585842793619668966218122221716419133095917256327872207225573615322094959719436665202430619843726074462436542807976493225225332333381151326446380774549942414850327234414462019998926833336428847301026392141713706393927053619771609836158155786594871171278862011777660267976736939197931224647595475522679720327400139628186032488338231051653180181624071868212317301655924281501028668714786769977437127841220075538330829657616615381568292806305412805741390791439881038431404265473012012629177821177233673230712337785830137981937340598073541285164740688276590438371615217423002658747839897129002623993252322261516455547635364846579254609272365145656109377231928998163130104284194167038652863141752270153026090350999373494636070526970051215034295641135404205428102101184057588588571015996101023964247882909879961963682148778624787020025617859003373275635162748453755254957143496886676975749400268643830220624042565087311359114959968716602689618429940888987729574811522411010903550500461814568791354948098347101625774212110097309205590386365207281570591564519998620775728413388239424241194532806516238412471145450499037622453770708106392791138016314866074942047424248353245150206779403649265105570975003860216198827790176861931604234562571164518414426993080846772201844497504743329726243934822911358264389685965991701464468440964981826249702557831509127973183090154107278271428747829741753410079461554821710682106556573452188592631461366842139133149248430918803727560187694650842435770986767414367874329563784148718968791474178158748325075311643301527333861648122306304304091047463941599652111650159971325343936128203825468277843220921859509690469365181091645581029058165241631241679027288384079516874322065284674823639888277314872404470295582980164217223857427376167770602290922795427828105703430360796484847945951288223142790069816453444529278364925086607830606381363996395684978928087798684780304564997147641053983206402277084652300192956408783468919016633302774616137782681907237289615274906992154618759696787074504221092116794691410355055551727596043221717126874518978807874084266631896277714139739239273574401482205874960801574006256498269236633302912660346788381752720935724100850793890053519601567309386830947077891939074725850789086883937966541747180879379251503995096555322537491257014948930527751791161156472217795932576509337236609307894498417852195922088510109918493204260485751581170688199403110806554682235398670041498089888270961891920325941040376907587654012905078532152312445566805769135559261427649082098958139107967687994187180255164339362496595364519703348360476706268891737022635460103723748147399221053359935231745829457996315006291266343396797611283340043584490059126003315719240150377948720888620491966870320443291801610100353508719984430502440526850523277235289060061822633786369161982934667166450280811024176060042910170743431610246333448823946914188047470915617309268657990522554467932610288114764374708310715266774410660290617550305183942694437631039386126482359755248241426496541222463998563843657375858693164868373912450305412118010898644026295212503661140499818891281635931629295980195920685640836906976659521401874227539836806277446086280094376098398224250051258434187506197625706739625348860644127242398472292812422611623677440213625355011547003002412922225216631182004722984182091110199509300150521651634749419887904599234949762402983122441903778275543057031074345212834908047348450085476658488121470900727456801620134578729873443005489490009328108586443260807282837780313862095179671854695833903366216856490644958947155370792622415654559402846800615727856953872389593795912338691937626772812655264712284260984025677957369062855000063846933186323688272670490567523474512561576748588909859197135066717910840401114012612894575152858255207948767662483522474209323012476558678652931864361758977754948414154789729283050868144043537584491404698530994989722803680408902385754809556996346495190898666451291909489644747041065872406255847159387531868389876080774896452346873082769512826562701277024321818685127935231733460528696953279869365770969864295987396904615119859918086476965003560783378952564219402658531378711633771246161824011876890474407918096274446497685648782259551825715337005337098277533632069477100445545683175326694869923078937767750118261686466250226955884625787694736437400715667243821388159798917449749898385067342311767366415787998279427201173876421569449766944027993703556600396259035574336704171148035615661470706286219226231535686296286339037765946587357006667497605630599829339507925096274939070152271429451015585993440393069444851625122297577671987953687481229967583916837043394392752209085819985740744054472896671635749482850502518388278024227735984123913233289780116203281395729900376569111299568206612660111739945261294910054195679095902413794951166782613584942092419859217562237135541912491834112076253445793857428935783832124651078078271656793073885485365722366193914404749540545715898610001524533573188077705340833009024582713000927363705241158440551173845975291634640192334580611417330804445712472338919859313913244739337765851070767909290193692892211112485541333365034112570910725827305750995485604973708462567279690371851144797766851279776661045702117833415907833768715038638420252542277228856443673490631553820369578446026766306459843728102368294839098467553362605701635909435967778401529839652665320601871142416398364670465171833756495340340948459447535744166515988733008297058934305301657290915292651732389558156900935845739092741736231141493505225162167641336046776737015246383163386199766651684748393198321053865901360633533033263172365173941243239848200757644655519689845247163693158507138935516484709658927172289181456155398086301947078229498579882383569225838969114268476903258663521050984682446506577947719679880602926922295881200432276408184085854793721125892407302191588514091724405923884751472658451440973095707981948610657644470875291859243008786760602683050654310399089289407609497309843919830760307461576052041638080712774007433785025384619811137253555512490457124268041194000836360994401634636068367866203906206969382699651863636427189338144185462923963781883022616349939021350575566434793615000257441024928365590769751585033820632062109723348591559302394129764075817702733657721545790185084590438658068159038373569397841497769479117458858183893484781461233407206371471725807835755668244132339508704584201488907498948214768904319558021599756378221247527819389252425768538941923921551417483553967118127157739460120553294027050929476747346536551101589195508879517713839942826513402267111236003301295515839505492810708501408951426445552630205999211996177629388575202834279530040776586510479648620827923567309912400297051450026993117902023785461367448094007064317791745852435647629318984589413655224108244783801677904073880496631391999809617490818550586143240363592930224359263279963179901280252860815951581883625750641381715922424230815834897637531183492929053729824672409841126134919707006801481349045763349846837047278829094778277740265500614918055175440690186274940350717361123812037892141086542798882061729332557172949257132749945660483625162005323243061426852898242114376130361956217211355283745806585181049139046530181087178550114256579084895288458471233873822769886492031172368317666194824199143679426246054121513045553813350252077995935063659379442676906909316448163807477025095237591425731868084517608514430322778151434184849671201758270658527633964719654082339195338455069655692170530247809818639397076280479545552354215543832997116649426049954643767058537015377387477568482189875525282358574016987898362313353814864009648069832882005993432480856846920408890009795656357648646962134758125008683235520258972476653631900338053647172063469245785712598955898364476643448135031630447557803725687681162642654871858157262293894936737653835261801418439909163811644670887874896142135804871592863941954596146906535135733392244256261871553566639815721580925282609501037552555407550300705619779198578572385254270517356607835326688715473488279709787612528494753081214085027052282677600500276947428659507794117835076851479267331367940413339096493155184327865802530456950545375752675962949713268724292503721542654050585196803941000410237104183875517488398659062819113711181296219015960010585495687694318343441663397793658967037473245603328085383586252944629618158350397516979394839147452807715112228439816163657373482297149170839041936942792393093044637070514681376682523935479141238756189621016582711442912680377628742075352347690638119600269341988008066926339056268077679179170309009587627121719072500087092383408994928456568049307948439727945260619969271057871816315740456629372879997824002538809961682812070771318453611933403608861771793719354999602807663846453499248026563616052066793882877007712330792162934261980206788154009019052220089108193044552880981865074608965217715294582359763797927310132891641894456013148106733043449423976183523444024556234847352685445220051984982366885382272889530292937403957200450383832113815802241276489216010716666898546976914931512005628785104070262391318751795933593783717179056398999003962470555826099654516739915656730849785940675684762257130556251349734116761806878029664695413994409452737446173091112012465803158428439221300101513679318937747918532533458407686737908008468876310543400575899211432387671564476028571702365933021602853798555758834837266439068271580615297090888810700788725891552250418779071776654525431893796662262915214680872300837792605435551857552951295281897432223888333199463027823934797985172814218419408697393333042838421964026470594554012264845760837492524384819849338968360206582148135987209991083482350240259734580626750668254107391302316920109142103930129497360122862392692691978226119032528739115345768365393701643237104009981857179841985793634850742000332939198320144350269122788712903260038257905375455131308093232432440119034721025913527669583030352497272078772036247051126008510183922731747352958007444326607066513252326761393656704965138378559606995941240463287200532910656494290350196712391351077409853443515914447741756672629361259394967560546975801305358448543491071079798743744524250144252584377468678688309006647174747919016720331621261821899106023421361847908878857668945968907326839472745342667218426827258668367249602899314828319766485512511318104718209871396582677565946214823500761233769118680841048759156347917535005634898191081054514582611595785660958301352724998024496236497671095851726945202610683228261041768391537003300730527654673875247086735167971100579028196754796437553215358756110389492147257920924095080339255648922003942681983226550710656153272461283275100747675796908601162281469885943630171386529587843426037809983387587627460454921471845497974806388834801036561619558596062717915845805167559533480395120136433890750880905037964234744095121212957744982773745819021368456129658854983002494186807688852025270947338489078400211766284599458812491302598568541964145634748678548431268892026798463853132429946663439429473033621634013750325021668504866307402151890062745509628273438562270964141784640252406556376376936414148484683568695287966497083341753704820636983868688253604077574153026496578864010283110414700825294114999218732738962461449305784340267956399738258646121943008338472348268178162710128714855534656114186566938055032455016218078984527399127278458485396207464561625519782932804154066995508566460185098621491324821333183979007681645318866064205442119411392061900956481536561586577752388888213176394445536046973856844237675273641965027171280679229975643373646932267653846519651799914375004200485617377300868783098478202106868138904520271994807492021388510471176177550917754301590007304684816645199372981896019265177237858333640906875222422828625950009817583384474869949304745139520251318036295753817926117065823323725195923998155347962051719491736378920643019767019489688401073561810065478032507981855538233602139054905492747333897406904504555576458562307762265091436095947944855037218765331787528930171129520964141173280720388849289326131033206278448417485763171866015386954505782577281150611348393440608535137558280633329060122766332910637184635841855236816732464590028332802497317400881777400107106342984226415795610334453694706487518697447911278524673125585464521977348780411624731827751596906911010948940529441655686990955536606901385435704412986503792871198802922752383670255986849227284327411808225193843552964984664603488624660667567416779044850679159899231856609725301355044707346371650778291005496728302881725997521841196602678266909095466994521416272404013664442518986213384171142098794890398662277134847766433369487554941139712090818006550795928838050789322822787304464676183630160439217137280796838229611515162540941639486598068020699958426321561475525493909802946744916720165077828664711365935822008900467957728135800522098036804895860803977204938095352022091143319868431815500930024877048896294729145555682896714083686517526878112787031923824859409968804837608619148321567461236168085896395512298388200431047713399467268019380336561572880055647692080052300615855454663756854996573963227743522272802890513675457547803286186634838239184551470098721736154515614065810317364931091775443406365853935068284400327063356735780320969628326980134987158056510407597755748528524585684039926428376821625783477396662708234742141287533800140700666130637500235385525842515577687742349988617726387478013666488618317803105460593740380743161866038862214523097878387208213061277515901964323877730602882550913859382587554565280914478901221893085039421431216168197718087681674017212020732867865054436397998987137481097075128361987980404750852027541108348889434730007964601678390747999586912322284161340454939290300395403199402734274179797190056378067100053189642055171472772001419475846109192938854577895797720297731784058613047365889317913646506355391317385212833521544272346075644979168650600090619674989710527127248374401946993272269696754249768101762034446130098287327989325072380524286312914864771266344151047147921998423868569155028573671214218671437217998679546512534242069238472568240210487991514175457228331957445992204413726177283638138550803224765847870156551962653764659167887832236881385668610401397153800848871762936321489240939247139425917638659115315254266442323191206118593287382757514017743818536055517693474801328456360327260082824951555930454827336048773175594548878982361602201891012853709004439252287364190341090301718348688339013314804078577969084262028198658185764508974766704289143254918755467144144393136321628246368625891472040931425810064604299431548274175300279990518371745538103457742762803329849660852137035906566683371344517953214607772255172903591021816415866855609479303687258490704611560554127681910375525445527688857822374147147672114575074899828262197108622029936698676469816677256926116070703166692385140484344673921355597330042029730140897997597025207481272316754036625607987141652239188336822873706233864724930093887585579509413518791092604261324752649849491698619397597741841440775772324945258568440095006704016012206215445245041857818900562207525053609127913564329144120493023581058295021306326772423262154361968986845574105257125634054508503727686790575373062594910902061896773565858438061976978560128304628843610024589073890235153196716673573021231773294607088931159150105469537242159417720309647194024260014659315620828497383683890733346738972584818432757601573099950089000040837993137373529399552281691415204277969456112862541880787802874972834284442017506973065124863079280844099984461268185655613809745789938786279354893134798602061920817331712660835969899713635859813722010746459866483083420226130590044244944933537507929135298091323576373769721326268392929265806505186649006267673128374798062718098966845813088020935076529794762551259287191397556907312848129966694998389753431785880599467103913542492434003359231187814419568545972668174011034574053946716110088431093903005808890152134187861998193762411876080908586615092257592626469377280186065229622886584744842723937083338109232007937835420481842966148596167195268157230704433434742801866544876116974394791310901419414200051259245300016264325770673417540555263401424823292856388222609295762229532211747593383020086095168774758145505053413597524774304943858691804672281686234127683247275891578488106607894546313697829545798914208603738155566569003585286002121424407059261316489176048422731283179186761056924263955881267228395999077377478215309990471919996292259968712718981870920776357286727669995488691955281701073524052319786216092765283003749948024488938652501935975000716812895079169178832086343925709745897986534751682438982692000406750690588213375540705318344133375860933131893389307573978182259444002481842696571905296404341978911419833144602540260681029543074578326961646806000802291527836151111658322974286609136297970413055820427335232632868523060243190809406091500614650290262902072648276128530457572786421207132194985480497483370703836301968871022278479124176611241982593886211706182975438574360700619920851967850527661642516951087521296673155650757988295992214379495461150015426660530854804880786109619879869195712083156295855310347361018323847919275344880536705858857058210179117298482633748475847346219788782068175976564115033457053395385100585832776760318859454291705944048626733856368110955162930814739417568072581770905070409196946437992010365256782565341884691158300650259897325192780097341777993723714717129029917578589011241747059466484463155933738946464115231632894755980424695778422372422758699497903281921576414729523958961764188964014192600228614388246077066427660924484454125174497886087469473596339565425327304774364166646369476513623487784979983756259540931796281593585781325123287499369908053550960340152388876046769315468392918154929826014498110619979476349263040326946431804655242626451281138081933760289209619355906860180352829865634873232008413923813846037596351136417035065384378066654096964025707938784931569055414446279253991640002965872124819563091804419032209279035303120630855352221168771563747058556906544388753213505745427751367489460147332460905679712089494500662503260710459923476359873956404918965530734071856042087078894684415600461467436417957460758371352424600979444080281612181116071382088320943792365295399705785477689187645472543095008660996709030419693082320304364528161569399970097132460776729552374262456509014916586222132057288336537805435220507362762380206892395230554315903990432739162863688241797200969175057346608693816993657598289954519077710823845528111383879010830840308791283663049308455031991597159948759790911063990928110475564215814476623076618028305885947005761850666940348364088845545023245914535617492189175171757577279390968649444699855727362248112471661692250976830798513168665620946918046786383133115656294769308223804709985483412176978990765660236325038623737943446208928732058690614096930534408272468032064217258595013212720964494108495486182711943767925145964329606669939312342413080341741055179835297380656659259074153550347160744415105289352485198279300778134195501378505714106246453717937828586324861719146712801312182509234360482950803166443154415107513832541257398406648672368116341469563762180247500157244880836570345855498102721182271504142488368380555188149347532012691719218394413623729405735174694066031306748816829182929800679190510258766510435048847963666752876557740124492387744291105645119211305592551355300700449622851899196132924275644116557752598773304940709772816401680732761256783601281487814346306940067878181064564115848089514416266902891197770292423390015802898088668723658617569835114386399911041158228983232813692448865662514924576076000594582108598879675930881792316354471941476384692391396671840896460705839869385895673677620996140550913911369690362934045736288230058701981388833516023916532000496099248175066042149694267276117709906854738333525102840354150549020163155216651533228592777780675950729840617897837288620059876880306014989313267479708717102133317576899149093107477888666524764176623253037591198289752262411465346507624327657238634193074211045642132590263908355325663790987161195643128600008500941130749800480948533889706491281522271938677565653497443446609238727716387588643408190945544506503578769300892056703597559321780923781479638908190104762450415381027071810060433009680567878201351350563241109748659187740735316901192109702411483651704347063690679091841931490155680461018767507396723755034095975530392615779758031608581412505075280678600687389515143113562627236828440872313335116876095261087109447226507847822833148609568602260154635960519678571254164398800554774068889650891654155959942559229056929987433777887287983738667972651209231240635881802780200634889547581671881875055142886991533356802151229960458263398587903500997345563695244586317201747899753333729515661879405420042852138067762671498852240434688992199644146291259973044231284557958060849870459796605643084663101592989871126223192180932147244396216852334901842579961938198417071316339559179210119785025622217909312284851485242047078209544094174219133828674982992863596242806081006144984310440103306133231197862974290054815999034992916853547708689733997848301058981988791972829911618586181805681779430380392318124495882207652698288158448070775321109425212694049826904675492624809230821919755537602093895243385411409743016719186482111211327645369527181009444878671601247256780135936188340695190678796191954271691670450673178895649449675285223566536820057243618718937760455542681653253689630638325588134523203994354379650469422803839025922259521059419380905176435974845107951383222198037619490897874877551204987688750498905900886963179011357122020017106033807620605200025709579107278171498779435619544424323157921049905522102486704112756742095456044461758681376924139725750131448657812984179623188779299930083604787235425864377916428059405831163847164550595469748747643615965926202227803560726187820306706379886688370111195344603174628046179434885225922624431568994258565880724016855597216162330647967094345977673128813112027693301213056065472087976619042860204760141222454910413104142737353032668160428492066222389869050235740998789667107196891546965895298009466921186610152057708160181791835229057241648934273223355801958330558711244110341530156076081368536834364567053138824215739727936262728831290567667597344087611440414389709307982776607226133353320400242049564121102070986144837522543228465950263824626402000294715551637626793289400248458410002129870515859259512553974192104888448584020977031780673760410723923059633234971517348502855146189914531673835394469545843635118284040633524509102365640611479161743177639370385396583496520676862281549809797602945959014844048588041434355164644175188741537872853895304564958838026954268636822362045276124793943356433752221899334012661740496145935619861555966845361075640560106592663565559202835069242303273902036017765977651500511082063576272418905861057481478888851479362533333350076955094691178225809531927575811293855369234715936761581379878809335507839487389126972214854045315035360176652342272800007081797280467348455102377298429611678308834143453766845767289815858000557478628058528621077253202077945461397689984859604927181605432606526456063705566920021171854578507649162465648646856266963340331871511493249749106868244545776706426108207044400186385098058663513366219828742771619926249763333018888331529651205939574017273171220690128830083117442479504388980138439895175534265411931966656071192621007725858659487972947190331314872177281360284342780485489643663635444629172067127358582492127728180403348339945165807727766559814891884906312873510058759950064167713060872016344041658365477557649722107000010412876817555240939911714275408607255196339554768936431826638330953315550196928274274970660611388922376712093921771563350720451455111360936933041497184699365646113524916739958472702489112144709735021972798260418893283555097478030815561917974363250872070241997527466786446783028958760163714644208732441148007650975780903648338439494993644823605540876718868157163895208779836938605976627267667189007355055123082241194847890538087359445488622688729531274761963214906297899402723923262999583011468010574159849022731161296666591136459502199827721211412224356883833675661796743727167842722222086822009295958904783348030527609290895621195942577474285260907344450254230879620587251471769274918977616367215026625616689324484500894116986656726973854281748668448506442892728837042049795354892082685371877533845491062750823423530412961957399666266290358252105076213979275114613360042985367974203596493990987924329520175860760236080646506752777069117020440519894434857481987457745684932563908927305771924362719358556053623281820405069865501013988158046020186203370052671630756981477051331255855560143367812542650986646288627855318637887126114011510647075419970714344075894322300892217166058074014179609820652624631227720706552268988051846905574394127152264888275571408731714752610934906424128876606398304545283109187723405172887200473553578771359546150079752299321268322153084753365604362099119862030120380504716354877819280031460760408831744967588912770959429123580548735034322960452981797302793843617760813277536147138666052282612473477666643702105280157363470946746134660368442706477801780288925419993779351744455606852738749038867552312763630785382175673052755660324509857367044495453995230965912026342435664366848063733392167273774229993085618592750043615175333549555821306639144546213621911805183079520069100860054162117533047824065363875937118019695674472592510109599921922617582257433687807653812248221787768534498695824394427789508059631876480221879149328097470273802076184287432066812183541088114706862717412602492201699068317587543285338260858324652147257087151828651412414692372426002804556750468237228493809732310801510639678031925340131245700303231086265529851045782558629834326222091315179962617423308596047135410340288375505870317909860777789625984427884220307814595833665007325926859779118945816977365853002165572152120218447238423974449811365432823888990063097414224426556615885870066494632867485834354257984987236365502605061016118241888178692568804845500535531731698286220967696518446644691530956449851891198651907107798545440497109986689968512279295451290830851335186388935630752454975377612453928858890448128094459820509345179711514570506416950825618325320332648321656322192872614063724053961243819219902435629769686741975386847351891970266233561177640838403614274338334901482266923068245684631197506712741360679401986199997083769353726196559112147793519943655956226628391914608591589272417917900254746777522809946204086743948945338005942489525352992207359426236005506153353112366429669160224675973275290175227987924342596227779153359120801998819359290356822077808612901903790150055173138201397853038514754868716703967645638449327583880467560851665377961108610480373485919462740840319621432136024003646003953985381042380740720764322207232205789326177531037457734377839362931765543945984001334870295031262483621413570030867185079384593710398982578620649990126292619194630063879502384651223966059680839127476670172857549401395816336150584360451617813939031077471433666239540777098181859035531712790519761474757578029526608424042100835893068204369949088874718747674328582989266350635349914722475750494739341633235711149716324214962862450428930532903244572562666506114363360731778505465487494417667874315863625596116506407085324834112575574836059809529063955591205955498525178681990163870001307361675442568298590021859323829542774329402901470142279145056390897997532072477200341696077417301467716465880334115324238432749007330334864733523748357389316811981588199869450367350138160442727939015019857464379628438238017509297834717938629880495029059135178011854583699293350966247131463803889975557301934488178734373302359994152804301657034955628587609722695989180237178759520998131011146456465112269609899034395886079405678263978187677997673409223854641079193014926938983937450761301467767740571644631945221325619313798423514108004805971066711597407160242640604509532029952544276211934494385108693249370760166266928085534764341142544040186398411651036936005751053045389404470201782579907026760763169969269358878717008350478773292796847288791956175994693447369455013185772507149495069668388350749852912773643477310924968633554590281240874069626926647561143841986515037770645490124188747568726449525062796283916736830844866700975677852376212856297322861166337033106945521548796268721049236319165827147353376361322802902082374602026920321267668701475453560687805859630107468914739772092763889951965598788769450637237912886281827791854301694811649468562889741152927790339452262865309429307088302533918403561704199411336135509075211620751054656424234196709059569243549152109320142926514540396494188098976486609675573750975539010181327163141249979890735271047740777262652028648323499266881101687272604153836298133948922427490109138970211978550665677035959252066829278218916840764831769801535593135162000628029747317521600053422665028745242785483902849996814716002482933512208317217581516432661268223086677688478562200735033357197025125314941305300996906828877466948532083513635747070254648047426774938638889585884044124998309165819712909114686077702539925978695183518684293221238198480554308027247727597755590178651635910336007223510015698690859610706675925963440247811942255848722728716610330621033399592207205340084465437020986160117446081352668990632682945494069217926434523999035848549361661966437868900978854413316674931282071142575085998023432607645922624211934674602759126061098385009949149217972460179660258045850554358890433762990987402018031929216329870697453260590699600818605480168121464529462316586680768277252908965341664632670122929144885438391083363654126322157492785584762718644738484273037997244426417057372986378727699940558883350575100193704627639539803953466593997780679263597280104785770419134517904289975159280714166400395498922168684229886702360112142305228463086802381870527514136680999862898322576184707599749580359371084364352254460779193192965642739413637788024523591716355539123385596006375928058666673914461828972019748336140724163854657566443094648387164582667854941304259140446497950801336490730905192057543652776791601126257413123645475731461342789006018431604094233413255330561694817318141022071626857872700853990404419895869099004169514480073036043949781767070159204064693038325751447414849208949291240281577751260464493284344801542947399520344268608963801917741870361975934797685251306440646265774926921301624065996948279803698076272962390835773021759690849678152525163141839513140210901778669087603760934660788386082943611154619319455034097619253567820124742756612218764366729444801631074498496651299496720603686812941322091419756282918000790786849015577626848505270132860547471724468292240158399805401222061437709324778945745138028615298937271933349410063407043046130662663935387906650445529816142366169942439666824254849177143076230625387612617377742182911754492386586901347484106296987195535099594276907598185469250225230755248598514789478838279589240593475094474858520638521975048890211511726164941113618894283893838032883766847865003683873375003515464800535114450335739527744404067653144222086970664113762958845465168811699982971517008034706833535157410068678999607253333587634969030767625290595415108536598016232620999853234738825976279524344593094306747158834041949648097878291276789299410136605808925803888195118502795019329149504435337331358407235900484272525398882880424005195353727054309072672678882808189288672168790029786767103914609077438811145427679403216845528957940738605107569688579351015762471428848276527303852056327833352100692671247367731462084567377290398510793464655089109415601263789708074846977791601967318817321924612383496669789367815185141936135599606542886234556159402956636081680405625931811376345545534044362815665613179806246936794762192254504761187718901819222780659617392196995679057422062787896497018388594358440221415733675037466874832252080335765714679294324898034078459835214708308015575650259466958480819101784898731993085063108606954007563030660054916387713455082036506074248814276458725914614294148264195464762402713769357899008251696994596781826984039267325640781104705993938913177694362349766147448668753242406516088401180336772698537345880877039222952573743806429381482296236557983629228051413224786889061967467617712786984584393672358275540882860968028772208146962817878125858130526668739932617002926904057137190984327215336371817468285348043113316208338101489952055884980283000008950869207540589460997463846367562076838292397343129973333595060864697684990099356227377639269395618111067414097113904759083658648681436233202075238190080757486970869186547934537008313265205262253097857080249424572561108694644567804631715470246896415929247820357872448323898693847274460481329642701357912885317551950726595294027145059477454344735017294927612268435504371169028159349787544109525183572922670747759354924789129143949369875937398544421542434946339665941364396634659049798212206730593275799077669998137778711923279989259958095018729820802772281869800131049938440168199258656771156957478094331731244442383305940479078575498365395070747785397102610564580224228688866436859362998634761709467004848304342323812624967372206594434837277109887191076756447572597021687557263014133858356215068674790597977834995020596897245771883866303908752278606624354721109988639205611900538482969686387291213800810291063192163592191607419167554581653013452802572828327723665064762573084284752977830463567347193963020446965897915182267465763159206787900742286381553347302086750082165165584483312794831807936363299829572304588872090280696513807127968996884618840198679131886781747837571577038585915350955273470179061257394425738594219089275994926293847458915311619907169311156768470542991996795733439165246949754036739107895391253917395736671394066119297253010488759337891265417343443282044797350603117605462094714017094203768770319733486136173508993951385815622627177991388457429278166350259139897562848406966734784383075870087506679185495988950067919709358854655948262413106904547855603992654441870782027737413178033807513984153215618345980969623710282656447519544684939539564459896620003166547226549082949982138434320119681692881822672951975454233897285226501719391342607397750767005012984731090288010957864930143269058914382192309341789323676103014912097101237861934481697440065469898794456375604354243956201618431704278701409594262622586174239133181170462499055820778041166949533253408319901304818603734686480936714589681754333062066177119846511154058037764541874445297865569222866766281068206949192998806470609492428953691240506365819638007372511036603032704796137098211124390117050800938126028514269151809314979079801447445703064018643691531059139801180960894970996378246432541526522613020848530650321553062496826566294932674840026372689150503658871338088901032371039397933287664863228541892287828160664773473631181946477464760882094214366146006965412374163274218388752263300771770554168085679461806886074216392645214352133013550847805001334243826699649307811930020463896885178047778989889683546913320505116463674809114829748256572965880538272865516015577724969190407410510487482349113493181995702009412565352307370716662228899680758023639795871951351696666064232798423103916502923193254291633016743464977028232915501630195336842188974185394832690907172855230606404531255516200631183201287458047447272076058511972572763175248325793887699265619566761922823097654037417782725964658959896986254345434005766578181411505020500637952201298059880352323229406902588319280901092845103982515690494637907756460271751526561963955009243797599581462540549658654520064196664015153314651591072165071276937534612528826278954099717225267181066050293434359692879722001054674571746296535227506346183585125396955226053026231695357895331528495171579010999876371278169059315873427383784133836334254321228763764527556125050747670870316344386965564732185163592989580121743345899892257364004371260264796736416907299737709938607852335591918102641367780212269921113479388847700292844236572373340641524311835412167685871243665917780398639439598601695930116230992672053666769036160958618647442985198802641522094891906821923523909779192257795626606535675348453052957693774645399043358364532744444515727514770189317666856817084692106402872593348859745369709925553372960082158532372804757667381554694346892006852487295630820151520930306384945784221309089509475460187230127197778948709951693350461501471606599949640124211888586760513620048668419314205372501429603245257408028668903853026975419133427994202222216725457121595537154975837856056419946449838355768964659273249967340021289384835432280976207033817254570984735701231129048357310970691534784076154425829786614912609019079181580334766078526634745563981952876506240728826329816894917256909897998120209417946653633270810039433583064536053659345324555818395637097367029927421374924557205600671815034010117558507057004629816121190442723181506894322169692136215259993780277657353246709523941289707687578700124692131102367175990250335789198439765372907427185852750468242500850539299867824633220631760076581730223550831880983630925010846495771966410515718759082777182005810722278731706349211468845773211578105239057246229631306631661982260164282200962445279893534098789212351057916246380376825606180647103960460718914169434469860696366160458243150879022817911911066055838010049491723003747082068405005814043189496036504856492798944365980009383732146658327968743831479534748933208468113425981948187563974574407129245947465104514110630661459768358061600921680951124765954696128999920732378083003827576132156650596793090613433529023844393934968839822703925512628313048634383957367985181262477450875094947139087927225604559461039696635653469415043760736901921196350892042957718322444324774508782217701349531901419878885968675893860958420650278620271124182042749750667152813339052719699423881177235304221379413300186772237824331023033125456061093491687759953615504119853659920633871590397871865379081106580246093810694176293789791765024972878650589870763570723005625265442156954542800531310160625873387525225925988096952805689320618305660423764931498059115093284453789554843350087072935408372757556012529546238913272299447839261995409571428477298781800297745036761014121334283701399942885071791299315942847203249053373987655473118020484526506388609246780382557413559283249310528742797379756853300446542562011659460074314853675012108587480070148424383445112020991826039287254622916443728932774767149982785966386080258195500028712012038808029972927065323417519957165669158021752094294089369193889212485436054679978102859925072909572921942155580828238992634903581124737011395748029296524108021774419024428799569344780781867411963629484443140231322097539331142969492957514590833988029144091470295611754356215773682132890395516919440268170178525135630420373066990410199258679386413023280837211343691011449941127874679407230755074411117030044917411969978194932538675720676982216510964329734798403178064462973726424105382721881682765723677538679683256031078374828178295080780429726769867003622622351137224984900893633174642132183766535042884010581417003723881826048813690520060804648394761842015067003289998016761854215840290071258104913764136003012391282534297319936141519025725623342427114047891342574512225062384225215007049429264563747270941350443899839700273449738854829188594697057013880161677968035160437041263682617882980566562868472521125486318094772842163304010545838076123953947695073662355431082211741202738559996562379037215546043261306935233869818860935947651800344311954223511500624083251014735661323622908631704567367448347828912052299924993193299957815841278845198394296029446086210298950861536122528632480255533339000509120202560749944960532127382263340052313850691526242982379787524458548126187319657289644610447298487030153244099360071635848658799299895534858366680270136734153937177041535844583735915219542114122670742682061910564025364668539513299075775770703007218383243254651437097228507497668980972322643221241474223635825019879528507776843288044622286872482829000649828714006213744953472416404469063946585012252284590264222174148401919506653148434301650527501909007619819764365716648700792352471909700775854673805805648875205265010315606272789400914741325363799228909203452691025314627567883699235329936882115459677934465367075327921060410824288144545574889347296099942869609000557680370341661978074471034989997683614605862836077209483609140152843147990004881275291885891610160222191374596740123103790362038971289321183038121141698103302773909898452813262802783560348044821277858916519693218734459921780567364938655610772203898876731685195985576887558219005158103202951061998089107835189052912666458282649481499169452888407442817505676521288211612854529854366706607558654209895520128655672791455901298433619513320317435848621937856729966279063753418719939014176726521436988061453659720811918294530275726520763737289634898947754043279783289454640323905335286137715470049212518250578603185147970284718233317326694454833412972474245506679938803448675087055372718014225387404364009131380711110538257140891712966046503400282064409583743500494301045658622054363309708524863070449933022113248186845781986891964956811982750349785541470528398504248538227004372480163921686562993249590200773513523385004719630313344163276792543312213279677460239021068800515174766631582922666494339168533084773828423850880842583931591080000150857594361634439077815440504402254108596000550286508606323415969893084608358881728169400748012107393475190404035020399447379151960641123426877181032207537517015893241401477088983138019583201448003777800731176050989420044055903077615646762702688699053120390978293225457896342054861182986099527265377777658488649576549501474978533173190697519489067765930744329331777124261750765494899982910384422527728407477191024499023267025363184483445070720833499767271722717494262410161228919295186672310125925446053797967704955220818476177833462624685877032514205620684833430254050184992251639422704509807781390540569616952994066071134679840674315125347026321072598612998454025047306867189854240785879345486658292568879684725997933585130371373565795349564876525069864371529028327785570418416123215950619695800467022400163741694500673797541964213454001961683401081836995123736405606125850352585372071167631344146400978025908893054034585537283509948513695467945836546196686809109298229800179872892569937185763579319311964189000854219666499401121200632449786200863552446443596544632280870053723511795759174519219404053778285619841744092470243582912022119775674909593265950454219430687393778793690353401644564055521381399945379523710247208322122513220529795756380840832661710625063574464819704256493340345474907245970747816485329618572698105383544638544483904610940058323843787829727779696316250774084908120647542525788991608785640378200541776481608810143503253131927672431308144608792207112532721665647720929131287815531127141701007243724989248542781703323708976907541562595598928378734215441275162738991844852682061411253024747647132450932506782206180166991626811378304514497544454478633493643123395585046183731798087005721259700295955591901541277090976415208597008215841024669143328339334604955439254009330008796496044521409067940926010626543640782297898598071434129814112487043358226851425071848913428830022052579243172581539071354162736789892202614421931662672167652206103551102166076347498731694930930175363460294558481514798602678954279143545327055137586803397233593653447962636046283315897019042827349896081793357694360204541413135122319154243075792928674395131670981405555218930630354840083319498661160092759567029666290595541657651024630172962253115850686207527978759175609181089546534511281902871813183960593291574873053528363177176671354538242792754792797677144235381789471145856402800524395517087411798895164940884040768457277331149936239301803782444871906848114945994391691203048755655191298240123767899808849080294767633938645707301363815161408666616254981108289147454434458918099348813767907768741020245395210349592339677827363888272417414682873461087901149944667861784272617506689002140961837247629501333660583262245153466888862116938893111549737292320554482491881544060669776281271020371727755866662081031181677584277806059382118765515196216977683664955478794612114221193745358102769702807513592408867443973712653762028594072499424581607770713931312173049719670022251252154172733785531292987918450584385366290081207074482273379967598626523046477513944402495661726369118409864530258326371471299875914082579978423983217117449051906791014457062541785253527095588168759176746712523993296914480143575841860552421254144433042198127851319875067709861180988371635436571935594698035294105301666745428802929463078198234182713956441685386553743473568646995562012151899582530894797750804832500225476045328610708862987236351965511997466221087521449441718366830722310118261985850053092550657914729864286434628433528524294713355915252267213475490194630638954806123064738373369862416883054146883706708889936677678574188955835107774309389798328605167281114334872209422628480760076012388238816434986352567055615695706779971173969695318781786911400688806355626374119948922255826967793261095543721074673403231011159252691020610975509981052820476834474034024677536020540017821492669793885441345312425007930015759856448600509023995751282998727488273296188234740136367588429057835592120731954597261038003632157704488481026828106457626384965640620904487557816018390983344622709099893745659007584953225064079156931965565332816485043343509124866393685964350214260453767132604292501037382855702526035877520105942533993338617261307439837653353304479249277947798279263682316396985341980032379448738109570601449590579732293120481689061395076093672779865343836088764758818921805626999209671159704725241055155203028901206544364910962219306516027383604122613263246081278755633622138003823647780508671603600297175482547708855598781342513756855483206827103042167940734732439141805657804283417629403031319815332636081731977799045195948673920924654030845758360135520745515083960670233326050110776726906195330438366142836638840667593883942579254113980630238086481236666413957828114887289502427252664110206899799221651010501076600292347953243950775863777575386316835568526076777035654756419512050798987410124312646215107387881460080867876985349691684878318279853016292353916116970998890913240705545663367280579277819818584954104460895989612700486920390889827088122714430390980088755333624225711588227661218688072724806708570317917928436515091929358561133191857435208205993391502672716438181849106946371292912552252432211514155300527936081908336725312788183973318217610966458901460696879281890862550816265386022121552368247641271855804107986838264633286570082450351009482698940965633220071172945292990990397716934239140265841019021631684827167744799321246061299264733530823853772058558194250594653994165972100076734177305394358014435432729909202441956878944793417514048916958131889613420557082225156389941636245620918392654732008227289076021848967103065589598973751213841354494868337916199334243938787549519666461857477226717790674971631153614680322381133379394990258615267930668859983868985071750767606411121564364817238819672757861985172440263314978726571802191742847070532057362649109716167782654591139504150910655495430862331004053559482563568550701138576302281979139592071077616070950474244912251574299987833288765331505072818488108492176262725364658410982765063541844365264373919356027017731686884000432629286575958672237473047257306102464518196514199867588121381048039542529855808946375370914716696104617210874758228317187810443175217158055718708783839990387052157294234193294204462134806059585154380096921255375238552172233335082584105046446560013870803111461706204564545959502082843563345436616748471657271716719795415068593239565681854370019271021794297115096375580609803162801396597686866442639651330032482821526445558670408564135380275963324200897329955948249400205250401039119743270894660616105079819898746249528261614830251492741242386837109188670354126567029374309085532991724955398800130424169185456820408775319044021097769634320317449468888427407846869666925746528802525250343237557508852191279519603764568198974339661899596740110088798633037124018417742312154599255759135907074033114812355055430180858473407492448658311198779627533686210945075247077041319689862723537201035142385863642272775610352688346986078015608025937820446165905294662450524251600186343273227787882932566386583906050106118922553607512567782698973414802070714857588318820979533887794016690506779253353792339860335117869428303752308633802032566690059283741596155071713713462950208105828131708506626629645810220025211780448287037538862407505140329600605378935371726359783862573482991618702677524684980682712767509265578217856088768503321745824141023985466817279250536006066848040324671655169637251638729024919119959089994487949732836406579755289286985320294828589286630760423057131473347939545766493874013528581147643438973891448420160572560947332225002199165678600157098434863058817054437128849666652785160805070464975929107188860077284223946464388353623635397146223118046508299621810125447163340053909374596523781707529695293690761174751947639776316787175152824455143128008115756228544665993850775472088674884394943046837752625224837983152063162669631453819823550523296027098247710252384079808162362866438711065651268369045156413335615208253854357682340045508091060436778991195768261002562197451260465596821577785407265166935202344057581648378235172715871353750431532341630129118302335160761193360157394623662458803370052411650173548535304546316779070541551648441090181881682748070554848363653159098645691923331716100257270650812685854081414127389750167003497509244762614997255385927674571695928200819499340399016356759213854543796789853492212556210941756241687526677194957322977975649295985044279641583949785190728212105575431825661601448306454404666470546782966071180734793650248861320079229367391863381408032257827367498259395619179530569849767460313257080240264578318586524373290893304238958717015104953703611283558099494235631534567350415792301850195006073454425243007380608990280764192913191473058243001259665671213386999285134545470465393864771355648461357922598301396082958353493942177961137472661402204603820831629335508432292604460560110695322990658571987607146046033736343232534596867744515958716677983497108031088613049099410275530905727204789636010461073650179658897681945896596501624480515527499729528436312177832952410190927850118951728405720978457358578397165682599438257088384452175401711491094094619019171259914315122298678018476190003545606879556732697186134509153068877019648706017155061036345275578494625709595553681401511284188739536860440945852342215759856500511782012300532037247401406853417818679439167795484151696415240883392230980437658158988784435488819417805301800968965451858756900212070042864451046368703628146263077381663477658264779163918661242076905816731155032516525791565874324842479005017640062938132337681936803319801189520040627321455313714276587369937555266760476115937521679854150208584668271793051712850058520408582831798588621171955312081842186310643356461726299847531421997139671336635411704347969643872335809958541957216307789924470305380228996108263407723248790685261509442744889523890030321263425406964450335654672019726989203095009870638369377147466643967769181317918810665316797870034096966269056152441115610054643338683456725951133665823402262662845435626692819888916876388734248495202653617063673908656307362397259436090414455609818200183229383693086453217790159917759414160853924738740091369477684079574469384823749102711450135995854157961696417869533776074371580594353399888216973985384500836070808911660259041724714677188837477965659268490722791788731329852955678034550677915274088475574169283098718410383358192651214588890886277506463202846914877451229554608111955389481520541616501213458525953435125416974107832029213558900759734780680124363381150086584842465856188865826270521740861784097478744793748414736484677097820828752771558317660128729366816110800509129859414713374501523780713209173766425744588081188464179001076556582699800638657470653802722854990281477781369751715496772788512042961253858704293426464108847954019577677436548712318319037239650614243413244302042355475204236127011277498636998570991570971238781302054122353251531909841619351977230842799159343037455657168096311151952591709747786013747107130702750876235487622692271279064118060637654406178241313883234460453674461234446553924085527372927447263088592303119651647808350832991346376048239803401117574607636558072783059112648380479825578619335539051154780724449668817505585541475553146921398660101704547195180975804898486778570606127937851722832950407504596493748727337758502351655627761389790074607687345141000930019555489539880602247340853594448014658203028125809021187615868374692695143866775964273622746611610245597171731062582182561430509271560705503401456212757185900622466429470354812345616843341533110269673079047314067289173986253264845886741092233209776160807580108084913981947733954161178324939885093940860485326320978359631991259453643691160571715989966376402951803869416553768669373401001233085884120706129982776559288082988444644397308865757580442798111247385512297545652378503086878557804545898833529518231538407489322784599823089448651462817393233770092025330164030620398337342628950397114060214254530287880819700971614723484197879348170657600958439166352389120902278854912398380952841089663107301242388758632704376222187992873587782805361247026162597726653883239797024677750368168168863370220968463915911574230579456937860504983197929029757949240038381025530765149390363618889058304117005495375777085161267785877149706029357838747259903346317357805768083001688108847919066113632338437018742917998601190091995242024993333185991450184862757022992959043047123384248236097660675623495016498522606567797356978877860866719794364155552970846747127342100838425777976787268763919067248655024199363580516055493434717618961537746631445760047650373848290735452112869791378053862665552638387085401970830216206659535706227328327478700630459740181839987236320672369590736894359822052747661522529718243731359346303885156621980841725586693501951185189195596837639580244703838280699025777616080700008616547911492357117709313417819456804868481618493445461089369961562749256515801830237183553210202525374432830475584445076713663548183017757026797549549653633065421898911889864059578270533160193860215308885746837804984255088703874604513409749706352942924107890432944093132068379672203978599929825142815160821830004365930623209846541491849374661451543193166906715586020023040180394731439029420514868788542040848336106933372310947192904961501178801409632474287934381153844943996937457764114487424807665798328004164779991971640252357132561377534768215990309534674071986551275097672623662869323139086809023568931962762883009646355395834393394365284550894311690386500611989532955599709103180299052939166613737885109747875723835932009982314536071994841677574002037086217235479625836676265540699339477237194147175750087631958628897505303033577247271386514677266244764177615699423742475335923577154838578468094328545355185038515180746445471949963055182923445747374461571230404625356863417875295683748409590139456789339568398176006941952424691063291883023180301714963478149064065362619803976675940238471613947470641125453966159877355513272743931515530192624529940221163845147691852464735135314606369719082264704852066618239753904149469040050876925473781838231294783882133901247776493718847454507048902676756398017169059965763175834329074716207357532111767809703578910143716738578475384379188120397374974441792840771229606190271453554882912071216324777267142038082813459986190206538078114429345758796937795526415704279262676416841107384764126535482088384538204761581867854761804751966633251327868718934126349844168279607942625602646133946295015526585121702028289142706615684771216408992977557221187398667880313915333341366469945646087910885826968891782003980295400170119249101079411550648718433074970723839480653275623019656143922189013800445542416845370212568979649586812993304240704139609252403564198661440623778591230241843065789978204195968015986144407428128535052306539688774505540951125975585899132906359182986278521047857165918063026573681493293184438723533596534407291471578060151666350852210698270124035829783008963623306813734507077934542552192368731357497556328554584364498646830689456658668773997491620837849172307154236559982462943715668834748816811944850146695398808724188811909039979428762047228591428870663691417995426243348196540163494230269395573239394606448243636052170500565181442800273385383010099360666373208507297138269899181794474410325082416796141181105201063539116346462020460405682471367036993133347841945808248433875671822712642321337793310628851144015701310841418637133749227511712635795911779700749160370621465502441420665543573127732362339585942803429254551774003748796402133467626007122818250351895041281708595551849205854542572516128051195775450182993514738241550320932067588268339850937901409592529721277555113684251386331328110817429611241594334086113768870241821952862118832354714224122854639626471240567289006994805730441232493084065475001704428295117875200845961943861655425297780058609296319082387791941148262531780841378037858878169424643608287450708248511283839785141690993336981650960162194620504054593134361064635344535304035217217135763299254361010458451084727855261103031960212688367014483914514849362478309502223945436545601425730114970192443013112108128824469789414679965447041849134052548296616269492013678993935529624676069743200710830711445349542787503034305266779196355833070867303382289439946416955488643068324508005801770929697258014553740398861534193635233890880963511067023500337201333415658538846011174688579560989509812497910770195549926625253697205166910212745657738481203874254881784973451723082039891851620390235150411698343150441458144024433264767546519778535721382260372265249866798134957206899113844969769548420860866677103824699152067231356803084343434004473620046189375483071269990671206140343457179782410005685265141174415994926916305433446527851600687707509783655167059497852060468960328270965054693113814057539698076150175384447058702784719152813924170472841754804233550994694982672239486875192591572941628881167596598661495224830386463295134569138081180955512770945461390502939900787431901059521398808727123194312408963044084389601139379171463235587991264282439339560870922292006192263091242100200517901528119374534090643146881745917276585666063178044244229336368273401925053583082865039232741813244332747582444439091736002938114682788812832525672191928355577077624043915327405150599414050588820455062624841961122610833825042863596790954190920963267800124043843889153241111622129599546471107846696853485936638922134667722604156475329360950213947287827334528520543971278495902687908553327915376724633744417226707237765099425205976787712206767211746749817665827384456349785404953881859456149698128373907385082750756723402645432621237431531891295613536976006816469459463911942909923048403779135516551953576322551608231361232424175799677829925222124661708403922552629975135870886922892714198800682519002966487700638532959225095865424729095630859963091776946300510923071671497819045740867547906013157204630648781067172702018166350127209457184269192835935083093539675953859833344414983062999585174522108561284457850549316574360026674943441646850402388518819973512193933388985994680054434029603039985747753194419056482745456272209373435258454295945814163975620359597353818680570488147065098732348795857231971098651898249312427293882750826311498242707423663807634915960180409068001687119952794669529137757209079331578855219097848024230457176072217951205796737946007075940514548354447732546864165420644450420767177506489676350174674892646476861446724038605559147506556765875430652488406450248491063587250442538401709772758455886137272380709347516822905524912806348254260431624920818630407920801570307489309164836256942141054422467202470857462154766834950228002758245260639772703953747817338693636003078071244504175305617766995201357205336667943686722410302218611208313608394013526186554574808245477819172220663520872640098227781971256889219411169345706877741682161489218017358576667469138862502781722310173942524353432187890341916166365271475868859695418432193867720075899842845896693218977223686247708186616957057052299338166645581990508226112914407972974913776128695385251643274685580478959667988362683105988998108399732307333194476706038836813231602157114506364264161710873902072967716620164482178974521029895049437805290564676962771933191182818747291187944702332908183184977290588574366479675825377599649631261960625544267855049447992115826779601489740128801687361435968480573801922537401257230389710695791913091644573158441099830628866784318740961127274194799109403682319969994431081841487413946984444383271373533567224619052904407664062351603368292274182609870227372452711909806069268534054563307034554202205461639766360921990598103468398814427368975776197191339874451254246813937395727556870687897199137894366197147629943116922241776342072344262233417239815227875477531373307444219071266543170565434757904037212827990115251076766781913316428813062829074959372310572353424994799286044544794760462646443899061022957828351224887651225634815890876544974591733828587398994507801680059626970637143152710498695403734481611886806463653343268863364054355761796763275639628752100421770962185769570158327613754782237349009907209398043534563876975301823409644163875567376641006012909257309489981301824324072739338039557487130889530083844424678219378195315207306018525411276944673166386218170156991140334867778708488042488836228679702448525120076734599265803681592089302229330309884857700415010038013678044483899536021665200237545411928167294473281074111236957400305110975532945261052853091391007988304437864559865861150372644817941983606123191879367844669754837383468794730806122014219575618236030490230566491489040282805540653332857756529913683018420905612831618853981726328828968604690119157921002890428351886837879247201278382713254644621112759796784355879709917120760272435017798743979991177162331969003656035379395037440484613566603505380931757789448500270706731887859600968799948125729921610164321436739374508808015054313741484815526118235794852806679637653820897645647356087785394545175952963037234951647435398259194714345061277296309268126295479194754988023675015846917649513169386479796452153700482860075638366599578304545889832195838063879877982806016615708840546604539339279034124694824173117964723916457420910403256228264583832366613611941216795897372399575564058055521985242186697896641895023475934640866434026345649838870492430856628671783021299324955327693797017408375488844629893477013974275766998824775442657807954893130173743802711261474655036347708986242884268364221325294757341941935797870009497268901031159795238645256692949831562593281525442008102851463775982612707400375059873501492927498140912975598490970993230686566094895492057164610225371554249481076459252478094693503078534304274188230111060210611883386472304973175902536754961722423659086278544919837679157080826055215157267086525257708269073964179152869163512322769066817834668632130074117883839307214625480554429295194402133214910213193099419034464851683863442931504021083897618737151738150683585152424886686720605069925880875136845208682763880472947275016451915305012318846474299573973214089398643037065718119722770953284285701072333814681102761966747793954398331757977839949146591645293133062633856675812573700035568875809238568682607852771550757690264134173930239084189323607409039473348329851350322008446428866236365216852027704975945261791263655718291991740809332568996046454254189041123168721369791107209841476421087168561140694715422373400974676754881871040344106162728520186289560988098123666737582059776090949292910444968451203654882447983577478153217026365597658463544240134856461796107674126730311316168649150644391647437236572027481538528396348207361614628760556651148336509236781455165302836494875955359430641447498358730197759503168050117854027980138219065057689051222614114212131528974211920457674071917506631460343955065948830012257059824750981327082257028816344395280713984277084114834159219109084328153817666237805066518738303405317779601480493396696397247653217167993149605035689194401538957806645813885719928969517354686904785235722246145410084881160739159587091914250421767511668768582567202269284642125545339641726797743283189431258974476680453178830419950052073126792861997388474071234170521654718270820015103697490137568213179401570361812866692515396889516491531953670112013279282558061260356899121556839954089008519766298996717925673269191474706587185641759756880054256238888976755204798685318052839859657543721820922122505314844081819697630007551058436885037810826321672425039986078793570393248352540372525136915673532067333964966259473863193512895134658182781580521004186620700152967710870528374638566039973380077183649014325870272538595335764713514915232530360137242853377471606879161181103503532582995968420772230542377567795840668987319985983303343385075546479873854166970183495229377817501495184660020982413267081584716813259109139017940084816884732136156186076259057175241647699792245016613800533824590660460776648056138271075837561053384502973579493104356106646723002444894063603443966546446409024573306422810476812619598449182797418886023636305799368364316025198054843174521705235282330816497004456639338591405743573266132247710488294394970650798205097742907756905005830643423238698629409364794419811904632121532553005846463869065269487464828384051649004439220755211693053678245393367917327200901340026761848353734860062875475862594024077756047069128454609630844841470057391737214177100642275848574186779252342597537461170554319073610576581320496406476967857165437490486696237339029611495561887631258074048155327696862949156242185043520119186327913929997108581622690028758585430250462911826382357564663151651629728188246283739876760301445718128268438282575427519412732287121825102448880003801546433229483959632635149334746907673576045417820575205072646914324005306960182801447550994711648594274471919082718796576141461966823346819253835527464382058060385132611247623278697423049045753301056885862908753957331495726787237385731975291657501532228772074204524830177901913915403415680000877244187978808560420422088790698926775898668371470013074162580354913588080400121161116822563526186808303279654639143849162399028617714403834075188557283615164506797540151304126062879264084638170358942322264797907619828925645843368092460731404745341956414033492480378928112874263773405356323957250684753643457170310142657233191843320283557191251333623679432468918224015609447689669600370771245701803387292121265685449262339053342692943825635910366769515131781051164872093084992056073742961863333026674552704853097007538814056410598103442478769438767712525552280239777009404191473668430476358781599461691885496852170344670025450766139500098780580778303011235604085622275385776383390610927276198712072668929899311116573042340028417153235257131122613673112160453053833296601659472935529795780813898764144822914550250819893444989245379888281084999236954004561695612951134780210046400528539501312541821699516498907452641509521115707533374077801936399963693454931214685167942352344645157710216525183395897107213541129574657708908874041247787168856851895207179881977444466716769349265204624694163743221424689209847738708413506078876669060562296984127005296740206416165005891645393556424108137086663974007033458538291505186593306659865573982581828944731826283414093204551941222192724925452649879782455001127271424516884559329811077608835502391782738972507164531675344972743354949134764055670077012684556987907718982379609454489859238081395644316126131285459865260294095040002366350887908586066178444402626238283156485965338159897907182066469800664360530728801308069786982310878595586008605595084743449105983492099802969501686148085587089338372318111044972583838528372071403724138689105587750431132784744620701166825224703255294910164202793016422215336312807333448164273547202358101080083647176657739863742747887165028644512153376430031545786440645804194992934739389054234139801500195678991488711378136831698464167521620352291659515366996943905853277987311876400077470466217784113041060997583906095004881318358208223645921173175573382572844191575315686385564820303481556726915359446004015665332211090461121412623884937380239952871617313149462503088578100181125406991087504065322696548838526295278062651980595399728222120067644060356757939289180785875419743857790856925208656272876957460540525447326394500736056970136122190384348082793523155472104927239027264659424017987235111228202391598982472570268389172681299651364267315932745291995102001670137433422460540108970653052614434894511118516781410183674521787133244079906281611262766362588831691049902838625280030558040570648144728761988075922786047125704969396282010616322565496307306956616955558206363526256624294387233165800735148329627278559967469766127102736076116767697116485067758614416456415777399543825822620764906244316404853958261191749521469949462650458357980752186225100603542033667990669738144776399801343712592803184720889134761170587977527285250258634887927255545535226044173946713151050041871753812895413987539953721982343671995220185429115168646753168336697177743538103830433199919673947993975589984528782398065601379475332377237618609638997380477169532045246251869018807337951770799932611874223064493906719817158128793545693892681347429888943591138072685460588247736913747434491053779660365759472783326981486342846606823461291632453995473441302051101739665811989531047091398466133997702636081994587367957420594792348169467173746746071578761266997806611925981691240125934736671118669772343550187190717547503191528606147407537243946471441919094409348998320358267661331042819409095063344539878663690142166318180019888533951538925910142413534519021838234239761481402473659410520410538391236482491442135252477131300556577924293519888847863901628213932952597205174237444502160250139975040665031652790603495720847087153619025298536270172233833155911662566950673447602731161686928105641070121916595681198007015689801447448951874953355826700204522819542738547991849459710730663638977557371332432945532317012249921719638137030437514004125481758802970163571729001383900582708219715733199951292035174815303734015512417175907208989616971090733595331807197820510053081325969907182458127256135378674026326437706810883678696298495148624647667740588015343133698755012523386813843945553624805511665915440889728210975717517317319293712787728633957230474436367057737691496569616039746975167942144171240447969379081325825652168734794223996234136930799949525207511019593214912982716872630604010236834663824169965666952986362667482241528257335736953686863572002849076433386618513609177762402186380924743563245189712983324689436951152905891792980406277315308443087190452763787663505065454538568404975078744450807966018488040899688264334398629664720122462225738916390526033064219328319296646066465506681865634093507600689277855468825773454589397692922196835019817277009521169117893648358751614309853172129261875349142990271695805500231756094484808032740962197093990785600416283626783312454330259711871792116431669911090808859355298281894465695474619181125681264798958665425507048668629037093448699468490765010712270985258793658366944345119411202999366827911808423812817404582597933885886310726049347973490069525284005622792715651513286094106081682028248778264326219769959910748725982354310161520648081480373670015923692916853676337625113036763172767472725628501773815976977692539108976298443044715243562642396015484307417799560566074334258350254592834311189024754392649030861500181744463959293893575157982823709351446002100265037387046516964073580712321966819567046323045326225209066021470202080884459854080494289068601102845654293454517786087023870592435223425098306090093894206810057591300654861171595620474860850947787592130741261393367360538141100224148025894164959479468468703755059205735033978168791639576877099069623536772743946835496112154507840671674585445996446993428660593559669539460401282529614067670295333100309963010946181607393894103721546892769008554347011597058011318967846041632807025731504598061828121154231179519790209465725426480481372064728035178904144592132791325889270700532428905571560591766579394320254058168144853024071232278451333244140703388152641172826754168125214647019886917313823008537118823880976788872402160043769151862727000312958925926581938671882253270911053888319407159937938229191731895912101970430951263942552174910930534027568630066624324214154269212608031933307994274749221313817140017756021904237116141112300206222006352603640934563155466874773609054730992469782880085771760477646113897492462739707218092765671798371887252547844145750176778017336313038609734983817011390575820687446501044494923980183512542042608299312767615305655609333038296367012958277287922471157112400147303770318879443209035958038910304736967439123787167215613700884400435380794199916862779397564568816781045920481617097375846127691258491746666949950970264090633254277855690253810537336809923841048894927627993658509261125015134881268306886796955244252728559697725395206099798042070961726529696499532721582967682841041698273410644059806711023509788813388890676246109275557486147119884974911945335882772007972521440894665105151359666633193726408137666447359566114903950489130991196938837588302160207465238541919102566876626882895889746240627661702271252813957736176747490930542913056564768733452798032965138430432095574243887722052372275289156341208275267832113914468726451092010008212252840873659374749946417477657791309671813524415623436334230510376879257208865404457660857765462503041134892485999712083057682953314241547585347663965048517930402520805815189636028199550211585910431458070457286367794541743777055288784002030359073667709772279906529322524275681077137425187077178955065337552824081488456405911064564090013772736574516893210739723576660589203869277420800376307018958816961170424107530747363424107463113211799697494773172370973924697315523712649003903040453600145248285891767995723602501635258061498259440397414461125246709324456999572149387200331236178976669132000684427860814650774125867785699579734687838559764088277543609198801088536926650528741505836429562057250304252860567285500698908790458555556424731678970585489565550278929698403756545501328809712588770629443912960357749320823745412523069866738959299453505250987443052009198478537721506016991070966469654299037164003476076602128898104479151408780544535320038088917220447278550765806169357630961335503770326663271626369528013966434574697525087471106173136094378920648977551985927501494336474603275362296275474603018669277806811860135175948715706333795382283439764970917267023290929129824698206046210639842112145722796674366978409542829334492193664887783935823871000957734614769584284607811124264005496701214841944452059550252979760607822063161515707346673206989577055735708753158314287577890544033897642151823550531245276289574663370338037624122342818340578377677838216035127789870311991164644644729027979704138379913318803650606777418887017491379741936777172503398067102827176981256444159434396436851677642356801294138909152316759392688313729626705146483911251639524862396426424235756272547497618786126312507676029592854880849439656247833203532819129970231584578233025101367227574503118502565445885664725402572422230414788091075043496270442320321927450830211600855592597361013112057562559488111803471565960578287549341873490057449958604988042061013302337057961819208156806829310734775971747712438466356440675674558445771748539068961363899743865396347977810929193976616308195976035496370510198185932607462423606794116415220888006851258278043859120758513806209029317643097672689083353139612280098362117934442461525265294454831070754854462339434603165664325203485518813516010627558401641661931624130273605500276063327408113147302626051558158755230874413134934949798999617770896325522035818000571272458365414481335312093535926956242070775249837312097746316520681143669535330622484202601182634441480903895692272278660849162583815703686733320284621253386519359853324094150593876495012110396280478440940890514793161108328995970332651174758490127996841306157031853317701121273313593574767425361990212943573311760838154226745221570642247757767015048947152984477335349158407031350914998857548477176447740360895529998043645306958101986790734575223796548356753574910291169312767961392540383283892699524875083598340902899966454558619808695464792348202270564424390435450954786679321573660595582693693134710667249779178657552956685749482895666410009391117285134342474535199417386262561077435920060923241193287199954133744296102350777951071960390379463685061191224452508769844325527228609762331741212737666671417131492676247628739551212252652658556625591486370022999479401283705890765207196017081890120399648630537946723549599710894239018347735491355020687013085663300914525692553838491653571113763785243910776280165751864201892295661929324703309789168840775937116187034628768150859101371716763364915918837974935714401345542634765985952373314675398520317637085047706263322591024784149582664191760424896934791441832483445455014375828487070266407515487678276334842404790263368468727611539525716563212058121420240598770072836600506761650475028089217428315843602600454478454589319402476064953842454049873031782517070989759542129886892600215226668103675686867815995004303053814182275147903112899122814029681113330005380134649402751946145781549510843789781977293728963748739418692968012379775824421995229978214529603269048994640133448200432202235901850903187391423879521272533863722442147613664254113539653191457585241051939224149598003213584147903167255260756543565062670081379753962059613986137311424353523980868146936120319936303694105604337396137377167547050228844515860805649049131336443782593423495935989779051347018875294257334713713726805462896741717943003983383778190179037329371947098481526283915884652739206759039864596436890674393011739789197455561570633786523343988025379889211975698712793076852922071460643139269356837486386751557398130214840176813960444714406967407036076633655153530286146577474599553797962503811254024651368795723634120344522340390060250026531181022183750204570440245024681916783497688733883562898643898436180014111717732501461829444006361985452833944534734002617635535350442506584367290890125711897745174011068891185348910637105538620224731254496751882117648030466449798899464003777393728046344077748039334712793071981791362846311620106333254695647457235425177463664870866531250931123794012806587613311039573749205339568295552332456811311495546228003564024754711272710932001100626832030293698380400068618532752697302990833733154832300448746116547822322926277146814690561316184721205068950069725333765271576941392642081110932303655892973666611985448099371051585707332251903975960183883769437459901317140557919105469774443572498406520057350930605339851844063169396691270714188344031388959781904032782652674154470409979317710322629189933781357542177019990813445816835903765014324174661108928252131982850920484701184320088323585164958798402494642221367009270881149738866498137170671960448307492258121960277311202887778845738484241960322755415909664945658825450064627339029700707657513020332161791438229375844327259338540507549017472630073701666541477708728402905652741569398107298164320762871302854533749286449498472945433767270528091849929487536361051414312050607118482834717251128316615478662482312053332696576511774115257345530246772350472354041688907958894992499724083254664214480732139406764226288676087877162290264978908005621431224431453047449622919528222457707267014557257551146681675157261301178687876336344445086882101141270725838766825801909832348892286553377676807510998504788981022635546855174126881902709682998254507973631750703403934110949727643085269207958501822157192197195892217349566718316471332512622576288507058948768820598299763218820125892743951509016491197287405804297376872450627816264319227167018402601421033510023675628711453961123049711814348806739992269475008284444871100778768905236635855617335599235502453704757805045703438174624964848790159671064165535893491622582714078956591268300220655281957487802350909080779980129560404612875449103272096869217917494804799619345051362572547196859079790835973541535793501320329224363370722116461848383955737779878054989512416982228746488990724106109886715219451846962050246693552631180152019072190134783369885266385601623757367917594150352217246114302705934991080598221252621408902901897290858546374367292701080747428993830939119865476357699268431135935333751495596696038895524338678880576250842110637668414536036460203637543058329051988674737399292227239839605936795753897770575754075224574039160015888055438000613910134562212077827605279430243684473674035758266706636698793405905530460227601546329463419241465990490060958443617412674110725615531619754646112757671794375417994174829598479005638395824267900150887900753356793025850733735423641466956907756137024662417550159494949832028310690609188341491672863969019459695792219092911769496605848446038955846016205000178424007474144501976944680675381711216987544803059239148813704640179177069514441311199997691201896295142490473051160906700901104968819589591891648266431595950788451342786936085823207956972800794090504532921442395328404423475299202974333153551978233057764953351422406543212621661203220923766094540498443314001276632328111664218652328890693688446786866281601208189675975595351319026409724842262981619330332573883682671003731488632824965728773801475275713873413523948009169073179145324363090217062409620294132828153962399919239514660806868570540842183459820415174447199705756826876610194001481775587824384969723383133221113808987906405810362259596552876035885520143479897078222655908532774369593988319552542083563132419756149851736284955771115492020827792433228264288469003003543842609123606200103063338437525212342246789890103216368322722074946247523611304161103225889424853189710841134677710989178335955995383640256197709633368036582761864601680544130316493962799673778070324279800716605768549198050901851956532462801333652297457240641381065659722158658670471753466687309140412309658280472686941757797584597791457904262165705778307512920805887338697055911647337414637767792129997352552490653498138704464241493489315487458897484350311964530129057805097049681293501286950528664753954513991129378666370570304420069085754500031507035408793827230607301973584944445645853798790926748828037926154939073804285635857206663875110001482431072384326111116305459618819364665809959806718639859997585290656011008583582146696016714080633022228942437057509352198534331209662346221873235420384964854117788877711756845287340400033848363371192732134152091421612148234185670723749708219319485135142611379263960725440813687153596291885110591937899693338904603559873824320814547672510285928801515899073241875738706436263899754995337672814355652408942301683248872754270097936972532172124170941524718699752129796835755847942927626070484258823932140718136110800819598453913398716874126718009201075012771654408020756730194499645917813594817301990678268595730028352774170693785082196285271450031172535017819446362680120483219004613245921937393785081460875714827491487991956256644905789201169723030905053159076663386233200765709916111362951878704347327528914006639611831953577385733146946503829596909615928591942031442862184005480313350406333795675398313922239199897250001909965319789579959455952736473362671801032440926148705936073860343290842287442697032002463022715451694873846797236500041647833674674897637382526134763500072588007523930217991795980962848408733128004975349265437769886625339060502616471144861514079381004354127077385750263066830643606758044287891676725539949258506165869009669052900377479011396984789246932377401099149351283982912240712131118341964845121130065779990730166634227846958349620564455226913301439624160917024101430869767256541217491858880249866072456387117675031524069290426676447298532891445039335769906512481678840932124614838530142131475839102402124416375478428907394808808553148180821692025725275135334001738403827851059315163898345683436699785562220625641547767796811979765282574532464869457138084384978568388531445062103818625715615174114295136966373047865649919339438545624783864383032621173568096892982494930255206351589228265651295258135397573822730541965217331648319533930542751526365832301732019020022896275619853593403349628973244203484566805320681496492651365418892481228594729600277549268378371147691512292781968522817867192745477381428873780102013337821587520057379745723158955745021990097972282073021598135771287388188319551587226891493368502861086500963736223157876392452321057987002040031130582647781361683919203370934648743652494074556771748253959777937634042720971835771931263776894626626362121336992725512166113166772020165647745376206460095984384842688017015012542544163317769425641144841919081907493066170704482215478909929543046072029619523384718489098751355122828802589093143224041897620238458667936112035895665749517107034578274183933934222794668983140031767951087992727041347325648508426899847739676558592369001646145387978560496720286058005776786656152662505776325713475359274684965098145416698118393574729071020326301959756995242496345824169353516674045555206824370303649405139171791004779799536889008041984575274096968676130219358699680761197093859962288295323299333860131148477715610663376483719448097966181238762417753645994584041670436459192544259995937602693030319880547217958227832556801486662863455401807882148226885267781864116845580911690146674154860029976241360938457326203016094692365000703626277640659641306578985453366748282952433481659594916240191745584368466569257837037805515345141254030855268489607726164906685260037443122397264983218558692483512107115917407394042117806334543115277555260316981972681093198467287179611895804338550836346624485141032747075843074724425835676283339059023511781380904164251247060952320551630028868949835589830002016280150929014139614963442909506817573958027984970385370201488731978035115548879822332248836898538451594675504972533066748196958940052216288994021662358257919531509675591282146656199282710618815468073189061450896019471955414973649810466970592258903600815243831657501971289975389678784579644517188199243286334711981099038272858624373129252576221893886950401974866791397907210514460556380449742973136753477262514179718461514064274463867887544128869998328741505581800898324604415971632388160239102248187313283173412065445944172599312435213287864258500811445829123427116156567855095056017903566647662050132794615224006016824524053573574738313409129180636628728282693728920410321770231959344464333366182293213764224219270511837473254643658265250374441563460916937881273758996884905213592125261599822325254145074424698981393269129422345273043021270307106756542948972575768740733674277759911985246194402664915813452519233646483605086042222120432175307351407861799036870861973829005101132183208355553385691852154148896856917589788584659242580032355878718637006009973776999280363370182103831182915199690045383201758622558224009827173057062743068319399467017489292128818226811525759401670750833350684369903434149447967251324110601177460953161902880773208377772624381203859585569690483977153125723192253090187446486803399774783161865631457205844064521577147850125107369826461070978988260076652765583686021566215790501185737393746981729495314004829392288735204363151161052574882969655683133547543279063551168913082928991674291591383295964257062513158805342769315772126252360880897087204208714515878497058654029990047804063849324139270472045027218416062406410330097443239332515572696346138981120523574368873336067925684497583009521447655067554927958309101800839554324207023627897108940519736570079565421407704220718134731155176384992640175676577206915906834732262782862038910595838263684935742678389989912510903653398930493814733332841417209808373751324326999325102013666639495388542831111790161175280474904581696811531830548616187577532277716943175425128211500483028658439566393530396744637165354316201256240431802755247411992886849840255942224662404363479009966206153908867872579420194129711305086088724102946334536542891073061195285368804456123203520251983865929303660104879008790185932291369678902285705505495186038946905798695588124168129633390080928632298990661832181208848676947048365826104179147963185812512544790288522639941397565291722687901321593613186725449869499709156585093806081920717513565395022198171980002485009741673715901011619140764626700478282925626318880518954366026402929485534578456765727680529861911011507876136098920394211503335718429819986521449549299084531172215630326563702954896456848329322954546681393084500663058577527350985879820446261846328868820068922820832301526299063070526314597075997696379431106346534894072908003862255654751150950994003924670526461996173664734735830712955772690646764254598752609185529399246625116093389501033352467929543918972614944849710437803455896302042570871726766871351168046514349962597272361310551151547728264504529821363330374053782841358574227973152513719020312260366338165272279599613798392952751624086040014151210603091046480051057465611463195549320311443214104976315089705838564713765640166702846706926404733862032331391146333579829254169923756932836514433496426642947834232885762499744388627301337368955904728398486063569730413686243383154321552449722919675641515887842472888281759017639989403504253058647531471802092145554077741062783899294685041067959661571967024634008006365075985049037822218927642717693267850075967683995945011013810959250034202544328444712588821355756077234623040736543293351852556261955728597806701901235991789545039160648782704171593223598569948828598630213616204391755630043753562806105335528500914860614188873513637538874948250224303715624056367238495290368680233888175854893474735136391791138623955058124218517281215996204031008844004626737731968984372088111254193063686906127463731752290866612629825126942509421104019423705890172870793839792055884838998940202025999341244760249969513906453083122251418504079574659467042671189498735406718691543928117231199805450379016958019955228452321838396633213029517968250498206493378739937808025552825338919068232197192862566258403065443707416354332133819980655970327078391221903517847344500930461066115486403580891495596817398223851518646405202258687512864100353644243908478581809106705303480672020376523065811441836882752086790177685834351405253988513043030919546417436096260205826154585221588490337334540414778034402156485392176521857584165699701730561736481268187135582626988704481980493839981074593062897879649347360721419224468740535002798496572407657567061759594106567168683112498509053054570683429351493697332469225690000585631361945560769271955380144540127160347101837453532114590531471350123896076953633084021180359862275517906072024920582775747532247554314004163407000717719675631361083250072214053341510354206233893859700463553495195979321518353850286598150413901752620619412386133119274806151132970989405898956704930363256620965069466190168579164639425147170206479476571555977305789046160027057929186234688098798645189266464923934806613139013409185066937388456870699620002291565362647490153031096203841540151954526958848388142782051233284363292078712209930298662584665172160076495016813176854367163526566790711274472018721666984017185654557169534420811550439201381754533964205198633537362617127682129435003427466706344635178923939360500379308751229633716880894533006598990614883720172324657525513543131682087875459455868010982835867518008090220857762166710756879298450544891386723123612376570038608231433162900830952036797942449009919674657283260911249190481586062809990977589712619992562370976436446810949458567200011084054584027218154036905922656139089771690227147776269579320093742378832392388139510278531503339923063536294430438517913770662757936180559887490937629567945018937634515630604538663687879811744048487541104871231961957965843292529243248161641016389712952798183447807088906253554677683856847796972886580757013860462483049723705688300262861592294888846938739678484400173188351306992319343030342111429032505262765722002859881838114233159822642225469693141297812143616000345793332056155760283995152926348655181228226974525986812182078494934873477336030563013228330178481648651899141370931952584631955277892640197496116436158454240174299575247149894767946883315953417937904928128109996198992190992305533480079681228665579875536493217319162767793598467793918564074507680574795386644980248086698524379110304291223710328841284769518077034331457610256396200813502479699931027579205501614560636238308184066799235059239645283930672377263753899906807489583652802366934821881556176847036959333482231807551935072516518037981393263039205587884991105735787777651717900383852898645776168108541035994274067270209671869223404213681430767828715493097928393570763851359260576941744391017823559463450828120449996494646331491453434564009743596442312682030491784650701357139834359142726770331064045426582117140024523352918538808261125882884349978359618757547461232307812354500514463182676635566933750121268747918431635506436017499913920934912203972719235767819428948616301349201061606001112294982598301608018871949519755302247052932727390587993703206372933730020575531015206878054726853027128934361068611067150706783797364493465948944489959483903338020237848326338067328949021096215663809480368613003782335811630438823767823804971866340586512112363307206407344599737157667547933701682556890549286975684338753316378945654471027219487952593299148753799346385219276066052802581934572209017849821784025714679718416989476472112265145019631385638192439040228249386261182168773314098802253660514630591184307436017761702334806372378203331070557141539860711701950167658610972321854080050798729808127858900536520072322526436655250778019437000533940111729116196335163619216635964736055890325230398104562284401537766636924535727598172492548180643965068517651239725293408648772722629020895202330860667911810942285206295573278534027292346626458866076194998298015320553460712896454283971426108201616124356301939422968487275542087959104214387725896613769701176753265280910376140951488437321352873320697639100381591416401011024504911138784393535596552547992153616950497072760719133813353740504693371097890662269063119967514548737990898927750636236463148028765470704149981433200122375347901426607329811748636202863799854963460326441737276055131190056829134407345483096390746181603180716858978934439285049265974803645313103553875571150468315522543645901337413270788807536978967976281396496221706103147938143411964471375130595414061902639162097205614981473045283139451515210746743878904167793816879180083347059405947952785496228093123687708782965630565405396086721854174687389355452249949755388689040080249381012759538118117334052170483802740370463375129631529960063154333277833851711770929803359602441920349894424613800275063252016946101594194160097307722271921042888066457900725462211948259999102070438339698779969955808886440616389629830167928748344941932213869392423481791140712592455420868542767265611641659884997459819865240218055685694034555516132945406154301163864495815740254134800412088369643200471558988785780553964127182822757056195983246993967989923463149231275332262989826926142788449029644809878569426052077958619359427812455543934297069046750362498434019741518897117346095565186841890094659578722758968291604222103117072734497331853652826055784678010881786499788831439101415977400881444236032202768407694009886664478271652366455024732120295714502039258850728630060275287356583184646599834797687754888844500645711959607891573154893852565281506773985220418688596102127244412717687416216600911906478177650007137092737763413291113136226052647643755319284011907581380052493755950692389996747483162670120068226231427799954640687251146255622348254158587622633092159080615366941967892578775710381376668176917408859966931214007463888541904262743718642408822315578782120578655484413858313954070855558570231301941167272282786834477197312078906720246893432510918195322234969038256213220855685981956601721326662910331526056651713445128748248237732883250551912426749142279095514623186516104611271079538178542994577858737983194114345270947601073105389628562770374846568143241078802125480806342521207098937578099044048500125854354291936650323444197053333082075297818113352714176241821355623126506865158840597651905109599283916426245102622531423805803836221808650451348019271570988706200339555834349336272689845388500444123265863882611548687709017890758122106253829764747515025636073195787589427034948646438397400561968584660735785118445265190468840498677740017327074814417252466270489695104707971196965135631827135825938044329182250013900067751570390130397781858002660095452026711168079074240195551368752945663757198132315383417043419682187151719814551957798914194318087480037300356560289711177644450413698312387099558865027700288116355254015145767194794914596077136855778645981630337527565180831409574149897278188338131495874415814866135555997100441879070602755260053141102812463070642947236498106199378622272540363443924008964936918808053716906140604385705210607353369128065145570527002465776349769186680360949222038545918742960537657816285532469900712738989805222585832849727757464005162816508325690507982080309757181180132747924435277609164327850815254065321975223464600767828492041719050012927608859949342931069270215614674434848090390883042836517827207772717785254524411476927014231891369670900557727071433489419217879603863880636298612436382218108887983716391668569791984740299870706533330871212964004132093260126047447618271754464117804732300708617721929078904546804858835314135371639761415162768064302780426255005300339617053029615900338385893911508499065319850122001367925560629449810445577675547611772352382455213769387303627942286348425469893542926521639012717758504504250523395950024524637436827899135064682279335393531554943999275286384537640183306166481202766660814178333466003022996456172881870851885530156944332457623768104745887000515955020992426944815868389025126551934338698237738447950811223169230290065886813661927203174612827042575116068538685501833476667745324290403289223914996249174820630807198853036323828419313810341393333397621271423024669751104901029078780207725304540536034185914976291130985390106842473869754018847344570352705648937950973415904478066090802172411268881186585563288091224697306079439264742248804976109457925721957629070333058192138289755306964501684488829986932680899512631676441245468568713756697912225099925200860350477431803033937691163393233189903832994781527266331557652762098480667334050660355419961753014035630728425241902836500471357994492906131997992760767894471964558087284814614780630204408605260650289752044106651363376187647184883821784513428231333832684499218982474794363618416693493191409583472600765375808374221593113822040308678439313222000751820059277725368681972448676100401289642860963702856017592679216357100540729190142319275110391968458319811636402671016680257270856635172388268003805344709567224979741985713116798882730053989927768969874551976576744178885639263995270992829973372642144561370881665802552654457605481241592543582881805198168319473259681667329974809931541599392710985090741671478511245279399737220223019166210996660578271976128003637216428238810312941012010622807196021253055387176419031671350954337603687737948314274281239187870867113380070307263135533454616169300318628046513243921080098725205726213378176181718401185186572449053268417049275347540164356033069723496442786699310997088559434839484581816397605036983743341552900018501825113891217326649086086076319321918705085448464174339552289250535773994936167270698630582321573947678257550648483485904885775364880395281551659856639942504494465741751942079395441778849209800017038060197185797742496898447070868306876137780664701909254759325124310221617523036840601254692113309125903517750234693255390165988294766911990718125191016796548125010114338666241213585358368361075276807253916960856400129960294215511609491099413681627000137591331246860157047833078300277270352867402095437865225469567127511158391289741931024919637140677937277445770682953893742455818612108532975480049235282810591717045309452840576358420180816535904752992813749604731416659308311171084503680298672199373952256833847942635368554642194230411875418186725621684739969086178604355193839280930397072982821041394950548247100386688695766064281436590371104470068882725242225932134231805226458130363653228449155683488715305267650027494430240825528519091247167653973217562554102169944690765053697755731716497753178766340147116392077236022103013737223571730351645376217662094778570143884307730018555764626079405271462429820889617672270199960013839568132121902055031179059182573988475715657119931863723748291720738003818925370725079298668120378735501297932372974915588396967020179497646249942384479788332297881059774853225582671456369084158389944561381489285324695625845439897115297439532785756640367027268700886738324403638412009404446418964243480602667258596447272799466764830864029126714645055183778234492843713593492619487410062527436786326469452762087408619654668938871754557655357592741194143141567853798321419141827708560729702094824165643698362319994831358552591140912171606211646797937282405440665918469059438734562354272253297176126399055167235813462458866779364231281321449739956868285277063617430668308334707181713152664380171996956637663550341287620704428604247868820631125297791461587643623698744233065100817147971110002346889568503453808482160778189767647062412668148676962300413309289370577011950475498680067263094291399433584676494209820563431792953499256739726731539061292964179330997360348782570053691141653544733534943306676031236534695954649805362314634117995046291192922849064423690880716142171711338413329122566965010442554244445647628778591872819037398314148545889091454881149206561156112349033759542829912044996829843626038638184256340626816878510595609581530168598354859539858279208881672343023677354783558579657127039214111279310857042756970419445704850111721321110601586239047253779840071810302938349899366537663035543237168106885561828350735400766399691167723253397749011198485869509411534081766991393932134608541773820850994169402952991046262531387260082986224994638795163041599469223058008903811563689462880619434979066551214707342875223986491303679386386272420791460428429418733189629224102861162557132372981923056210202580239874656012737008660992338666502264289142565977946619603305504521247277318320871782679331818345839416215066902139022366257693469253334419927849228952117122154976064384324072336209265539116142363258271909289804712847704377095218537981249061672466958806669397393432171623119435465668420625046286935593675946197180554801025437597092388018094321168448207920806331786895147216824734458748761199599915065359275937267518980534989938656659686230522234403453971885610217174175096475182847765161827685653946973989019744551755146330278426499108980831462156025614828302586672476992100959573567222491621252318458929651490890020367364218810938489099836222924519403990433253857778205427464972111963095111933417577025945809245977757558243352828227229453662705098859096028502775904154155411570565691253154365506727365570239935529496898363908886140984323503528540250446727563849786756213031735590948791180885297167320336573478943191453182678773061226173082181413742709604272281482978537285549588731909837945347296095900482600101751479895609000879130591601924489410670490796510997875849383724610459242085226356737310955444876228855576193985588890552365290813628577397900035088078697271717423336435808135110302124899691539292675393085731824454632789385204661485954756436391198354637190681921541432368806495429146867630135495201374279566932403050326413259460861738864404778048125619988621251898645719873458195850980532215440146335372561721714610414317997204754052755025553289865896035675180648923039836296185214106639098726585624000679324512527462178656496910698625877295019169144010999948902668946541317337580265372268144506583524642732255855292805512704175814348496314792898162537472304706646181753520802092218173126681488694274811769635583321245127481955801555149997168631510517570896326845013087866089924969999152334032844264362460954414318523717871415025522003381508434458867321423678466388837774422573979269235138485934747200219597545024684846953231501769300313708938735045768592459352271777006049801635593962783935997365469900008560038186316678761143070733706745430624548964032636104718910654871081031084360536621083340306553460584731967076651914697982737006375056101658493663705544132901184981989187043587115107513340554474915531548430185529335299485421117127834629427322960809179232518273616364561822816670715019323336187507761177917108195490457919216331110954215748340481449095846528409448911925845364139201764176290297902205059822958993042033918059873699580991116386305816830761050997742053067246309473335927326073809488101396785860229579988038945145269841297276818987866661281131904517086442650206171385027575452088469091809370799397791219555221047620760458161769231023785389128020793081394111167665015377422187217807422540799515020095351807835154181877453920679123542488089260792493233244835082660274046882940203382513947926203835545772345233477745611626094019373862807219165359259718341003766920261224454501748630657403479700194800693589704080354278455326658560916883388497302615079419588883801863130528316092799859580772042061999363742562698735490552140681418880114895155736811925096758714606157184831113392631899930020158291204474141207912488873149776056140511477370969619143865321233170781628011953667911925937530216699555308786518784468467748624628786661477647517799729936606081720602526943719128589260817225611718408898621454609426422181671028369883326192260226387357822462435669228674393056280847395375529866745090329222337703638089389739688571856957475206127257364562142013102671171410750180288466417823441693573237066201043292244547161200791926224152759409569577419163858651728419776507809438287648541957021208100217060895524296470313300943309238696731106196040682610476250254693252249575898695435444178370931770799036058674373920519217383887604676291124371472307334324810858590659197825558414185906468611040343971963744511869338120657186791927218066927640180818780806393961379004683441314248169960106420429651571999976661033444478998275764499920863311864333405863015772976055246791173669834591737349439892438822322728218964819259960697020617061357743359783660968259842716901954885488740815663066559047131757127460712561444413554310191143728707162016115470726942953593071233051069415270206745486343473464493857666972400478274018539099783121377372744305989820430897212382646838433437347740772040101543708754142080180625880652393704209935145207145291878257950612055586696374456680329241496724119005299811130906911564924799968332247652203377543640274623842979289654490371422176072952694022801438980316155886362230604537412086594868553876078204735247128995731035685045076200362906248565418158564808199141759755142608405853622205337134875632460992222444898195236295295967898457922844284505996138551918439093274200722054067003991886300371318936271045648081430901394935069707030151386372862295672757886550258301182898896891555364507934518477630702470295446235476136646791362171723063937608711552633247068015156739826577039761152928282474389557822464774175762881119529736394054028086007791106697022937275181834241618565003724995849075081788161482988641351329154217435442959508283352113464565137330146022291919335683999942639874555251765586320822604656295118762214948567555795260486605546727264145711789081909108298980338038705187741278069964490706759897473916503562865399560326307137431493199916726908867682002164319599784725139156945173296477593787877356986150079929542462015052916289852033909994189308955693963583235170855628201886702784452179891478557626688647992699098873804465927061729862234938627708130028975336760443729090085515935999951420255018607961839407178841305171208943245782550426836232801309484686751092264456804340999342349157976579165462514497612156681616821728318065390264925639754390194731963676258398687923530843953410840879771440306372117376023683686040780221271356521644325799709815094136664138833574655008641654159947738259521884126225224807436702584436368470249018021951151132218787504099017138558493064394577262849451444698692551618230987868536495370217093801312923070901762893891052327863135199361657575526650776727376302100892251438957409614813951657499456150879691664988405653879624759671028684574214041701162399341264509479579971538806986139542549616562043970481670719549795495025697200636833885925504664570484084316964487169056933782175486133427279036290901609765161082988467196106252845437571251119743277493111455861087207022386945700187463933607747870567539404803472196295571401097571109273932113502400459998713490432241903701284254259808476681978927280631851957239539998845238509096547544715070058877149603155321773745201978631969553789411037351760388293078584751950628603717226566753251929156593216625718631613921569132624931009473421612519495897343641541850066167817374204027283150383333425971668327559047446807602388096332184937161491510738160059870064527456453196550914706226557698542971711684993111285256780627398065952900387309006411722983247103635898871427516725632204686058263609857407791213050648109241359897447353443142345750920332112031690011310238362473519878495305576743732161571275576696999661641887668500688521670883258734233970053298391261901133270452526289865427936980419213232576643823155610293568996774356815733459648813400166671317257408442876773575187594991368568710879231268704131430327560673245721609499454338197359395305729644654366093118001236552676706730449742069419735890209631633381961373101827108818251627170136431053446857720815383066917688988261304233773400470644735056385033776707498701304787761871115591017895216161822991820907555508666958932354943891935225694470803673054176469640246456951325619643497306762452475369643913833071212821987946053590905697824665853501262396821477479057111909078296791693166179475978699602010854585924562617368889115835172576249808073250835643983113275147574567447563775231027736529588819297156198325960150209460284812962749934772059359896787090864341627254975015549158601270288062685399756515584018179936324423581276175027132870572913921111915634948479604498052576485435846636232663685361715572179010771575718059601507674244507062491453777403082388459414769038358879691976444501375273412688778281953646405017216311348199546756001916931651017460995989976342070585170675684559590029036847239050347578120543755985251436144920306440906170180939744447396294689646620467567098809264447051126974057249623685838980513605103891787816787658602211944586347211143401335077836153433731492112840203018363349468250260388077340822255210764396055678416907572862092646753829135236535839886125262281764869182899518599102050257493493097000621826558401443329555025749463830900315198334440955323992065506582349611164413942295653625146178759452712612378015726270190396893582077988425596563193685005653501072795138792095815010939098448841759317237054234098287288725674093252116316201749520563895886377276602837448046713627054784364434849695130848789238126205812640456898210864589452555499668057440622859694110918272447019938810752958674624945778376901229159265696463587242438114293696812046086859133754574068783864622589678401088915619967521537220646525095030029817090559867045712344111819308720388290636202365430094120480426407061461143031891199641299455309824642753337281636384460712751308622359710132700981524706981634566942121127921640496174737453607135423887936425190051381150394763544970462052299802676451110855826545874569933797443198510223121032455408020721306710490938518027710587780706252214411475946411001913089552048252389245633284463814268328559544564341976504334360207274859582293403628248400503862421956276092190339153454783747456610324125259203735639817477448894670592109459440301710686235903051484013770135585011558008655667842899364841385055965788119828250015303416764241781057431164667697899841793003699344430761581674265561073515390985495930711895832791806485825525160334138301089363465014495997354970941300558519640834293726081349652787131152921273296969156306926426781329862200977335875562432104148405949215679292905689477045469550240271709948451592644393489220212600612246695215623940165896449291511100288719496779925474614791080704459517404427508908623494013524315406491371390524578700818192485357070775938976146346211108884176436932049317360763149813534827651193998885448889731743337050795619155230361130124544987429537936926649249453245381418001359854663593521444091465520197463191589075446209254019461957913078602634703931447796535677708036571252340818806228128556494564939406029862744467235511573048454885152749131148299416970745630178976954971663322751156387757201471350003539454101106403692640826802381187067199747017795505689793995448856175162954333353847182501925820643777329127263052981456821329691990770162046127111763022725267764833029847486516969334620365438668557424837496743928619844517830270840091892746259959036722284079326709094081749674125943352368395822198120606008146312200177756598268932626347780474724564310837574655932731195840948328356019599221913726493467734639898149668842981569015566627828293626681889825127693097963414550302785909579255240755684151812816043047360700779016492123195967483939841208652061578088758766895555388956526954891536448357861906620129191635342078962274872825863405766021211320915941006181868337100949933642107451559225042484066776693971620592897307064689940983720164324479897799980855753306621218860708061490968124649418110459133286718129979796976021519311737347394290211597883757696356924917633473540177808454729063757715914842140361838187665641132484027807023309360217320755011321586948243386282659123021861396979080304893295930035460400478483374632720504048722286249745617644264989702248462113083063750192626551623187306968673610572234527015853902820524562493291527406217848265044319133325110542516167245201452933019066452358711819079113977126429653737177885038499818804109424930349114839491266820602739035146084013225550111601830169597651464932032718796029287973451080823151709001456087917109864197424487126588792439933713879189579563861957418527127817770116836487623834516076768621285754705217667968144936618590121664974953460784808925842328194250025353406079116990371219908835877470315287644670614926199170951793601471411679745187486634921102421904698016047751183253423565049342911548307949887940352795776306437413185067849169714227291520568236033199408064230486275909335142063757110717875642558000863456740306819721848229196676740248336469170342800679935489975786225579424204285404114819824427672588656331864005041790918847898003169422536290874479137655269548221905768578888991839894521953502320342511166006093573237048772232510899858271886128978835751019485712156840720522277526441094744839038334617312614873127087544724252561697565981480141476844222611859185324279483274992150209404013360892447741282579032574634450880467672370724449609846465014891023719436470264007545695825497071741201435681400314923925132742866620593516025701497697107727137502622119867544167216632453402180690681897702281652676388131043326134131726378028921238301466358649805547822145621845115838031171918617190781134508347320452611441062390530598713231049019490272299984513234987132853530514773965264504108790970826540574199289579459047820674911275238591662631524855665408270181950183491470007816735279386854708605249397929397800943310982507648493695445337446868221420997357344038835761072134340010291958295917664796167782815647179155804876420006799478344008059857647388832486289427054783338988241473017605403510828821988090596906820342301094757244341031781072239495104618853649129255635641847364780072449007817265126387846034152424324776112305836070724973653184900204243524014094848408320724836275952302742263020258336314081259914773374912060600062122042934033809195712763019850926648988793892191605042028518681337618482375162282249869829246840568404906691842138757948235578919795694684246123773230755637132368697361879180038212626783750538319604377284643177270168334592882572875299656841293509632820941511934047908380314415298374683934875437463128960493596142087972894583363575414463118557383004097171883264253164386757171730221052214101122568214267598113795903933533657307509818932738077959671731683956691626924339099031863468349168858407137519519423765080687272276134015675277262388041790609225668966268830514813901548004328736970802735806179830740295233238769756475348822317222846973931150268475520023121046499877594767527345274769983292164220225662853941755101991564003211575500914650490691903697230339066327848058516699972015593990545296747878399743836135634312732866370403639881875363868298709235566294702707139445361424994854598427478602473766249422479489272394736294369391110467359246132603860802594943837240814562217050393603344349814405275818732671527004727144501556605496131581433060312478092204674142202073741231754448541415010343692993784301021061773838274095043078089666087366394648188829643532897713095808106053262378581399669859468587595366878856822282786858414901450398055789704043177241352258866200778372796569399704993220914751667835948635132151063376807290772821787309109498510840599834765586581320201741371475595720225867781307102870572893496300346732687448419411082117434658050992725290954409418429711813285478933713093169725840450783189821106647909374426209121013014091882346145212580648370871946909625175555583021474411016687763803856569797733964534051719774877840743350405873526377616686558786374029582144729825897280748888092820274045045109487177600267990764745890771467501191660711861263428732680317131822356389159237797670153638280467175376303827592054828003082721106893569701296212794546135817991327572980924165928513699159119654824756962859124770169842345546051058610062274612320428820424032411217007676486001493562131489769788405988378118884400999853319983582346627919843564277053848005849949052182224021827650854477483455081676990787271091223964250242852830558420266285854412269493638641284832260312828343279961239981586844176133756459182714644781198716342754537563518057526019693171794430004258882869726433580696159321058404117531952046746295353383062437395511706223012826483756817568700351378191806866440346016624096373790666850726407268782018250378046208242257621249196367818917105301026343830152396624497803497060182669430778747689642864973348993919253930833400012704833540388429549454890019627320133324128692987108612982170894758257515749272474043110988467781802286675784907313160657365006058795844456281364863853468701330928703210656652534126525154177941217951179184473075147381875578865136564074862440133707217147805827315781460236277793437727112638627840232514809948855579123302351426017397266971659688504362548766623580068838795647267535512356796996472947891750126843836802004642283185581723483216700697916858165351794151227687691000438043819396780361893160073387014249063851378456481442036613071411878646913893283723520312466033646781355271247939826011182393834638604906720393128213299570927696993685762273549627719637325438475893803405700924088486947596605662259749010657665207535544104595520779085675675343206642181344537904694128937781843908146297847765945701409729150280665222325662866605754667783173896267772271661292458528118888570548241526612839302341604110402331364071546037185468628797975313298082016128643315797036378898535238833862232542501919783171754334943161315579904472150053988468215791475037884538944058981555873932464647825031015622546169859122523232957721232668059461607770718188001260198537428549865796166297302889375759863590497289155694405234625730990408697649450438218535844479876661497910136090265196791483058142145605216991288403080069796912351436968171603878269484589210041759170031313252509898121940977439813719898876598227862160997985633777657386160936942202148901911236933420058733071195778250746311424453351416267407376373463037757810380712102025408821842896476384267379045516226522783559905757200112654568346170194167447304370937793230725629587313747870574991149483908589843661910493289161573336606287146426240228557383494046785056627194088865823382329870855088007475691549231705976105513856667197065719896248214876303256730418601811629321067036185425228167102206894198164803088415278686553448848291193967530428366490301019744635843808165595839139370157997641141025472374224912689879626135189517567647347835504636909595184232317409854793309911925410464157326985378786933219811660860108597617976831238693047705408448256646762304086577096601278122873978992371726159260991441478802098095175310218903134508911815956474632830575261144155989732964610774985507766815716621889399533738677973113539345324212396245443074005211429914634148218473165851436493659754741506534603154725873056277984873924018548921442673505838253541579690403719619171949696457093295993015356988678107082662597014883273796058033257762562228515520349997818955927936183742681794541899914164364420642489335415432096981132084819788120179782715483771582252190815313391295317998745463129620743429190730256665208648894893229512104148473881340318347692464527529601666484542160509587214863391991138369694050947677275455697717108447452988687706708892708849188127746708467974378082348929884020691851289774555321624815745800882504196256935022458465298387390343025492742704938584809639693014849694900743917644054199731913421942674002941010611064663135708521054540794780727463470920100373620006889848596195973080388737921359403497007790097770784991008649789456481269958637919123105042591535941939840107114632050046223288534120408535185696079098179795437114508716349073622925843945935959002738069768211052033309194580795911867754833746732533749332631252653857636653793255888414443638714341245672740913385300701477803495491939131221412720829153492590818975018147682052662709983394760698611273787596508128268378469832819498455052090664286908850845452419313867488679506641361167990452263356718499117591709725062328280040048032492045526994262086579810924680125189594870499848798449407850968922038914705537665433776952330227652508386101252462318146234672803575836075053280016690340176335193842146058061548765447936412670490422343599891918608534340414973288049851209247104480065921153219569741726354676627944941382313164472280489580680396904756549836212283370111599515979557791319856761577668863406877659108749472838712613411429344965843198887394576054153336666536113704757760616214826592120674895164616983414159005196993134709793007926834346016509679947268724840739595249110307991950918420437730860005919867376301216059953072752346934733459035888759579403257509150115211700849025069845962657186382995040869865199183287526187570123867946540122676328564290086007268898851294851159266868086117410402858460906939436270582699181740498332525762539349454629451419974857080636496798094938020870598111841459638186067152859377379406357803264110460042653898016430574665402253725100139504846717781153175003578884730410939797192103996747275677064719910453174336675283654570045952187130208963064850593728541866425736417544113953912661481537130775456868524985868482139271247112136818410311369603401847620942442491818920643678638201900481382601467846585636531576551648180050329373237951211202808819695124153876344771779374495127445667758243199236439585700501174614895891260268193756013287046735254475884190790540277411199403228339660646471928777299528928346065862138457331503975616901763199138229793391889133729757093568911330217377430096869398321129547562912395308610116370977872362627113538652595359512945911533381886631817274437186938946283975722479284489882296656606405121950835312784451586452443550346089244688048684384210097088839682383245322714098155677112599341684319362916244741768352558393152490161547800061732371427225814593943560933439998445062236932753236731919965982664272386060541568715587929028497212401778671354419481227842708544344207046552142294510967266452288138582357665245460594076864439976309813032126850827969230641454417643678995468154484879270352323736253263311017845617928917216548480276145686928828058837307606031484005616294751845896745176093338185416770347233536598259443816965350521313922233320863854641818614377417273553877154917183367323400026946996922740076367030779152235835087093018290652333954531869622136308371255852547861661756083557248455366428161704393409453653084131582529463337982712589317656255525095501747011546975725872386000466546980259655598536472244879200524428767991646071803213271167110992334329426516420025003135363469475781198465959443808256913126764712120191396469811889079554012794375450037259909062047015307899495241586986655108248819929077006437473368445155875575595333999485050815454091368839985623304468173774386661911980357896992197260108103317117742011397973523987937061732729936553646125103289240847672352013143901919760421647370099370229332419056048957240702696895456468490451975391747147473167345357713697117229616294806680494678179806591294162840072797868171913192032946069640950218645034822627504089933387565060440151844330868132209602110179846276961954555940998125615264559621782404369385673435144451971427138941655402484758184336797373740060898573449936750004382156305986521780393853997449627606755503525037663611238760458188147223174706016485151715312123356611592490691349081208132745240013358781322332876386018884988721155077015031901090390766247245485360081403951553844584334188736504684864268236259550983055252135205204013537539573329521499484515049160138131228295157118849324235515776253544909434855606911256949951491002393783036520899395031897847260916685461547134516822679225954782023226256189136854325583189602690750774976250289664973485924880170204378789795848178526274319044810819338363389841943790148787820007656147514748109048295567705197683750086450223742751455609746921615845556886178639165660100389548714825033688467867200882144151362846300200100717443520249591243108373347925298187413687492971282463602578295487033859224741178624447203803559246737316468499680400522976063935342587056237913474281071319429821908828396781917345870285587568241782969665496941059734618358832508460409653435687959797684306699357548420249289383872295286030560953218657591338806206010743560384503842102080183108362000298784402284210502840859452779338632595277785350770633831294475652389383434861356457550432890934243766229377811404584096299397447915336071398767536648189971778089272507503560070678649448734648599591640951166860731317952280343587673088164491012947236006091885221103858754762546652577312363514267417045236370518018917852155899191816787662085720598565665453986759109437934887856428506083285113728214552589846612986402402572142205086055008269184101683724442649324015633458813709297446011679317384462149511377070221590083307745053021058054789417875108439812396515240082951793690123762116307213562706609907861071623290662342015114366698160821400409432489333409376554232433381840784892353133922955736702738717287273409375861364133002226107853268947011231536237040186825407453819220508697187977220383266314912731984380207680529310415260898344019423563661061782742626344023188376704264446834180835109245665927491341641975390512124807278299082925573115400063494019960429742444436944929608530298108440508409514393261966205992484536855661325954234168665052703435194609632205711237653531621373965583933204962000030800006690722283632413352723553506389525717224404416381149435480108128804988414048225491086149034421811878706759081916201814012824669996628262165847041587753101582896615571827480135599963578875278492856476170120092529613989887640091654243330716545576496178259551375957775205914215067248997990861036356786845034343956310006484633676197537247237776198338290869645974069290460214286080537899749858985699156897041288860398311697836620078427416884729650873873649928497552063643203841128477150733493102133569653113138763695831216426841517379032427690734662337382493604614487155682372499663801859858020027965967511104930202738268473067873248868546229631827803736835332383990403765280864703716247790134391762952129237542811433668973013882027153987267488560813690601224111255084576469675457305210653676928548118611658582175958280801928761341703289400060195793936930488465613773205432459734674571767639544345596658823242210626683605221633474724923662210230643816908055181079347461789626885600565543015490153441863672957293352593288004573939041036221525959536240086877598177598528968402845757179028266270108033603224333719019178132895964121798914195639892243676633123042528640295577385645283121231864689480796220411291547022468985094274460278267006279801586108344470437408904370867365108390711824293708669561968556684933425120453463776563007316878264452315746828041998302269829559504518605415194787804533001539641641935573425257162625365281046572682049404681247750304506966484729942660333678722022975223646042079770422261351932814653212212638639087403746876559432019055040180596228644976951882219867629909201164927250919364312971142794996798154958049045954338540079386161393845740451577430841467526794847442558705598134596599492264106198005794557111654470989746863256505346604966407834608684089225689051846362749462284918303584616791437285191578840058437468880527576993860236867266400606807027314908947655689079883031846618644249465754930189370753158789647310747606712051622828574627616990366964891686922788446050312354485464724575229942762132270803729929665947645319761091936977354930042813113394978274320338245222284908279527719440205084433408157426939619907300959933398628674020298780276118740056005610578993510253502611926243058266796148583853479577322981074808876721104478271151099436725224163475555915504660113103716602661832353336210562680491913518363252695401457961927697610253298719619774254169424719014916095379366233469645859772629842006639760163411549641729710654160325292250165235294908542515278930742892259766307581031846377067534503253242955812336961275137049880841280751118855483714727025239269612622766417472342410684121825049988019689505941883147534664085746758859232155166510467504795368933454871327241657585134178103425260703534463233784821492251838157758819160528949228625709396130214186773666415209213970411683093986645845852909794084322799623486290555123514384260102241560446568457851919858739110711986061278630898705026014389567022552308657770908129384357057963805770735549477971073208481858903354174565907048437444367866992049197894163166374294298535354671154946035871211973688175368787016704427463849964315772285119428958265940131728991579222948016294730871134425843771446590263748995599163273881926528170119711603872729432099171603175211126346356297903531044231940590856262863077678961039321330637244318174300723291797572234482008198106495609800082646719840226075524378809395267261446408490810852955613563015944634657645929722982603291315853821638271985957008137207389697088409636648629313572003811103803948381782289403001164651809642306913981389613539225444137636307698114163968576631537692992941610856804795439087662893728258452320602599756061487071404273771361851175975420317852069304856018689872154681848317421820987621191079708815902678785722053289076424484090967617151816100204571040910158906856261118518463610378399457071081030622036011096432855245158266884558065110095523418784448073406779437899761695665453308818669669953226222611307081729752938757875895584557309187267733532009032443131412986809750239091799208549087773531020335506578272477704663175436645880244532201542622819626337341584118281985437468544272934949920661843254874209114457603010122706902900389166245891806708010673869344744988159894305513934382593748211867192146414087989224092568945949029274776110858795841780099852397945948755462373412775160834229589900185242843058477424750103892783164249603218886957628377718362080122628280487939776211914693234365504749375392280103413549369815073754374974033492307327427630405165431402662792374376811257875475658378526464315129286648008719172086906077886347821135052114657002898488483066608482360496383113475925850823023511737650726160397545799925854434020862713926764203212228083361476277727162253328738664197915850844330846853741173509793317196329711299325784543811264403378051418187550722656853644289128354638791330076172347310556623002507583642439663341838558413539251103694836027049048313280426601135184415164042992036622447004086560532258650486446218356528381605574560346875348396984042892711880415139988644122137933392371374657895818037294644708827695691771681656143253771136718819671777677782817459196051526579079880001353436469220301822759642683802187199702033373526221551534346514209211979085326973722244356029759075096442169294888141851769511680054893845338285794811605600636030656381988049344257217803165753810842454606111023817923447692021290451529090543080605830459896186390128842306136667030966181600823163743845769205849568779785595510695038862511824638382326994894826772820406246897390928710491647858428002920267755835203359650827986438757120650459513006906647277587760164813654995732915235675295699930276398128570457266038069281367723919461257094089112333019172642585891821740266313582556763081939217944457255336978023325353300707339217518654049513468082196935716126456590538308387876884901964456700855419412544940330975686107244236414236442184389812832015736922483473500940864150840445638467427775161255560683624677860326781342390916300736122449358932152114915045063115453031772600487177122048075129393016207781194747064947260220949812315206028620733002687760325924655286117292313558147324304508036643383812127022143315182920156730848686204239365935595211981658439536095053680806644582955804573991828497988274653441288691508982582873264668079263087648963110159241340109810044958573062789349048461459971983473504637897554294423627422599833629606490356653524743729653002498441535162495764130130323744831373901905287189244153454566145665034481850557549710982780001387729397706489257606886566649801746818313744896266787456823452727529933701359950736109251974899496763432841162190970477643730940034446042584044254931356036479551082799559060956754406967959250488791017288999153385782405155914720278799707993889749284394234324849451181959466660904112038638777867147059177893248295811295269553388222017276774020620581550073436503942996500127031652219082192860950276354575863146285595658435122769667456147361352701593491989218499859604372114306657708725521686346144002110012324685286841009968178290395892225637469878993013704167160773531393227817041623547653841071906137942460509092760643923323824446555318194387939854880976068315911886679170159644041113833041816515939338786456026825274458472493414967678121715091432454978997301474458881073479569610738011948006101098227114374772903260718961385159056814848025848596463759933741498057434408632571889657805232987206737909402708329531455117971341441436516133100145511915978273023657785763906743902627593783588445336150676323252541719612208141709794230551693367917605323337720178254527083353966904521654283295653911299371328795216045032778396252405896250447192827483743292840480160527547295734453370434426189926870531731216259785403486066409780553656509379301351095367500858575634234835610173159424505117422809098040638942613179883521412185151539908381229049807206133128814152774335163233722140512840669071833381705379871390153461335081022996233049091315034354986408293355681934626294055511391226199522221540053393132223415749555739500467760140635056963244717703389284867661743444578146125871047717080101281585494044801122695262682658567417148742686486459901573767242594276255146704478913636395869102706253181979481430837465142545626390789316864334908616386426422616226357128499150073889301248690156614300978992439274329599734392445750897243912649133365971370999355914263811383053873319637786615196181347012426912960379181707372283271456910255815502389457475080474658319309379791495566464741331806586967124695280854590062239543901130973164124623692077838603043545106182863215045224040272562666736459271361769790128308429407634251460303266020953647626064714963242314782669309054821013973690374046704388225082228099782053481012275497613020058912972319235627165381119910289725481346924723054462583008455125620705283047747765337932406582174396896417925681745095115332799971600996671184806061725822191551433339402792296742111541503524709000808560566666489247993191737123817258888959435710596974365575178020651930810658667058365496935353484052061370903970495633288229496251069989471556204819488092593305303159426742027166817133661268269746301473418177476407774790244544465054961542572855987743960339085522706806512154206464750362235870335100434773550523424220910339964071527404279527286347190272202749404417122648320000910712670166578085247253207174837352055951517054558761615855414925814295029671055164011916189342693143477419852645655061305059779079628211593583836206260164313627565324972893162961598382984210866514967044850396513545248180041484754589379824205432982392252368958376488422361819039481389916327116202507538461936607866546812531409311482702980881107504321903588832226793223037789380761765254508640465606552669805144191862478330130561299678366647815236371130390721676650151654829775962719754406010931350741069096585523273618965965753241847065598098950778116136777061141751924815605464159776038213509634708118315153573687078844318038447672445926368598891075082329182045682724051696467177755196976452525750210251226123379270554336906265532470333208849663694631708602403089600984286561075384028666084420524792686010836866169037810653481240838224601396257962817609484632184894858345896808278453295048268107375536072540576440037076028334785699657644948978498056925750165346308347850642030856673482367809102129940618154411110476570226214559205642267382938741195425155856880416539466001797534689437280529940822765758484407202461691737697236976875611037281174257869951938669540388516494260995743038022862164148187449303317391774399335440604273538711190257588465401830958928756308345024723434236554326104834980092862075898890440770401317794054070963580406892586503142848323259399330427109434368834321519915217613142655924142583267992137778743348296878812302362547830603057210494596892650587957516302270886144125661507151973179081555997763181922311704451729697819103546921660909812914225093954073589016202748511937104254434817934367113154124514275756027886637492295568119232230802520868136131324816377419710554209139975403978435787330427629981832188226329284025597143368855993898363817222215426052065616195567698096541201135239318539861424709736207179568727301059816320170554592056309277321249370430103224142496424788609767013545546725687948996301580748598577509081413009641693815706312123966859475509670971494683244158752915240256583403155205776446806952775198640838826811111081613568215970515141964093468291781815503714096365641617381052263990607224130965175149875629096304804514148777206084697924628480320054085443489683091515193146589704103810029978400801053045124053394343054917494093094522691269391651035828318596246229834220063578490558171706648833575950833677288279092382839740965372452786716282981111930090677274045435846860429387822029494804879871328907737880386379612504039213382934869835351276441161457152692302356738585628926404163351722503130554206204264295177476098741566018919671027040383625998657196619337055412006556406287155667697431389467966457870165909643380293957250623736008992649440772730987373956388726312694655038327220927651401898814038345723081922470712761943671032921374060292555878833894048003601724560020929656170220699715190011771936664024933170676848294983658562083099485195091513250934776816426174043440259318296327626689139868933492346370317864075149784675614525066380362413547285597454090110846694514881396478116533832232078094410819300393258342411930081365093215783569558333818324560565341492962390222952586244169350557203492109140597569060404074680211856700587845168216639633271656480063552399496774507802799184620578427820491937795673820505869916477694377005899198150361344614708431931672063623837380019467197926056525739712552736359331092942820735887229685963848810915313749806847682059667150349880600725326609973814533519758866031153696698058230223210486835752277252952405548906913481592569543560232437663813205654143744620750481804657529245722944907031038712289186248412154359503152934646419188393457494196752893936999227787726215906495785734311505765548980966230413155373597862727714804268584473788567366055507161297364793057318102404385956516545389720141529924637613895158894219816558649356520039649452221655918835165468334950621098611507616422156928034319864169402847735539285536301127146766173890088603656205506716548206638416732755603273016863043661372533303468082895161954145865579382396971823661470810913803862718674540138179896934138380137213644776558434094064305538117071719651752546482575545139240264687583267827767347247786547275556240876160049646418162338132583724598252280116506137232276678307647248749871782569053857201014252932760156685711873926980601826560868294286145269435331170746886777162942764193246664934744641145872000778875868889736627484954438379659018435398518801993995039842907770677143314682084236179075352492986204796253345725024236981314071811326344910861081990850278010055875214217926134578497886628551557858153965181008536222881062375539544700198944973510622978981077061102883962702792141443187145955941537718320593367879000526843203072942537428692635021929364853736779119124934745144343346760312428193404644923681516118349856877611775500482452848600073394314459522908269430978100164926968573656273920877150772485695700509169060459105499961467657599006098432457117359862712146362423023761357821591492064232666675734083362062995108380696779432643742873709132895241143226608893294063143120533860861625709250409898584130357188030117989705056091062813865858735469862978266497033144399651258445678184870822958436392872144506542624167738716538752319618991688959540156789175313882753178818670868382885629698527229062865492700929233107410675202420404009156542020141700527379864640777864591291054565324938811999399868381982019463642768042475219681953718248253209864904825516338371034039811175125483261485741032136628321634982823831770032294426253243081092022337134168213355243154692983304001002464201067717327333978646607937726384048569151517840295117543218059154620316352796228961813756842732489126945914847316238203058400085014101811076881349895734427670266858346156568470881572684776143988030674047825417608213453094664803896461963333845526840159628383729761791270334482748987486007950027177751886817086403032832391679671515769086992419247376604224667223269674186072438696260242391697590169718942553456019469567113614267791691785754873205401534895979212700821273704226420280675932859728288055568620008180780160804495536785935611640266280839636043257308332909592148155121176446502036517496951627894271914232424911621851734440953569428663715990254024246063859893200596812128817558539381354337885512544178268700696155960904076689680996889789751762285969802164105407158970217030859802310233671538013750335145862915394129565654139257373391024459791914705545911257695807545327764235805218206830929733149903645762792379895123107125565990486523634503390038676638900187582045638878984405508648318765973520186568807743065364383571122852597278145024326480361634880600858725071719820199740574081999615205130222172354705468971413228599502939726797995632029736599966839168552643891448187487017285597685040601114312156937292393393889042998833526969336975842864197395249476547288618082256485278387434344374071319690376394399371082422428701049165971026862077462085590549287363316537720863993817875880918770644100166488802116267361703233022012386681712057785434841395966027305017353961188279384089036357750328124143582553334105475869487578624752528569799075034486719286549819039377750760102002004757927727891902562967520166217811355886150079176977244521277612289143504895320106008334494576545690479107234992685129031992256045984018116672061266930016988971042388146772370310365315577826470120510879189979264280640724166690538943795373797351367901822949375812231198016988247553556281701719804537816512290159813036595582285233880728091733694155107110923210720620934335265485368394028611134471904471100197076464152958960672006501518089214910214742973805683089704813475249762497527004823512927514559201582289886959478677277751863769812276737604191125329047659581554043103200363894251174399551200246934368180288813409499566060583316322593928378003983271593628494538153686967804952429940358075234611925426113012175869482032690264992190266215595629362808416117063254176652367399306497921652374520228550527708458846916851737377531243627885539838753631970904264683479069286425708334524265538683301884989195397594849846713886521517566349903438722953575520005386049977796708985690350890666330457038689190828265181526974431127931855170738970175021224820958494443225959979635353251095758263662615852857851013430005170185365193355865197959228837267599286029531083420508523128633327409348967800046444095161469316354000583924271118763737837577257034276081346557203923434682209775555395772543019970831207732705724476775435654872322623451333743444667848566413451721348904769165035856994340686774791534442210255944133504773648107635572661066783834560993721602258541935561024811063519439488967623772951392175707600403140174795103299122932784139034084060311366321297183596305382109142792010219191681758687193109025568573344049711428317934675543087188948933770601863618504211472280659776333262414605175528830421138935017416244340734425878598728519332654417185461562175679759411676263000884906501540538907862875066484057985622238070069865493300151842746672556539594152673522360043057843553904213143145617524806580414043764228536449174002312482572015270779891191490215514498818636905325399000769782908859948562335824201245632025348962029234181431574637617849767731560309044303808555813078908814910743514975688505305866498482822755928039728459451197639143323583446550392086769308318089747292245608294715745876907212752720299703999668612155670584816472253332664439870088020048065441126972719213956296366340796197710942671891870774530098498063742865108180366344935854270610112836770492638078652468375486766025877776407114844709932336200659142445149978798486950033012928180220250516456607024073334204571275239525368784053382991257252881123177425621664723422904369296763091814744575228579473726958655065223577791068732055919215081093105523739447111621931316389834335014383228287287707735989848771849013287202245229773702047642531890084587701042226670729011181861816822189744871488265688246371509873385182513936159926269962981129590548328190882804873245941919450996909205287429161437485384383697977173002791493391523025985464291349868661149143959980692964160405926545234980123414418092192244254362629279538492327852354185903136529210696729952280906542846231869262899735691576509300138814461093647162584671821595341926008412451865856494992352693125454204937275080527581245275877177416281433120485096196206406930279367864008777286073907403740496040607682312582458340282255272512671867153811839324693932688053936707170470107874067892444529771257032210705359466608752642500071582905297057877296614331588139648344925766934970498756896636469547501519143591574605616172469896337025784307937843853356783446322446333943567496213635949752876658874636929780509320299277116053382549131553737034308148090621619715571544184589941162231823772562669292872518340441458345419167687601360086625227848103752079842551947743373511272998436790530165537596860729477702711782819603319366718159884127469331131185196766683770342951101589503641582887489530674060536428434903305421649888877557325290338114719486091772472255410167760004430978319955950296774032726668399482022675323617419742186877064641948690797356119056065829901177095789752440844667225368566507271777201396195339665176386366551364534565832469750931498482884103027547184611817851677282808384745434198808916995682122356605690311897152458090574691295383958830272820777724300023839028554907279236016276760528315583426036423451919712657004595140316189840833130668346608685862716469021578853475091602301133336079238199221246939014378784961838395377242514378180362788972860439624612651739226493437407893951474533697522822073956147450495813222183889295569178957961544529649508290624036220467171803285518392903555417976718842612233933395829655894353123259525979635452482039544527655515226475234273087599680032238273085137992805837801041210460228291743875982302592273721127152725869995163886715538050532588134114930022547942186201894809263596667201268213881022366969802541896978188275719863901165025614343106979223122349150940666443647602101963929361387235364727615363427574376446001557637784579692886286062983104009003633245490278974337685159008189866752534478098412314994874852497465759764084195813958344641596296854420393792651346140244857183613330768399884904267591072478239331396754355669897183563861305161139486675193787809590366023506508177264327830117212616484039047918612250955105938243315149021934511473476226596816936140676859507526712495472584291438320899282086115405888754368261967390165053106177636238510539012637764079399118413816339985961142296178190913666039859875664668795190474778126519835231318721736875197564712175194617360253905068646633547755482608539958449571256032864306058108904420758539457058444297362174539328693617419086453552663450726331646887799191840207365191166097186992767953099225324187986992913436300515408072082538479812634965849039780830023259295610338685621117275039846556226885383069339584598416046511937782065047824171539345853117699220587393796947271661511431950615521419939613414507957409813079489962257260025529288185943436085562177163182690280493512328056542131267948522001430153247549563164203702512540044074130747809371359200104568095430737872117709536560098181085707701308831420218840404175851481618645331996547066468869026342009414226864882496758188064217392137944853807571878487284867742063621675676812170010132600974401958281477851899970138446990748621061953211396491715252453218083391799550413648733954702634833244425988324427858346217472273199991660984134121391486057637337754071990600195194333132185144629691542733997446163957747275820995785409198293536123185689265195153284439127979765766835229021167143005486624034920159472124201826183692563166457024769080077263353410624529327616394251822025888702603337287254469869455072604952074240491821371053346941308506890843110794931082704353368605314212687101152522643413107146437796122688233124387851338323591415837382997346454870807199730692563197770245181895159219135076668654979873825694389987179687224341172595466304399299320939027664261577647723921584879036258221355394817869190732850072425003648379221503530174428582106608841244686860934307564003093224730327405949204038825030072883026053704147361804844414795568451141710558682652293207832433001751179214708403221824157971229577999036937089666537595011205408676771553390442882534208631934634153389573815196068571101915764560725963206811491863371606754989009392578417712261891527173462253575018567883994859634856002603077333284997511338591287998019152272553329153159462082405945605644591649443878456494381721224373131124258286689731154272285402645985091230730228117165026412156057226632272069869667593786161142648616611483411155720516903449601978423368101708988868085867494092852436450728500585249024236325947209664092679374485323354267184308438382363911063379905695501730134774606400315996038100747581873846146186640774602349905624730916509480703636033040751965926102863559704444146466942413070926067401149552609753522626666859958375716864438698527586429427342255604450213158413517634386622872177002425525629468495663635196555202098899448590879748942476784848767764509164946603623676968130226200857357489557261566650379876061540441251765194479538702972381471734855482716747611291097189488355137579853064385274911849026207189372500362267353256016164733959101945727493467939510667564261269021954098045180250945257918114909062802011054653221846779020053849438019149269220135101662165048344039889574413700111548762736186531088760483494548809964978345484376591102636983760128701574142434011474624580190353477032822981811844012380973545281370427259799087580188870324075641035945713027952997886564116718619307090970912668614089811014169727354488212328477453168495931238451573987743423877568561397371316098036108981530354398029908790958029265691195566345192909116227239304695365200808387579698718304470381775667356746163242073236189284321362227393926811964177326595170312396706122555042914662032509614259350858030612947210812443145786866064057214931163120295613687086157799943216661359904943323438200685196586197578164360012685586085054302183083267201921974321159135090555105280625118049617500958679530189358181239233253170748565190130934690271329193503569349371379247030269781798662508211462545817328086605253798818040879848037962565244392457936398631053474135364849646202774497294558508878112505596809134150281746735857924066939959076834742924232896796010239999782074604451762138809724795103437505831493637423927471178675790061143601813247789625677151742883347236638719837494615947308928844989808949530928373682879491835391974912444324746227957560353639735704903261908172947459716101002093172178299810232780709196888945548777063051847083683040139209509605039676368931913006421940264814986007176634140438698193163795342878938746542595779086268293749187375566213140107406931357934389152165372270019247485577307180778255151582673909122212824213623135374584767650577616859769181833170313686231186495056876725161464013520406544981962215758306945576700433611491021520297595533038490798404201861962496953959471825917723063975829358363204032476104898377525691486987864921018672418830919350640781260975732924462382115671533618010047620252017119325095308411220919493125677766616606720934987951845887867223070990599473155213628048861356346473642673778767006249091016583268200856800614617327706341622731005432759067041545271239827199528630687768407752376738320526296564964469766259619454527647728861963500827604764232890539745130284944002269718200104221862163053738854626454626120481453007598808962029690726500093020497175175191733446156568483004757433458145888706923900618981718913687203262371553300956035176961900218894547477528817204167386574148997092121510404375359358012710259022753819860767407889065130641900619938836545552251638245838210922809571244024375542950785222679123788543408013519201907486401610666416859036745819704588796748473154487644403037108094980047851180757180978465868813820985352480524534742424023934502260715877764238274500374603507036860794910914007453742144827164993096475410909050783624815812038996035512868057192469421811998723455590678445065055721924626077588277671172037819447454281365901431214989835729150284508994869526301782682457386795629741225781852522309687283303977292393635322494294066705597200791153874988017246026692133450311268727257321517098217190788838304059594491915162023754962924475511710393303999376387148071225727836218682554433588620017753098129771451663827857649125894985032326861991555745874419187312422665914160606948970152090125869044273092693314547175732020755136875633350058198754865927565532391847530623978116557428223422645855047490544572231094202065131989055186218216352835745766420047519348640100493870227688587394199428521448845368187486912807959524366258215510926817277586547158499485067486580406967242341044417205088251133269398945887753682653921212936126159399305946297583770491265123302408352309303242926108088660138164522305995175044751994501833448208832072204157280879006533369444856693095832206605050174689724218096572156768678603318988854811127937139335889517582928879302167770225939406498858871459568923509412570005571424260720500553389926669028452296285479029008009819274690852351859517604511422414116124751551476065595703424361573020039351754531635477791134593249816964532853077306083515971693126414884798426780981851730784117602877799529418925328796327174699677454378700416992224449599977776092778184917072273621267344202590197902868308635254283735457322884040801747022256756993051654631891126971504935270096656816814477693311758693760912116916732993939088964230262396121466392140651197310244182471166354020161671414951432263520427269931875747988786996104445219379891314072132785731869649812651355234821428365048897375861002611341753521834726847610222998252146796753492258836379521907649091692256999997400376532131451422536487905299281618747640572851798494582985057593452099643295462764208794681539199064383570006332376403921719056199117213883484511120611100336663802721486462439474238285083901829364104582503700531810771843982264248304105401750732773347108803198013458831805068732969512061570197403760082916591367951623266259057365339030041071382913230086291632802994497980276290025737601763254846298501095419173194522099165830864644047848244021412080072953904202476592704473445651912478530592094366769344941762847196885845276173649515108117592484476490044289115237839101459417472456379082271210271025345697495054544838553897186654633769623377019089203783786858255555450179843973806613695596609387385996355621735526445926759456945175002339548214842822571685173585472142652194382491706351210448735299490794404708158280258749054084943460126603675576919933919617874846915686341823231051123630937608921823148044389398617956433973276286366451992175445961764313659707983545378147137053500327217269200427748615054980470034207157746397433212977892513760965202740635852313231069124675675110554293621260387653294277708361002711223566010943796652125596346045295090291605432409043150254142119884914490961063463438553925859118642354430490097619738699710977012233793752104121624307262076515089820725501837304645748710540399380307298646783989060847494898865295730504510590649727038853022198659195532017392306079272839616766927655817767260875375231652489171722372347859623972205838475085141946229652321162621791909621538796629990903481079314032239557761742261948474876029683743217773922942120418021174837366077626177556569676747089849102957730580768259159780534730337752507819141728115897227300220096087626481724412750330752096050932523091561389288883693380053583691882751555171566463158697960376097111541925072817196775142144650842836604789761887312507074452604699091547053322754764152087293113967134540364022330988257641785522133822405342569087144089310799523779602538051850318054832814559835551632002393342601206134442792329347603610166980510706798149679035653435523989341587433027363106817532018653049263848343096446205801265888865593281273729575739270849966936397708599197962639967393678638640455884157032394956321363556239208456348763469689919984780174153842596821000679884209046843419128075912266938378548438749092104640008079211241190302850291560702695345358589259857362141011721956457668465120457443914410263934574868777863764708203551555124887633364111252874004730165966265260572844837683828272701462817276427704979463963657197018255947092486536210234818789321894980394823720954230995261898770618631982016878858394109831326969354582511121908879588967334690979996260603088050378272694305516868359131305649442360251070830220805418339072181010353442856044277887724913465243611327485390840422339033046754245065250339430964401346394119024095697485427435894724322171442689566382338504571716404758534056203612288699275170221396196547812609523923973851709040213907998191251952057245045727480284245181010241521463356780558330591344225693920560127146902596557992602212141903468343194521278164025619385834758276038432497677429349864624818419437898550535628442734689682049353545417102905835676459887991565523304351536959824199658631475300311105411295864376007162993811542958888781376938606102030707024356979756710492281232265648594830232893016733687038725753837669920140688745739736781535088499130827272410179329732985721628756143953873197970343874092358049218545419567220777405155199715921472340130995212905920825503263231389339411701747443629800594259899624172245013475715506582691362201401013860446163373185666409552264425963896248932202743618218819068136616558496453471033921256746339871286865990810522602636861183936232138402575326712451396264989526716308431913986499636222593093293664973114561013490130451159498525359014246919730161786442984763084014914606349772261252856315765256093671528263122227057690683179531700000439244286806123432503216617650677237614639258605230392409428827953996165359735326141643372049668944822389451782284807573307910651317256961831715737195807841410594278759422378397236743378038727563745481280277755840518816234466338529308930486399704174446896579721868330751089806510597433836110693989832793655750625659431238879668874082575787729348997050393043781701314010768374058606831659492979993025079753155979645147283093740550402497990724613614772477284133549303153020237463925224008480367780608056106313602026689161448320333985309251593046259169242867947740416624358345255901511499198537113457789175215713788121741325153563885420233116435014115188353473323985358406439132531015951893887458835124239253803674841773092871639115824182052462569167727717130148275708331101169744427632045021345526208591950887177252619905277625414475699737340742469503356388927182495628266278471344740022659039346505292294397113322080363921690606423880362667624627661079774671708802271298882659207231287591143339317176252937623265383358315243923790484016486089080392338140648080991002145997961822736748401359799427025502250553963450215687938272145526122432783033617137383505833620360933677007062427130870500383600977878731329313994113793293451733735576040935410064740656498394503912656281400120871088961662455459336609165170590093162919067737120547628471199032786401686102458251949611768940324608317615089867132312416147062120500373343139209294554616042953895178595913841140308191583699488695279840288910239587398558386775351095714289102390787414453896713288443385204065262394109219314950685514693701279811330070901192893536801565936620847957159275335523054950318314684998441892066048508007305026661905581695055411557121513544882629383928477913224471692739275319964857717213189944187491688402319352322741271953665691640727339095674878231139800963103462499651606256712957475010726896668618083778632762442466954343416758037682314032377463007645642961347139238812068154430305348732431782314715266308104465773865636288897021931741408851336269713332007652853450457224200821852549253662782501491732430289823761751112825013276143860983431588257187419956795970504894235395053353306661853968940093608787400797161090935100374612262270001454975369151998772712961853698837211155248262329737845293508814521067895646667977554310697233793493414847464032374578018987039877467607899217573745528602340191177679864711832589325359522416084015194923530466617070275074764836805984092357093833686999828538259579516338907225823961686956910014990337162220423954490541459350674943975116529234366062885822065043977326082299084400075605383048794183332037663670580255582688257254645796568252218138559669684521102767755272266475124079030865703523309131303488159074078207329196211213425732390872294151063178347154495340032999590152313905919831350346112770772771300269024540653626912996441234193277167587950574585899702645814163277488386846466291881890818922809894050929164031372654923968062488374260321938626152134569568137937565118879837790973895477235800938401614170353554057492661879759999675016819806630080857287254340479889342458329511522710605391050339983693513146766850374348155296659895950878873932196334818422907579906126370310337804458387869322978254236220289504255445911875103396547779274459242627634110094907542403217329287645240607543512033547080668055284168028296546724816099202369796729660651047893345136705332916126078241857702383706528838791087245480351847534233714611055459159017355525917361270479374377665773845516548236045945681831408109063392820913098532113379426775485742466129582239023795754483573029653158996788679723908020791762247664133050604116650102290379023077965523732649756532915130977258486526748891770510017679902616229221759649665458104579967778054514430855892813562071146301342190694625992569821497076902333686774830562546722977028007201086726160904104243209796232412194490888484409286535728079945451172451064425396867408405728223802041753698396731397317209613371375770319383660784890305781453870785087006505213505155282536937486169748530746883718670437944052192300541813827703099675231348094551010147879885195498808953779725557101511699318785301041636407971094882950828743286836290735292547588827258025435679610270605017552220029035230393179101667136734242111394445252154060967641680412179779549338268124292982497967597176747466049053891407683410055751148770567416100885981858741876033652690016312156979608084144321659005793957536720986216805470693985048308252991346935755687450564557105979359880031730553222205207741601442215171342447427310128461671849832257423725528467634553002312965214049175612387429735406488627503096682158752671873524052893028582784816092522379934746343728601058918720036871501406648697529369847215297923600803984142347838911840284414167032712592613716483204001361461316671043056208099873104433183772280762279532338005249804418866016263482799144055552034729822038797866509007312119292400723902340929230821119460191998954391100977349365727582422922554064774590803248322348557137361270891588017779091684475212303148442465240707154203028098115349558127202930717644730102262863598903718083373846030607185978895523113146877268484444853223240222294113612783215996298991458992002390774545874707149986903245193851632928292243832369475062533587765255175524588380033151361084581537691009861164847541471818125735491163191578423033672262918560232408546230698616834357884555182860909765621906453486621915464587189042739937569638861397126726165781877279729115653805053596931129358499222195343864589780270005328213222406129906679788138597001250078256153507841608507618788990151137156364822754014555373168773961074658668247121167401212814615691671146055895386230966707293751933064206660738172171200815708957949879044171993566111470775167246297328365066067672758424568257820388390915852145058609828302279583900340119965282886447535319873766545949618536200891824933802084599182695667606455030682148279240023990216694940553043688601999564287050003248524083561980171659445560134759029059264524447115760371005439482229376222303532398123127358633171217588102751772613565160424934043024994248887489542805909022948901774286569510031201349237813106817123813062746782301195700003072884775773670542168441711803845953752885176129401658386906847462280306980250550796678621922318035115339635390400352946502450383374724458985715105331541649786308609342680314059308707580648448690850599640402820511537932098344568104527723776924239794855529697302048335593168602450111593789118553528646368529736879719661553733046470793927933998026515203418333094867605866102519539646506701516062371227983672632692755157901472672091115343065167780971369549856840361182152756658720013111326025063141035450742784892592003202152070697285311985897841460676787645205020860792767986413583381261001080108295070278246605911056512629231924508799029179872922515388116354220378318446342343041382931094656485578325024056234487137052888426760333172966108523377574594287211770211945586856649639004875009191556088429012247964598866678622566183739921258935111769811573470914107191460429379012677455616610339401921836114070065755183424587420065629123633881343977858778894147697527536230230493874706903242677594182012899438049718466261826605712121050944708930630715187494867001733713881529926542422077224975447881356320037533373987477825897624176990991173515666664415125749901488277177900868230625652702704359864544736587414596901826132343153918308971142520414856324739867502223696578514386096820562835541721284606584141243975330293247154225748887529252849338854812261993000107171535417170803128311181401503104185245878021266292276978812165135829870931542546885712940675898182567643061192936132629243506367684907271421117090325655505346260263120997176691900356365418720622661644001036959966759063506393884582320666603502462610695626126415938603930470258808107260484879819853256310196424708698193826938240329910776290334567827282045845988733547173448278766581520682574794474904479592785225652218409196853750146592148474065742350389266565699825098779112405836814439816726702032430007153766695113743877715197356021098978054780456950324568927351833610797058613679214975705272929657486727990617679718858714744390679091500748826334429076640315274408524763827103110346933257982069293678172311671684449360471642194379778242057869185236192526655391304890422486334165662541517310549651437340473133778461164833365366640344447451720992520281185490772168911417607312710238799129333393671232223954804850419024441416202364951349487711005878357568629470483989589902392084182677523510423713259604491052429998948607178815045646073462015727150786865653037215445876393864893692168276077097312723223479921160376909187745485897287499321009572903967786875100131713492424853029562533195552870291154250346854262119710009933422343655616346855542789521930372248399265645100495638543427315699395078562952163531367630309490945271485691246287954193710436531435100411564577402164930247438556121415043409608491792293113428790465850685634147476621387796060501793004749037662485447071524788575980680122264804531810600865330892253200909938649613306627749831065942191467551082964606494248071564237160997665000178743893362249195328967688006856808008737258707025888898227406321221703270541042942025906419549160088795629182884678321113779990009817515357986635036716693625668143385771496161338281593358670485140956815002872888048197777168115785538296463135560602455562624175191484891001047079842290229020163102815592561869207527432778627504286652138045370879521661045854132029213406839863541190993612301517250779062980119477940209722744360763586463305471645556105774763395335236517190217504336834803661660273924760154524582192443802528391404335067607220572159986243149408681806666125862064579731200615516100766886437107531553602266395981534179111639957348877480862794205306110628891789499163786745896067785717895786312411382502076859571619285796263298098910609748980957899539114580140651547302405475980221382381213896751804889108135121744612847269460235254407929223743593398703330107178927825587252833557025318715696182746404206636521143388020650140586317161252978668267014973063588233576080655853454490999149803331747255966808396513766290265049424390771628982747192523431770012842328627369676468518232455346126129145748923269037297361879278654415990430462366275330775083245259687390727653194152979737694603966270858763441739584351307171682837888885377047050407298672082396096267448377066094012711368108664853858976540107272172060990335237392558530616053594354567020486566882014503409495360964004657418068739873729170251239300698716889262652001411457635796483886454232489291463042427406721424534527715478496772424866919593664552300832902678301879141208527163833751086000258257005563369938560121469758255060077207000794248240498922881635542164482959949754326230495443153601887840616673440693880579800655623081626631751836055487560902342442093638309861182485695354722856033225852935681428379194555552244048970067154617493927564907451677683278413343700845891983859627842329065210879847158359332568637774160134088574979616749772977680692074141691518304394206971289965974750570240519012295365646420751330690998208418367908949457038367018078460014022810992502286416739430320637562334359479556352880653376433563520410019234428494610086217796598513969455512743739316795068262899030761742345940304149420848659113631444092501074101792592025816728472268153716637977244283465217054083912789821797464200134847980669606524185072680852738925000975347801371782915147512104885436423330773265860802363269302400106273147001885830411077125022668583101596810412595581598650003453801436026606773299741210155405044277323658330945408606906831384185048596081103978357354125225015525248777466170665787948701716120224639652990390260794444519749008137822946779993965831018288345924923150428920664414670428359781205120258727249627203424686723519888164835084065054156229463304563273672879216486718487283399256711130555099025675840579840665609124754031636151455262768888561793541955210168233209130973926451477410933439464833989895572770661838826181041271694024297568450007790112887231594362417208187547254254619439888305140238421936847090692880463644102462684297976577528389145801704557475203044422718451377331388077737167682439369517740951590279355131706027593332041531371590914634236255092085295770477284780870056182095586308208264176114823345440629597074656798976895414647051583128255068107641420491324187504580697345854374114712164180597956542875606628062727753435106627506502295174502619557699709285402491651924519911362654102154456756024940150872541425905673681099902814953888797388362278101077340453699819052523767016356207898969789420194260771917508659206732453864178560029167020891680419331950070303893396764650557524533945563187014582233204845900347983053913447718117841841900283718017888454925848341271566411463256787937895067941736948612979101684855219166248338390902382853043825596385984777931697710707699105173344847263056134632914995244175560823208172729638911354776350552323261358013793883340948333251715714903272223885994711304784914793745752258719832614332058933227372615143478602652163997347930117527874173751594139342805988684694424999391438608477560594912235685766229614535967705968062510239733690509080320687002867342654930148967575994563508990767043843666620966849286892041124734739582465565599251473245132667685720084061591549324978410399164676749261428502790767712202408064253420221659032837957671658900872348112595759915886748057066877113072868129717786488982866512463406711465246554570603529053752197648467608037654813922883151243847580796817126450184486065629850343984040639682022533796286316717879741394646703249840002866947091081752477497980940274545326611389935179375583671220265471630153107792251093439339781355968864135777350616779107455714423268314654296081889401822813638750158416163158688232647647318965240058789845062940770916142587211384584022129748389240286875029316854574139818839165243937941583312915797263060302184829723422360799946534211769171859159489943314630406245271103956558435701688895727111589119837849103914827343485133623635217789663052204022062756015445981759380287557740549371120403579670933730110239162742806985475556799393200014666678236227129324892259152230202349372447744623087252362918134996549173334608899021850247979247448309942382039884410939424886003571563773142818413390057374444771322413719023563788881963694841280623334969987803079561809755438589005423370752956020563199050990650558146606859749494396713746039651320081222717317171313878789593474056845068614048139871651471884330386628645372544134863383526493701660654986811207390612185325953690762082647460387892668414380780149234800943477844618607406393901794039761552454823285615053812344150368000725513231763829549060090879053590249134778516845121094282002003827217376088991289479925057103775409629921524723931292078356681904668323051604416684169793801809384646548627687426473617988728655148080194041212520748957360943611303441340204697740719684581462308557083418465664555127614698682073760556235258111897094936677978771880096920597097408942404399997544056656944906527641365085613288603818918740277197845479023223224210927013002257859944869755016820507385950336119010160774687282972819246681443653004386430304928066262959172400741461792310141640295972938339350161931926968403773114056146159166540920145276529497652586117766280358828489307777937142589287792515638842273896555077295811776720194303121862599575694566078115241370687596362915822995201277432273956771406593228350213134401174809509483205607785010238953413242944935708422626113750249118479616773764734793460321024764531101712311517664845104302954903820687548785508375203620093933098015231034969620198431833718135587778174326438584552383496776516013841347948047393792151199001757997082453161572754241001379519904459866611022759500658860479376742379124515626411815980440002883309521213870907248958388907914272256717007529536010175963983569152052360690459510006219464086698880494175394886145435808836611631700871872914124814092832055931180744684248434768069651383172831056164061219145868569686203131551036891801613338612741241167246702721094539909262257061339087322541146413198695311393739386472606523460392843193617119986185844987789807832085678126698229820729788039954717879912393995831581367552687805092518975998934234019789335656315114673482847383037607177560692580539559946711978524573793159088371405571652495329060127037636738800767328268146204700776832996888737701144060164796754166993224968485965142631666877177516820712681953918378831387098464561312171885355769975300977765951193056171061058363982576891248704289514612868645732447956099582765763769734737825666657470640691796481028774767932507057215410019650289706885020408178534088838263550921772389062592835893122512730279272330256707993917187984899850112704667165336917908371162595281290714191392502761371744654334980984827040538084665315293838609474464376186480618099169994900956014224502624487223843497708240050058743839166831826683988691776637980541406617405317372988388903385185032547128978025976972918962617249859634639329958302443828843382648577980655826830974491356125903456572163033763443059663794182502458412562378964855246913581717548651676938741376924440386973015353265313159460559885610064551878302250367011352231798611866609610196417617188286236769473020888370797026463718046798944370590225616582819412474712571143270115029725061208984736100021258027941619606654056924684674344308969416378142498298234397122128155369566575889831981295647803151227120055599326697182290725102875321183305935768360915417240179133126695599250634249792299189122603749549296810967699055503886515309004341492797727988832443376101748574573611152940891993703516710881566079731152878137865736364921801726104765104640018840361466541559583641077528078542943209719800903298564862055905107896877152448519983693562341146574553695940907013954602230107450097393936035616350892771225314300892178783203697810582103544546009395763052597370513261712611913202953337113881479185176092651055721390610918505350761363665840540617166266668003476458112473203990655815320098666835071116070086223258901167792390259682552886366128471821567263517381828065090368979350901927469338637623117886809279283594315979219385731342547132938055860529591549836496255856421803156460977712575940847689637047238401782388816677333931785963333799485020258740323822601875423054731830310048953566857365606252918918199452377606539767061353167098957839383261568692183777499173392464280608209331419246362783805730481692950038648696461343524955636034748201129891149395723462039746212184172756376564135382157337865991007570905969708875679438893872339814177777052046345992644398860534383765295525644878703601659506086287676305893648533748335764322502815651859913147323390906011284348315985609590400325135401516700036694988877399126101887830959891841566224018973078891066511047033025452386151519052576953733454791918421680931198006563669868645483938243356334429422569836217564216998836894243309841778194389766831206957893970823259756561238915999035478415726129538838485959774185617333186562224502176018526092887770121120136233640387440914445218055505784603433578048602761486904084260178485109324183278241551304589120713561908701287007039065203284877539083653960657888523049459361757362067847130572507997131604456809121437169391222688603140607774207204076514601357889489537298349422214102375394059367667764970324554148366788411402593636865022719528930291159343157524505160274595383395261738235217661397521308757447179272813765501918130991942234770345756673089681517678471772772186370526176282893585747137043135907796480822559070139429081326617846612988572988617984243186384732004346662100314116999481355319492416688380211575158492471117038220223840162736531702895627487484904626305043102528169827594068301247030804820800603717244065565748592995338290991196220641327161548382748819194631363766488705580982075611060688700916534852483016449135610200565419598729858108516207936579696126582059221453732170988075273379139655621646034389831609157892188847959256808615477196716784411501750691840305102695984822047442720222916701531434752221599306284432287398448644647343948176350999791081187104695032283198089492540577892966546205625569175562723219365521308776933965386990312700460743868812265875309769800723051261713697508670720620509626214714067620461792653669893506820755192692058005478877171766186717958737099518665832384481474372434938432521575528314363262783750363991999925406565478546199328340949487269872433112852523661573463221097307914777019449667104982748657439473970592237787405436966746927622479298181644459629338969181754307648203710168898318112199060335142091071755301718609103506215372039550605194009350793428964824818190524703244134008325247751668712028739815781251191020323803160533923440610479228105261030642608832804612485647858312664228908631150231800172762048890353199642565792818632512359162000604916835630147982788490437121934367143728199734573880139292428762382819550337820892221418855267054955421641029540024583746595377099846873825251234966772795088632355350996430140713875000811360074080472060939689275848471366098918158474353287650307652563859069822468234112542871019736234961776759618714701162958182998821150425170449115286059729936729518038264232486714625307238520732645399191301605660276262755517971722707598444417653449323480960939842929546068282705402149660514266227130916733871861030196092556688842428107858227024490251271144672235953435376252604979897519195590015025712169000285741618088142585683456807998460862221621331446088008204238344770074074706438315332304275384246024298300270214782524867669302492389300921666183753501799652821234146647139756322030396419481322136188296198540545199319550879578949368361442440801519590621282103040727654126307628678975975497988582526720165617670382312542320607344520671673316725410560501504881666406365057787697731941808721964665000052839845029193832303829544219338476256876334994053617555098382346358979258536931463529385703857094024288820537103495526010293308377434023053427789885100025361229588501111692953646798957897456107585196509468199033921645270527865926079779651121438236735064686419660083160834543114870250324591359812884764485079461778567925054419774396067797102103226850953145379409468805321147821317072655455498737878841504285189597720191186439402972612487256196947882482802022304786322316117630690900944257465316949276675560726390691567798802073970643424082560578717620121424125522973576023769930253810856262611918875638040803505240666185807040013422428011466948196792013750925213268947014516723889083288370058946451621449293506233212521654648064930620098930157734024986221227053294359700642666990216795504334428145696052632166531806386282808937623558952195862102335591847277974273104656330773278996543784645535765591081988338642493594281042575194333161452105754266337521742093219974612381599013268849329275570912798372378459063850121496224687522780263869373342202170943855884920416129591374354578777674587465732158043758225937298606273665814485876422216725289155854947325203870194029960410179567752980861819716778076294134785951669259317202532744729066824034501300776444027444093292863674813005503818575571714873084200445885888829511780679359675312333660239655153726656572665855282980194140089970458916291560930018174637829984787916269254732625730395826068930788176430054494656958286727341195777129583263302626732607335255099593366371694064592310396612931460930205530871223044798781702042148203439188584009930797300754350813260863392330039440080293710538834875464312155493453772059850267680708759453904824278914682023825609678329354857785823351130674255894450207001882194329903181056701265100826067999204416073553070697866669579027584832822879341782842491756838632784974583134526714376695694987270950667991604313749856630900338342614843817342270774351395736148250515170328730394864786711713158426607606240457305878887332384453193408993946454430876142690499635398040442280718060051916753021785491463665452479520815811550660360950848006248044402417162449487521391992032462253564585968262564413892429163559443083563342057025779923937583464271269205159812942653042996811776524795293854266492350986996365525482761603167545682069543668961205745118676213297984352439476745761589167592870598910713934211266835247476424263541714292745763227012661664848687680290948541246944146484223837724479650488306771389273684020958630405670248470416420181266255154148355345603412358363760743377924277239591901810479987425341625098850330644056316775269166558612700751510051469534401744833273415492751414583456358837593877624645312490086376021805352517969125295416799681729858436004475981717137595044808166292527793739188543405914957166097829129267257359984386695229571437401468228622781330997408888540233590690979741786119675452890523129982076933351561491727414760701348152081607711361627990434250200702429202229755388285385005379134892793749923379557188664422433940492421335143787326895730538170946875432823916289171815766810214647061536078611020536104829076447933118268702255913808895932534803389933559901168798926246442904702667984115927996901146443019249695396490152597753137903881713947489311070961324891565505063541320671729371726598526125084174796835723006152933228470735159284667846893588689053355718417159392616553800447539177491213162026126615170728853143506666671068152796202040787440880272905882443780252482256595844352759555971684058524591429546159922056714821572866352024940971824336644868022303688385247272673568954523287462283336121649413040739210734114365427907294655442425341056436945353491824390430448105578713535411043204518101476746428805985684244692063591121729977077617595088954963503808179475454810210271687335193525298176582423033636124544020420296533472796468312142382222969808883135684091305105071741703816519290714839347862972878978608844440565815307159420703246111894004047854509978521157433940537721840224239944677897282953499170392383970051385657110445661996355056485923263864650393877189979714612001106300245386469119586988074906837060560628215858917793444049043791527176335323729282196395500299302212218744078725253424224406978770628446727306026588780393068444826257034917553166211983694406819340308851823544108827756549536453368371021089911123602967730234065020513500922462142427517241009891841844521975001566489632115871748937311449328798412788052150893930069181875109066585159731677263838674400479822497050173516275390181566766184338242364170358861227491742309134348735982632529212269311907394198038322958639152401254768844532182615006750788155875504844705723966468248359072929577967446328292939739798040783090461570653931800869704780566970083668586140688361089984029917334375483063984485702298032025732673604421078482559791008488312425192441710435260697383843644748423999299644006662166046045596359766760722618980747645483130366442123113712751918258047657473390430752303057691437361121338742424188967074498950166792042847264435427579753797382181357868414648243460315644642015836011972584434948739965100531491629605958778065477939021153232822850139394137481087841146444928300861891577782869821109425360759963695510839978125174486677534887221221218611906170732973967299070303638356124328501236082612049434518935451332774687637550409185001127693323740209341016930992246117291381611371091913957301318713250183502627236646523569603627697120485992117700624114132421628180302595205069827367528415173834759354099515468065209143577914990484880906235636944074132543229686492045796264333561866148010751514608487221635783780634718185028489453684847647264910570770764047749525188689870470628838522100260924943430611996868393466916907674059126355000736144620093491953395531668179744862090375037784784528093214466427452347442615301433475314622836418426853131033832631376450663279926026269269004401391317307288963198754039795894596497411823294150209841864479933772467832485435574017553024245126176298859627986498430857310290443981348522153957356736940633422093848468593098889395151005643708204164455857330397668767880109807479122740960228483100844936082931894935747364754098022353289104647872173902296838834009002914990696562330391211927335966721845573474064428731117366061032894137942831576887626835231456934029044546719989166026136734715242127765554662419299476335999357629605935294935716682781596519198846055065942743624165447751979632232811182892209081809310951161662810805347821583112470515702935393649143868006019248689761172168557155299052545226812306938538649430571836413164169814180898779778404410919324755759515919415016369826725551607615417800760384374425704941079088730213145046963036700098380800358772154853278113981739242960629303500383362623214330016017461569333238411213156805036345792338433157274536207515196661900779660344831735468399509720274499165272624058555996040932397204407082719260059139634791514684706821733787805141977301864498329425920464490479001715727833220255684771423249535393259965317270520852641957308579218471451150561512039364550231063582960906864459725928425978725197318143695025745551808404850874352316305420306122830692884893330973806170435841095865158016540667089423436675759001249203028615226247074652407326922592950307943074363919530730184729965482570849756828136180505606863804827742017803109685737733896379092477871874909741856523989530582794777029724044050208684954207793119221611992429774477620703821370527185093121475481055925276874555717058258995069457602126606366762070814630216042730753393657161530277291504248270609334043791367389570323560419878212986414820312998879735938822600102753444329595135426319682085726128968681491234455799077500345590250643072652046877796233297020848577483688923416144770423061697168235947531649357976137521535969283910697209412602984715400576204222976058899911394218571995867275226292615525000121964957136242719709139445075392385770674556321451992660929282020443355705357574353856977432624287946005820524004769356722336575888683116684399102913317692265244839680974802250871851805180875003192602510550892895104214381277214896414713485766335246625103606398695189381083586817922543659794784572161194153376511606763805506875946357767225394234191549230884637557416673733166346390422138496973081518913877642595309910161492589554097379409333203147891947223499747765165017654666888339657775966400085881266265714806065296556071928510223084066735558246615430511611156262518803005577094072522724664361924891111594634130109770847513806485387960482995416054322430369105153122918550923063860792264414527728783018227876757450421120101311390301500203409384850251963452915915446806265713220930255109676528218183782363296058087931269690334092738934424457548136418149316142702204266119949084539434134734305327066713331319287710224018030610404895914613549406383351233262758102329295095411100260635324864796493377600568302138117973154003560840846660367707680789020524793710170655835272931688403580836966935725904979488385898323786579834726659683658184524833550613920187437403074569371129838394590792109464202394648857809761426123947764647333794762831327929370266108372633624215970213155839727547427833538683782776922399824889445654751630043463733531942510587945812911309246765372263943616009200712350449419900994048090944592694654094759001743165227328747353183518892216227618247798815218590975895539299964079327947497913926431223354777620142693987171742236238597240881344498217925322793886593647365579107349301347453069703793315103971084793730229877206795771346821617683442772921799813564462894567525906579850510538937501526519543446620287206706284283865414870012347116649908452134440083183795068593867620089586824593009497531928208183056136862434775598907269646200234035903461441699701403827462775883161672495898585391733659362992723120588077642865689904935697078531378393358067067264789049981574563114148593826698822315416968082241091191387852013965764357284588065001591892457688776984788627233861928577932925417298715288122738831884322876886115797024854120584442553430677304892733835009635293992516916545633014343682624711234013019348543091705482741864559266421215285028802272037029769522674033280449728179299280262316745464879239294512553313094125235954535846838662771393733787727128995234359380153033892666940611899979254188853149693349996511024968487707978799305358692077969253339099821925906689113320824100415948134329168744148483767567375340948400477922100206231094477750419548939827666680793313619337144150297288405794990688570143578058822145493491486374277298626585061489923180270241224767141316832149059907721865193524567151837003671659762488464576873983922903947677022824265842330482767773082243787093375781715604170734441094794097978029645072271057519314265133046917847168654920393585244915354608571351394480544347874071756963898483819928047225255806980783571395334113645517742727255710762362823041762684056225776070430482550203298997481596375081822277702340870330846016453436383652252188104005056256987444611490445128810075326826787437625416956003304105298129716258881754240836754371958663716927794076285489402692811155262590517517744120383765448859552149738045112653862662793035607834593119861638696536105048005237128968529749236640018303352283458106831239121209589625616267175483132458647054672888513480157251714159324662561377334323078437306076528688892939608358035508438342875226215731746531231758231824573646570232424935098805971219836742890168290788532301066197662232220447137636354874588113639128385675829629030073998981223710352165806970004915288399828566859046287763726295286765168990251548118587052151144626044474955814907722193562436345889570668094349167448156921870409998932046301397465174150103091701362642497690875105435440700033082952079228614412386043002388987764360416256833459529895756769506069904671619025661571187801826787576529471714755216870007390110071905820986205028442753698857705230385649834271781003223704816007003977641729867966467023654035458596139782474438480270703997824487599795719012740886626184925269131936175394514142617713609141002091531298043855083382258529573702554046310174414722797360873760220413997289991323064628614976486695566048294248671858565860359307031685421828559248023309224354984235987264078526934334353980740988015419162640849708364127686756012827636123191985360230899223443616598507791749886371052976765642141247051991629401220416581263363219350417996458085372381996978685161089486664463391532206200808046194603389862772043960768905708639643948732625470099573017132593665996856285351221675165965107396545533446931513631815278776300817539915341301984760581134618418502792349629603411978898830851927440240132858443428816488251198263289856186840042353926595503136904901094062229032566162486178607485850947632215531413936158707635176156153574737638249099243155718136694172968038604062167247186866512000176379752151779825526878658188730841735465570187488349171741537126528840073203611878992393477421879710217978790515841780338996028276864353276000176431755962283456972598214870468721898680286869735489024461578681027178592424830007816210666414549098342036214424765903050712227722427385518744619578033564548438628212238258682110800686292876386939377946575833430521963896717473915844815606928454491760636676869975304155879625100566446446817578933496868964911275794966303665714582715049567834555487617383831359962251754121767121943432982266517307732763842418431492116157464812334861635314884695096009927353397124634487675910338790825596129876533980627325888403890220081964992847265463722469550914336515914480909974149205583511395935660850308946613583806472483660149433564114806064169707172501513479921057690205362154035721531725676467178961591246391378469933355433569219262208375058100792624138345098739847776975064591156599203854821812149783750200375768840180067304624399577550717628622898862397854236782625457123886025904018558446726606708038282239700004785281980525395803384650881420638139642573004858635358475786607993387234427229579099335363344459146205566783731653098532998528888585573363852980064766512217062272135797958127157046036073485475061756456238720862454888639731388800826362822478782101668661438104998048648220916896600152337798637055236667995219989304602904992058116772325967149694802525108812711243671333161614538421095513320199490311899968773963358342262412882119867479905357890680471210202550938642344188977782013033830668736712054612001885182293203865915590952418870802582474615782715036139234599693154097117935607700367657982818824762863331257428182330111688284449243757444344234125478719161481649307585182845519854418682075761551331033083985188468139145811468234000533588078324316545379252188633169707505678573767269128830255073745921841755853812017946455849165340197268283584831807053533766012384111355092470046665025662023838630904703241081370710034452763620483350457249265480895526960798278497699348309264030782738020790175844145259205055790546807635620020936035345158486609633857458563401215990043284426102603659425012819207699714812672609595221209699395964781587764591668557570502870745003028111728485301876460386901600789174445768435583248632158354625946850559339964982650259369594288386010788323243932606893029936179057100776436365079786036953515980513081239456987449644924648920383647005492525667560658085668047202031312079575311652598585842787069778693619020688488021358047615731160322244379277236229687289144878055265946520076464752079024976230065181736585454342417925826323432623595325953191294517795375679266635107693447526721573654887639240413647623979349561796923887776533192925134564948792987633117996525311999282297380494419253389089304347194878470230327969339725845146701556920205781002049238515259966560647834036411842158657508999127896251368154198440378894074662801288013233768744622547372137868960034472956068631971281918305890286516883881123840574487828675258626220922442504187203419439029835163664902076350870037258077748786705985781184248994767498080621026307214110147802966815514500362372743412820121049334149688363943526034161463402021955949840828568532209005182488840065516912014262004033095212151748694964136441947991665718237507972133170756260371097143664963930735625385686534333973104712741669842252366621181996112575284213005305225347534535714674874544444196898637295588705317953218414483793845551415961279901276207661827976674264111072529530319407699847122273267518730705895332154819619336382574451383164234447212235182041006386621035929579522009198744962518193998412447497522421301361715561060230521694896937020993170633251018204739170527558173737405707343178380788116154990076858491726762758742712187469247351980828095060931146698140351766738484042879366617565125512286384463135635510952212785417565828131921152630682305888552759760202527724832452898370127834581554812061937345017813426348710984663776516076153570488229072064318089016469613117147627945392301917517816262775727010514057348273101186685405856284962401534314237682610080931780454046746937686868677565178876549168302969979437524337922250221830010589217812541464370345248022821870662922306744815431149179906311983181309589000793358572518126952985109761615661837377710544762563035723400027951089667847265220566905545150500796321020795155828906731888312535907215765272469222411118005021310563701184817914538101486358825297228475306274759963704861565161679421612169883404136359102193013825854505851478473015530256576759184294743033411649266731876126405571286456878669161778437814574767670277179875498062812401190982934345706472628315821374147675963555967450248470864324529118662405148502313686714114626755055513182056203912999831656729186376737247445535560580040372939432532768945833257262553662379251522481915292362428829093346977838389517330061349789502844323726736783916710084671618278521018196876439732741277040659667876231475477938062863558180628914511276814281609298841038027806586410632046468081886785278006777854085774946724610746093358852959884176230773593569094410335969940911422361976746749953246910448400457602489794700652048627837957492096226295565776234330823293902675757872328680336482590038154874693714675174727959554411511178053796884879390637236664466389783173948166269034218591645537470925112927969211438588557377495343154717735695072887993551981629497640793814813174549959738821749858829982224841108442970585069983577369573696353618238967458811072731250395188428124923065332678902152496433888062264743133933290884723087530206495829517365540021035959913231097559423416066367707926226903439327488553378664493689765591758848101274291482310657266273277836248223761705771483144751165496689121568304130178630390750392765572775994874431486596980173619225196724359941960146824456792734177533089752002177005075583909801704562299129050009291306518328529238067986649131203342767593481969188390654256480068584290078414389344781528627422765794707593116514410266865722670120761539859146506609500806563585005955201313563583477412524881032099836275961152089786962584402588806443671990626801131428190052428294314112886623200926441377805284643750774981937121411608556450918753749320458467818823662043847404435472670892656190866291820774954199044882977536916161083288527511576501518708349725973142919689110418337751741196192345924814542302809827477181642422337941853234305149917606996587451630766220894312211870792015025498064683981390807983954194054098400584852091555224192240483954640003698239858853673318201865950282373663990725719991738692397429772471290588309606716706723793869434877817993000769580320027212593440322806955597316890257594566101634684631393490188023694560093482248977471223254996045977867505390900930112875546097079345519312093133643751300490838381565074266860395333434921338067367813677141328840320337516331050897338898085144523393039693121193817992152881108499534202217869111570491902245203624971754927930137877050287748759222255941554713619991150278062102763080684669833582995860896578690874132677483333118992192096991165189507920321438172049860503460110700686459413583512291505181610536047069720797462816406803359017174323862631947033324575943542780089120670367692151078147209173622114153681939716099500777013920756553326373072478378908981574814172426347083763353786430341486141985610500556990262466684189265336545332403361955256258889355324176130212335604258794085271521872547998819200799826955036418744536448943122812745849191641344857817860768003432230363489542848697516854321400001554812040097058075964752952433108162033910713876824856599110858612736496226802706488174999467596229139842994775035823445372931959552499157289855011476890408398205454420607140399218578318663454524620326931822572404653573110252281451453377828346972576225031931132188903305826266430542793146408724764033049898295682923769594889686530277985796534774334295681091126177030042856454623717340956515904113685921821272985077358446191099236868158455733871964357313689181323323789150393671032792130558892450063144789673298042684169681335778460953025143889482837430188626620441444051883748859252108026157350738644453062856335867484555999146881658907355988325460110802216302294954698492359783842969361113754004320191880976912470343540409647462398487559066318497000375547195537999910543053502597740960362403731095905662025000512351519614931491696628134529782323595146845932709135453329053526829297589701624450448990970209669192774031008321820880449015093388327607358120830898733774150900102398450723835378997777041190081478891528025107907321649385444518819136861947993488982304876067948396433976186316069390114276444741422909896967445682854609828293257300013036650284687035385228775754804301360887049969785788405564459451070850465982500364596585415371598794697489143913017223666031152517514295680359117915097560479134680954413553601640073487384860696968216186878725958024824095773895569092080316569526466843119772267583756389108037354009056643647138907111829058289608775601317305022396906752867888884917551069277386178547862749833621772369348629631052283092703841855609684672639556078143717786284636944035617072473245042095142009128074145480383764354138498781525496221379366439468674346434548121437300152681482455471966422515302767222887723617009019296595095137351804295275965628373315905571649366899044994226604462126227728525377563005101970989677978538181145711547588501831980497691975119107586381365224776436974149206938587652666542841809998388182756055046813704123386840597205836204942522623040561031140616496190368107360932389062652694222645273291955208938596795493689498355169494988836601088739666639262214581367270156366359000769887749347394786564348008999082013832740060786808518754472221827145522565553155629140759432849147508028837893618327677605141762549377046910932522892552112790266841203927518245291705027616353744335482634125178409050150460866877459248436567791012314687299487934868676189880754326644473938496818236806305212523371204157889409376698947366351903011551779693475115193613110282000505239024841953379381484136498456554045442496455186396218430609097338583038065982992642151662640527560418119040042908912088571004128149278405276377505577288805921278935953430273244645985293544639781116014861485447435607753151654120567576387444942691140009590730122481480713351557020176693367735889870189546877606073668804595398613172865918718617966767959987342245456661046424255140498858640449286185613403876885338609752992409217723139746347281216424410404800348283879608152949096034215266658822086648815199546970311862959920033661630918865309250395537780798326708263894603381142418878007623066258908931711599174799249860309868127130150609428013995509579103830090176957161942359129206771765838834986063292843856042457904664033398218466223590144296816905253231922046856701717507367103255575081492237004888630169562636875798394468784903905207763110865790120022723349131534702962290812499645189443855693738426266815081681534141738958873869523465420144146977130780609087369677983169883909819531202735760849123979152069807360254719757056251743796185731801137126934468361509843247587590431539499932191404326043803297444786207639920001688021922782622155407312011213089978227000368145212123146676568281217209060808453894808159171634403405117127458897564638519830547683386885667727859581538776654106569867745539177475581948124035659526561992421956618824118366607330299392424082937064530884218618262735551270450348168824272337488511012261386499402935947618073197917648982785012840434789746589559132350017977689624105032409292933207456815377012973423442474589800121551860413633699734020714503850519752426940232482394199025541042616194479212427605060353651328558808563358976679828518574273876929112500118878735558804862234835899085251332073007667452294202467280436690786743512662924473174027165149552698686333100016342890251739781964991469475018794540692821875906411298432769294880014001683166720631008964969884054765611839978454819770004459673993164323769640073571368449492481771422424808041682338272913954284408979433167123659699264011037223492547436811371783792768954044999408796087340172293855119894352135404330111747404940361385526841943738435503549750135058241749232617395609167778530430909873702727542410393328062044355175240671585585776095209997693029575174846229462638203510551006798722658128058317001861158196632468739247212504752529651866026914345019821903498274879194159002295641100681127013700497561248923901953879896534416442106925686114914964830726125604781072452864172765772809739263263129183937531868717623566917345355387518388303615808203105393363584216749562237607402953465403553435166900095831726964986672236751854417840468703119367859664352944439806267407554502099455592943021315860799320351766163778356423887134636738911577116350284598859450902414240264445451724326338062827299705054000238486525805959571217837467237768193676365853574753763145156154776914844564913441641309854590077754009283246043393651807207003914416623781712681558769518011182283071072741301300255622875970230986736545610288726545594003077083180380838602597428542836615058021165712440083683323725751341965362399367990543753329575937887527936294417547976277694365802444270416637336269832838221949722883197985988142530143284473322729834185840261299403045573205608662369722168635372773464936311409748335183380452332883926099708261834136162467819847848182025601203339237756761392603050001552205191309559952859396867857656141132194863766413357641380160601974851046454616238072312908391014608705657809437369243126155327800505934207043800328273945808935902052609331028995948256964000383171162333669045636614694782509602365985608820250236755309765789504128128825977359611714931021331255582279052049563590933081077288070378343025792080582167656369438327230610054391833536742921939594388849555275550677971263557355974890325037523216067241826271864451088685760743487089997110817913086503110103884808954559835138316723768100076993875495098160201187051933878761176036468915420008275134628591807566923250063622795851596308425655586912847124109919362380769499109979553479400412896393009733819771464263370252432802165604574092816600970831770046552595478531219031138981763639316413414120033015663475763754768213524784173595949403778229655155353526566298720663719273778046540600191786441836299110675007236985594457143305304295852884939889280938330833718695341317078234687785884266902233493420478801930639244594661804082182397389887120212056003981818053002757394291582701672491120925367475914333654162221733246051034510889799989914024470903886659440145114317455742361852335113176084559560735726009261607692073700928335532045979669666535141911663828890769761259064005668247333650305809728104166660233562381570580578764814233417347732354553549531841282143820862411820603311069444546645377279545556327725854496043064299149108671654696214217122028617082868400092863055635044152670400779911520960527580974836008497061638664191458505960142200904855545181977967259837943733875431653355998460404897059630538953333136235535677451437703994906115210901512755594806592324682545146752173382636461247027389817768188861463730949136140732486331113827724413411430757441345522823048452755195403850988788436393017417641319137018474812997578504744807464525226993102647827195710372365120062264080067169303876315826516827830526614204498171352444308548283658574337733458992273534526776658709369672756846188555247694890706673054337706728878095400294900858328686836656373495276856032762938681469555492099176245332823728677698010279818829058685120493006421410826389036869489683798102541882193008563172564289154764056046507133089414207882586806287953183419174961140380296515213195827017200075896064976782002523123690817071967931949771040754135807278335602167193846168777636767715202518626726302325010867283636952433306457096459382034486182441052882488214240405373318261740334253301403676058758926491473915216727372302904841496491499754099317071508181147033215065916499772812489340858149023942774311240926162665939618569983873957232426117943963517067942928727635120034479578435015330353258917620281956820033282218175308728956827854405793775647085941046283474604182582055157823448480839572511312329589457958094926534401609287429054269223791425129764189701850018699786135845809436299306906075911180795087206620840809243918377963974633642911943336298706582868102798713104104462195329481194616461663042499361496408861129374019723659767097235349436771210063554328965634227651128453718675181971315509706631847543003971992402401815358744011801987941123769513392350532762333340805510860709437989487688350896864351023534552504218270721231567940087712706259625614874117288675717044907737268555338390972138150283942785143226996667031572070805482329819297432609826189156248857267476829467864368077459418823186849832744094428193336792140645916264062884569070680230603790157467429097015522501904067240100736262061816767832288921687311241831587504328877837865295180328921284168355100911009323318910061782288546504720775948146979293368132253524769487992008216616933776801361579572283557018611501766668778406510369916072588730658876166687222011542942700661626785930751827354847353756182330344312275223855455293242391672992997191113082710263423618553400313795685692275669597055171077672421679969684599094735331009333055579305325784304379281990837653625170399661247355037909460785959066592650319489750686424387186360649966526264894586514610062120792161922240126084274952910077653501162354840271811291463094830246176285322422522047905765603363325378319245439335416106433848310845608597240265475344525403323900916095060841436369569665965043014330192301933672101515328861451779741935588391270751742750772505189516277321206389573175014761102140565717809414539582194244474622021272713459549170322401273671457868167804409679786906514444526007031854991592331919203305558054467893897323462791924176220168955478642788774544145375697239862360023326315454714601261164477522266579813924738852526489828809282201260292821188348018789161474313930058217288934881693508115412429083228438934649107557159839055580101116522477013589227825470347034980616641804900817669750453825614990823875418895478265827426482989001078861324654183617923701549165794946219394249805567557640201897166283486140206146204059666638602770613834495623452757392481337549698415870102585263136760440186415851280122445912280810530300860657109327483019712617056431791487564219406389810569117214013235803167592244143201990504015445550015578285475380539485829097538267941283685767227046146354609609933195616231735047330646785909209693960482464475264529554150765395958900494045197534303009251864122361425554230421223139489105972998076820326048530867925347220135257219176490567613886320240338326590789278570617356667114068926438558584665240907006537116920129690611464721165110992407061543537391350471566907554347810780448200834694097510494010116432995976203769400703126580431539550110085483459247626593328877724543355360237874192479011871354510854462396429362574723339677418948685890729831053840280443769102999203079756135524947217968904337083726840246546743492196115310376259776625672572511763781186610555020552102090246708710683596312524657532811224834666936294952148273799689536456744835552041926385458257146329284867290359993929547393522444915647628517596197065090751952263319315827922674943141030452929111798208720845259142530588622386678588777105416352065215778764271180289919196253994367882451964656905266299643972336179365281219554505511010842343110985463683417287212609646400067970922352294355815997819315711255653917706950285336086954563435959760737421869388765704542394204422033891216236443377524283187367978440449532163566848593118238456147238631995632202079969984704442650652055384498930752018961936765344565855901076814734590781435880746877243235328269640383548232714592956059977177850379474577201792168266592143258039862197251830324949619890449879498920061314352565934715564458935170519334663961112492353346954042329444648975462898007798103691761305881002576071615978895198702537681214447825188982969900807253236585489934088700031758104887553895098186780219464953159804003390076691452875306349418865853981516904777173211087238572006732981700083496944204771514876354768688253584355220584263353559086846291907319085080499314573703901273756993785250181251856715856811040191430989556516211301544506832844487551630829808975282587420791205743036547259814957085950000207073842507569009925704246582728774628147895457352207621065726749469691454740994314103495792543716869305935044328314269500825308294925183554391212376709575333069801292671521354631987582097749622749291594113097897671648847269252357520149794758175653152475891757780173872066975051473798200800713731168949477670206266992428921686694525548497049064968758617574513852273271812222118519969851754845672227912117764862927329699821160639482662697545700147582136510812649338993080299227108770110972055321237949784862630735792587090163932521297300520340289713244780507176956515309607844947058253352524877214722548368855136837742849738465730350728927072253618608447631670886733740348720293265566289791914429552671286213333970179109449831932784218323599304192816220872555555268968233736410014456174985183992977953232674987263172784168032558242148943475999885898048648017562026383875902950080169251954633200823412435226306994930523048766141025604204095907311212085449586063238101569153356479286767263351539621684015221305530740520204054677492127462408797381034637983660422765320459725396936303758281334011750335463353827331964761328847215434065759072469244379981137101036341333164879715427609417325390626629107488650290459126331171243499323638307368457507187819086976476443652435552646650235582297131405956497477808964726987643479011477779608752645274882345507559521305828195536640064926295034836536520817576053039934353867550621939371505509611809396269541042204770878829103941463767721446544160908125777511176465808994006421961071470658476097808393368415381828607188059246373487290685531735004574830878094854274383411304235842349503145898892601204876447996716732310894441109805432183326694030686979697194585986429948716635666173355080125832828492376336882571849643443296164508046934495159557929483403837481897417654702898825927750371419438758436085085140479793436750018610613227460223433428539021534119522146285335629144887372687047478547898133318413831311135388673924499454860479588350769044339117921134170426238614245065600963192114870263058031788956416494062796449542094880511393471797500147934273790981777829003727719095670365928031816741942355421712245285492914260727411314510810696310537238852421759085722066531341583546450667799177499423593215117708575304722778488071303407424169753207372001606155798024204732821765231446868368683435052286221051419752361518905804381603542420172208506504944518145126659468199356223441767420740810698592697259110496198042560140432806678128252249821693923504024803772887290328752970382947759760243568996728427586629767388915408150416548063957990079162425712021856727753660750594025143849459778080853230130433206815715012741890453862543522837479788110026087019650641299692460308330566932998250675885162848413241536096302088394197279294524049698624580818322973257910312829602378736526875268164236037093453823653863620411015278548043621371775209722454477207291612924493639030034390705162079053910661721851777071187817630405853282949466309373706759105079737017175008596615731459650733839522406658850828469724909965348091161563012429485031869372954861469647210607714071545402338871064202901021866420078806408265029724228506304113878685707062084418201540394862037773168951635190876260099081562646395890658891481344556018719936403469114156810809525263470547643076701979970922039101441738281616261506285288936048845069369391928797874056402136968256503991017642294477686628897720710982119143935475657261424537180773819035399693250795835781939477888392820710587289009364329683698367269913863389616346788317502037043726422785832889626934966832220499141646518443228261043933678960528367836694049931935629058151975446640632691309165041527118751056158013646794269697968219438695290260180382452708503768675704826914644061830218685033622345627766221476525240637857581117641863458912156066385350781502628179387956747298022821471466567991399223429660456099467917272389261143702327746691838893096987167728444595175352839382866884295231316214636735940980421095393727629391346854884107098928841679366403242298033513700422378872296801936134836609352273352949361606119151506488131643197779831158143963824974795671365040353368825951741378815647658922895844908410744698651455679110938608857277515442516380832419709843297627941688736221410585206566424917783035813866075387281000368987395672589496545627457047538899072688939221569742499747784574698884505862662017317203215681439976674334424157530063532907231995247565788313854356030491390722197003119750941880031168583751843731073533814972621125806078391637026263099924385495852081432416888336173351837495309784696212323545727572129850944046442948578328082033091157291148007298030918685776699130627019829818342168356143282172666857604315392631614283308239692188054555451302120910288382970061614433175397362237592073625129227516540708458445505180722426983272377862043586559346930065019359530522392738877463129026818329956153101934569169041190173151946364938993460470241996941955153432732359449212858609415350600900046220691156060165659625696195772925345404402637145416220088922749916991282794914173301792322840068760596356842479476285777309885864961611214801962401155082715023941720258683759915953791191051045731682662052556387024460318652400936222838981457093737946159693381857402258072405853372839407791423367848936202388891724011662402753272772411935275316941333388750415848035585076956881200459696701950036383026877887227370239527050108864285170032139661806699438672901897034354140339034337835309997236173764328599178948177310417356963051206539076170718544454980877689390158203824554551362370380583307994634997793073808697945321422225564421836774929274384053981716094735764357013735836368718523615754618705898743576480577593251044454441044455470556670536215965603133043891943289188973757482090719032029313958536658426926634156204670496069278578299594869300352566205858662337119835244170706335661227444560518389784976971956566999941011418704459598393294818144793966072268675385883870478766259940037636292703341342028506297324327945966853223076162982718775897209157725991163167581818978013645265187768463370418778286823281979332000330851690872416543762672723210561754293604586415223336845941600687589490185653215572645251488904330715452940058476608431156085295020799885469040918886216460274395820570774411627293155051539890382112074539481293305658258792867905571745861277709124403943407273954743327359087077464247285431629921167813134167398068412355897634914926467451807134800353630323273732922853612805029764007896574009225901162748091992118953048261941320558842818075977362064008960893401515452821676319838880201813598827418078599134872152343255828209713766380413075155897503705722695578576856692209691053793244720084584665419113097503812626028055904839999641093448038182633088431886593826635346013293320921361688813190874908087328479367520456972279284131285737937070716555497474296583509284324750147968746920345707986233888284158631731021454635863566269048826607400661673500758849701500945169195831981482804431163066468760565349873624893262572075510032871337468783572406378219461439944027433548867316751144575562102570568995700554956609540254086309519517327273113233641081745131038629513697441166149671210219309572443896603273047403673720125410449373052419132241933757034746011015629557413721145975220274036022812363316653745773040784215257478193328168538279751122529955464831217135650916784721378278385523323954256747183866974245709261680947516933173484896784538847426056232788077061659798624392593978818017023585279021525402476568869001368567964140798022103625267023916341665526865789638422961650419498228333702209173611447205335647551634576264218954394226722633952927133454040839010759605166560471770147718790054680742685075036490772388586516496546812240781424650020641024376989957367752396387586027095721993721015830249105953298931363059179303741561862529931155901604787879894764892055466530107399020539544145598101354607691165885223565388060868888997680221850959884816820309133620578496512572723303920029835739280275557392859858699713298252090974303400745729733833386158686688854182862034167823391636199811698613231025133320171658138766959215698515869258298629779265293979756189831508138039656347780622370779909157010928205135876876832339872138396476509485600131327007762697472670496533510223931737563828463234098597353680727639844387603405367791171088454229061439749740962593114516671512035295499861760468559682885718094843908627923064268380567024560653665809569146073198959267505241588907350554117985571659296868837785160898384071930877564504717741660440427254687793494630987967757585957371437696099115523073883927900704714063699556924773970797959594519885599841685611010411970145911400823972778664934100461308998653072382102371326252776927803728522899428517517755672123844802535999040657483639583201875154230987968812761532645905214459909347264639728522410370995674418665177574250668121683741378912146137968264858912549950302812735075651369888720432074759575564468820833340924837089366792002272866516613450113413932057263500922315679298293724660574061947375248425907406854110389251498345360151309187632464234989474481130407518030910992508320842827377760204087445599367269309127817420699364504350072003131351822652435025415713965005743445003270398385261139849677920666179335482283616556907330433907360585511379964249432756441313431301791364533617532421530312193148181768419856991936474183380313818850284199997804856797830486966508611260230068866798977879942382697624126079158591456446059565235635803722562883175515694730343225086922583912992379550442402634224467553285488313164688026489484730879557365072850309432735631844291252222507666229784948627624210121205096320893179961991703915162003321378887243500349516969487293385464614816515126323780462766406877867121258021204784890996662931935561862226484160703625913665340858172903489226595382071471972275251252248398419881331915247775622258261588922862792271419277178762871811598359915623761404449356207077365564359857447387188842574938100262345315366530872921762677046882272907349392297021230777190061355573410141897825523240371363205935798669194446305476383629321630921336085279999517583659089003339964425714000640411080180588555924705915595935952792161836398670980513956037900080245593810333843936372062142246617055584227903186781753405622232928809308417938438706636921901300894462457079957040417401046750466550224574544039885319778235554872553436310458592323903394704933003160633188775368432164362039777490377172775996424955893978533502666018891337252243050812188416668098723323941855482971735592175895901243408379905043874164335117040019933796009463695761581419500778962800578770920196088577397912903660790986874629990201942409257215431431657183462977760385755365493911828747405158093916997779132944125420517544010508576639268605455432564487457662382234166163407235522169274742783110083712249519283390567169928403451662044279180669618160296432044753776607975716402215603913051200291238734626425139211059144813361707139302031653817803383138232910958594862996432576795468834761624329331986537302021437207441202275490210535767412893690389682334933183415850672378419853891731324983296080281958696153610765905365744920585885594195263875416833296833137792715745376460969097372274558572992321081844725161712350117166916184926207403437180492575489503104764701203091161031715362313223616160437997887704780541587845816433616618834406505657015289400642256403608774134403749360264935101188685513165797936980120021446895279517807718863284582447834707360464444045642866081329021522315492096325373546890415638120287833118054426320461093091241762290481359860534707032877419982270262794663741467675668587732606139309806710489544957395042819118862699846231927912070708891032233552519413037979021113765522058146645787488549596134128090490572057748452961451217611667466154285384899616154032608713359005442290257382942192509794327300855326632449328267399481271506069986680540060261951347307902339876514264380966742506574012677287201831578319324608201754933850523376109390886951624063904434315269546009990372691095526276011819546672886361261871443142214205886193551993661995163566861216109061460595119077766077367395355906537920248746077568147648126195663297057444114651620129544304302837716532455221868744350420855056852856678115862514917396283433823649419212720073032212524942408107009331419776612092921133515829136188233442796778875153111961053252526229289478942193847596072052227952532838999733057107695703844238012398414392791365370466363578790574050316519913569545357350336622472812795859079695393636777320734118468958838837037822919823408541044130262059672594488285179851933897070291308873381901597195882246797990738149361364826991800288475276146269818971708740665790281993825744854626990345820843751415082220928005832224617854015672815509011797695217564756668715099485892283998091604685670405808327058771064455084459619061570345671920252093933154956873060345927824852649282981266685558805084567488220423453063105684897791707269769365671418365825363338658564450288735658846306007560427225681426418010957472302538144281048052709781772532535372513762593180673285445588380134366826578952355783062982642470326617393850586859886475380398747953273921293338622937591693647100048558387440346193805697877457005527778855140477341957605721544582025661527092709313145789649041740446314123283234485128086164776935117416778987890802925770536056228800586802435172659854621256923281315522421592408019646339246689666339796420624382494172274991631201048435377561523335967611032958901877940392540583045908547479884522445142302519732314565764225765145596350893406010756724243088440323570460192078360552532001642009441767511460707146984339920658782754035537711006323975287058662091026546839832919508405113960041388950355570109298855571172212563898161143865801818429055840615999222215138253847412817357451101895071095711902691040272787650549896330732179229232737876207992242087582923216303074027104403954521313370652059284793798435387665162152648631010819469732296236145705090811585956881637103405921836679344070403073707355425861025095186000516832632641643194434148358522527764070536279015228977400761563185962813555272510757155743398873093288498231773944168138448413391941754311869386861027799305427489365692667083321589972745879983540996388252603339844710621963537073932849415603392090964391457376171720226242471557168373415133293719085868936277584360859727694435712657208143598710708143895875663279642624194661491764892051547494011339734907018883690350706937590196843476080986165412683424743658729510472075684334569616406708932025641711588351933600364088642019187588404970067687514645604723583380345201846231954878654530841824791030111021658947770423400791740974900352146705380105527470043616058234780351690996200875272572925552380169348733115486233161653255312287650884590480718951819227194748164866459219257271349305049265917636226351775470377033350518151126925142036408489044535035268963743573514075743146300917921583690558927864102432655419421036025661552347235533753037468502179754648636344578686798765689562313594785575504956907331927210892305030031888251434601682011201692437936508840142846643302913383486059519023137541523755387917083631307499762656586505029578151440595171755454830894458030598147053375762267401671012896973957353673676915902954432770032100176038246554410377233662507326171668083205492145141489663768523057360408874052217079246679445782422629519880205065038476185851213697249130633117813754733210506948042053235064668617654137485779356664636373457090157156438817433238043047866328018228010175257778631949918441057460093872487100326422106652579600814528460456339650157275083438815686628017905463000984252030941417876819346639127135050454785259812960322920601652539301946384184945608091910364527696897998268860078117187958023024263635958182857855841560450285978426349878928437171865222637484743664995065913930977174384599391875168226713176344449276040476172680453243189388324564607586868853214154197220715167320691214928557614030847259773818447702438536032840273935913585139522319643084219277212454678811976986974773522017715749149329799091402214293320759372731621700428135363220946699946592822052023811714085451768769479865290173225858440137740278660147354201952110810339446719800177353711794941940095812241269102337900063190343316829231177216979642108578265400048296608070651792635292068170250860676729339746630062161211505110605336677583275535706551230194600769920645685672838591050667561506207337880189324065557357575602809957075018496222398937585262389330716149834254536522360129051170814284168878493059954566512382957263084152901332375410276884302281882566245190506042291668760513032715058953200475927160392841449402190263622409023810764016873918510467947127397917947078656474962765812338900604084157187127685093833332105812963587989057642726290979762166170484740422840240471879870306391600265434231368813653276145680376073930440343671753846098826670908525762634550586304327154654759787796222493204634459810956006418978858484139254061784995768391724177049618060291200478672121237870074371371209195997554031807143866561073464880573671584687218425536946820879599517513073322477712545589578436568606990488763536367338875012721056742057041689964372157767151379603548728079751480962571693773002706397902005704885724780209276684537384079607431567643414992512098165560936260138541535507699163856896276320178178583447239825395433870811279866916461836499581383584717311462988606502455298839329991392276116621808169330314679779312651036149943955652462078631524141235454973236534819620532411738706877615759505651321474247727776269068379270073496353806702261090686410939816887935285177151300709570917669539286701470831300447709999130180459513907917343135345685836223466894185551791317758240329477542238177617269264448792279940769096880157384702476477810458409736101665028685760450190052450627673573451051507574980492923052587887971797871534307315943330810930351396029789424335410381591386700503822157339261184549604337279268075086762294722755185897481510124389551527925294143957857450745958083490508736736889389011620542373439935941923379278340126854819689400736428456545072454269635467430048122212116967930805572304659383417420725590543402528333919593806951157286789250974520753811157483702427488189802480815367843803249785159282091027418554054370317580133292484986964347813978219008262574694731517279330402942456839835482628657629678807581264375485524013151806174243457721829442409037719089745521382158740343666849909244219756422460609964051085238649761063349170310408535864162623964032600834682984177110790793305657174028704296402086867331651454184859283702635507656518224476582098007234521301293553097621099617256902586026692038818949200195299515252454161260287645568261981517191702420652810179484992465786543361077914072802433536063201998180949505981648696727667669719198291678460094555223760577919129263134022896997391241960216010295557468003573021362542542429511916111227959696496448746858331715938140631435858380072238506539341878546997548455693206343256758486882395870826152246902846956321738972426668175156565779196889131433296405562199814282153857037857145768152682396578845331236803691613159943552589376275134934981244214630255097562637828263031678162098817304888838385568436274740874265267339897829784362989866977853164087171284905013793207606944586579352578576865350869049708035433053123156908585751220344890621513394951541071888556464306396595527115525268590243768884752803588182578067719435412367884831890217292535360232824815761433331377780004478240123666056109022298507506482509584321259874021183454218783122435519884392927773600480535073263441656514075639188700170403934577687861651971421113892440827372717044650847670965606821475251818370570266202954141734841494823908896410912964924606697677847518087145731779027687936357114822208780094447399302969204510168536618750502999650848973452296763687974639342895797453847836247224130519551669389392353967849710784345657242323335263013171330165818745658768547259903802053405221882857407677026931862243864005230398872395957043447102774286992864939260560364567963643200147165965081072350101904819894480458023151089722143314756655479316989992276260818732348182809921625656008026720979782252368005307306224136932381762415698289822405735208803146605648163464884830961219617985575062928519412822219242001149496437702258618648999379578994275124434300093206785057659640772577626390709831634757599524916618192118976580246235723115081860452561117705302274374705850825787108914967782174049246782386655454074707914782631983104058177913032453736666053695530283084756116068246212589261396295609171369209822686277107327203082707721167982083204399344963069697556641765640497289925163664489791989912620072761561926190466412069697444836549973452147108569846575390979791404433431436294566329652921897384275162863308009800860285198029990424669667922172947318632276902037407320073539766256961355063378866309342634151240583333184285274156010709312026577369507701105876868886687516476240343879854290586784022937340758562295010977738573905996996251557174585666876418410417167574757149544975598844749678103306587435370870493961452693044486747003957229585189310654135955243745293161272092918253325712725821398773754656703373220150966801490115260579195623423999583010128439095520171754909239938092638938644684054910503581358626198633125366175633173200585249565258658519498531327204643526556016175764912172952079895489040080667166168906605911735728168178590054473668333714584684696418120814051665170299996050834350264708003350401341219849356525749087527099306196664956631788892469723835493065991152093145278366891217625907633790956215701751838752895484539091395285245403810492180028580756585527192869127789567033121766357546065242073708660772496062952182591762283104459354943350204214682965021751629533011137198150376088804414707904000393855088483423186652466253935440336933686981747777032671557297037365155432768188106724597776118493932676114320004856857776705678915310309876895675524661182195855105935131909647047899875855263514707683724131894514819554405490107135505540391802052085150956581947136316487674474322937923417605549160578000906155987955361984167830826273316085462808662273879313497420778681494661436964495721524078466413499640617176776328058305178685984052306176974406889957137732480975518811337173625216812947778053325352754813201567771473228191996148448098164953715559556376359958986323675912284536427772903497362714364655662158583819696818945413929801236457764738629983492279400821704909997572452608406728159969891014904842379626178136798062972150560676233880100992336556067765161086180680279118631451735989609921767824290958292952863784542063312901172421648558471518562478271964489434650284590415411571644289149378132395738846774085367566404549009505038407037692705358964836293020947365849613179414752550252970248337910667893185341003555326520858487622794235824106136131036595429216732750912623218700292834275596813881276856526124908604063553077961128847026500515515614309560827987867060102141163904375030123336831957797515584217808259429957252228370237428542889558146027534220363242234512095337058992039268581171486454335767319926271901234752000048792117041297636313257954478353425656374056019799251650457177653724519513964391179901455193513668871774800050562540967085139895398378794769634858606697520539706374290128892347516071283133469624993027679132545137203857623475937284567006377795350774314487752000542483215898502190851680417731243071776055205787525362513556822846423685781555035710868822044080123013489623963394807187964424977174009419794240740799553266009586494192779168526776860927176801629192241591129584009256724989577293376203112625727570443048707065523041524045447133338793082891083934153853627825748148721513198761653021285070631021919822165352693942837058494795133704131049656148259522886081176827195143978089266670175713435397775460842662139900803354267781086117100601007872595529749305058915837806695677978923735007413857374943192791623005214938266332230012173850258748494278611009425210925531834531387472379307642143681931330843681862855963393125080060201270987134553663744502225773076157798770089250397357647392505126185886788725008275930516778399971865987417207641410720086643707925889284145979113407475144106218139854861531214291309123706313977290166360190235053229328776285735342652467377997494685833705883726722687690467779865851617155164318796582971071999098892959689430350911231386314411554999879709647962894284646829091992115353595207108461332130622942591004015854593958625379186394057985138986288898293129580275047073005660569199476400402251093838144084385572890123514236380099854168079947228193748336101524518803485158015859060622210170055272911648040567328005370015547431758497205397193284695730709517522052151571219474976855373137897637433893130643546271857329946554179535132982370498372148355490036763020536096137532100391340980885764422556967639101419081941646123427885931803084864921009515536359841344169522872446416868275416391310652553887531498664739227188401010979356300100229083798020630826795695155156980316243455851623437999267022706075871932697854608303244971197383481847138718662286325452328879919656341787133817462487353877246023279668591276013365271869141325977734339924393267890898651519792200921471895732148643227412522728304293414632661012217528367052505666530451031711461180903602217387372021872467292458858595569259903567741781294249535012414904972688230287385067873491217081571187114944361017076424418697873129630125976334439778905408019992434921654534871549783693287706555757578904713281824498964427001230436298212213838331205323250227120484812720293475938476059960094370941008162641235365022401855954507142031739322029441104142715342497732170665901113826281307154290353500394489921965023853148764513069694432873293163203437654717958686467240560862631577951589112368484812552877365458567736278626481550547565204285253033691808604230143447440708760489172841301922078230544493259337064712002245003364288654801988020988754135772282317972952220960793491249983441116193869727109316206144352733342700681268219753063635493318673469114657330854440874311288494004670061727159475151407859064646072491221720137494215177266828331442844639939365935958701712874015712134664263896928597229316325608269466027179284053995585895878674616120372402904337604919849499934464304356881768964646606197072980494328385774394560460964043468426074000590847747096188095499109258110617319190536173922345699285460789027856707780615438933504818519361825289243762062374873758082293171670899201643766024119771899792996618524972178716643353247014163345325077641041022520738829962755631705486790779265154291339173722988570362170004066000546635556609613348230693719326389396847327862856300026635773536429704390972693263147538544875572736343127261685172382187904425553233852214489429188060200288790442061849041545114535020688545107083462732495953977345768800944531806495565531970208043834313254148417663070016702868090063900988676762031641700572492998475508868632296284041089052546228691339646673976363648271945202156370092435094760265327272288728083355430268548525403552531162914871706691613874731755883625329119056389541507864614876618209593240457292515555723463542834403875117650836305085637916976724225702979135955409978149990049491085169708121128391502335540953934114076400534750717749748126958295686592795741979693476000907580665485083911072753123645590280319885811229927166304099833987794251559117222273587537201093346666121282071201382786106399909368386211520238890603590714521662153021175901177238245812148966236252460283386200715162176220170515409646091143773663517732557491277261356499311676685262364887678907404496035633114423317555872763706165869849890262654034915708846344232191063740175934441798264887532618775626366479848606158733419577437337685901961229810185072441308858273739406228192334195677496509759713469763041016005443468060807919637571292845148693645383961409290272876618552569673480261771855162801889761463897817517913573285847343975213673029561036130212800229732230527003877179550565861884159101415264724019926908383501524428358881539120346451732148932789921939582092217982511537941068984559723729007013121455683083114730891468551169816097284788195246551711824048225979443271864101375011430215582944677360271798652667880091045769100934559504855623840996839581150721541378061139477934843742352753964950141968064367061947974757129060633746149129178481351272919326708198898122984533773732893350920208930129520875109594022258388241185061477476013642498332959893929225547970441146877733574207316262332947989493252878524495574216876242686369850716663215376199742100360018062593991013849514552358730373450125258605403544471156442373504355883341169682605218514908844154706180437148296297828751212594034178761213585305281850733952775893391853406925459195153633530207839392313802033622135703672455036770083700385979460380129197016567440799895423552796878979641412960924740527107122635913910272323171621859773761997018923637036658199385700470401923380676932620997427760112023481509053705561506614724299535685778618683575577757413625920020661994317179248613421270054889741052879434105321106598847246604009018177186400917659509762487798784704290074819042289635461822664216333373002127091061443494759070584529064192345832316987764218463580274743124026851814059762461273864038423142367972935444563768251641873911616380136820929070609990645007977363597677850568960878837922117609688621896134952890974671573609061487889466423670630028993513981272298676153095627762755034328403461608743321330323501468369253956723888676045240722009993496147926239772204357894550687392856189022111524999811297586796977646656059500152544126580192750141239719330237108128243137262321159061569959275080499160068392675090855841058413950065714973218289436783375309975323167772416312423048731648326142465774320514258795397008755757055232507797238305138936065292998608330830401868541618755439340578776897374856971080766826211853762412230818152852523891745480319753703173037955680713936249786351957399729402461318850237187306833612271426460056629167772317899476781397988019837273562376600096639867384542112187159519886782882011164124226155528376446045468764441254519840290360725568693278052835163237983381377949342583256011844166319579798403042172317612646306669665711378613411945602701756991102315701564199305035552527606418805641409294792868016957405661092606304255119494855099909797447768110586072667668780351000839242161490718926666217010155470172147549430246644439114285209939149236467578627155461572138743051446468988450296261103192211102041532814463667686017401873132653248063695691015589348830539600342893888374142605248569238931297622615496606706220408594301319281199386202227787928070836039178293264914911411840797724486703511508159084473354377742673442458635687396187729028085440046172310641445519013546020750048472443208948857682829214831200277629952886095282371815200806671318536196866526673464760212767168717399480673750965639315145283611301144156042817073321867750143920255710476106167040918293700063737348969705653144191868176758386961450251959895999189516536733123533647020813081843943458036107811894100612079185663023518964047300688105367188128116576446589833043486127644808143157158455745392955574393678051358930180218590886885490337286443935171693995370988845855348579219076800567352126117586344633389812275803747043227377050339464142757997689461604977181782604055226677148773348690864175394887234478947721013486113894796648760984437057106783204350989586087092728032830526856320042251598425376080606967589750046752564737817539069921399548249357719192124631990206771971177379723321752995260373618400256670441328626261003795283426614995025305920547993628485235328315364956349181119445830314448302106310133492361510712963767114523146796627380490962969307493523618428358644214632244591468332762760241049158516452892118376124737230234480463275111737095169095504910091753347904034499689844853671134045598632810581982361092157133937290134337702683650842355032248918607849970137727552568336552710109343146170621425976924867440834672768500579548575941297778597070147119135002118727483946921576465541784272691644709504265612982390129315860383735626582650647391398001355782700826759439305311770174722281884863957350523879163958461408248886994093261359277931389290870217923612117897332543015445145542196807956284294153882903958925199813446067636755047552668421214024460388224569981436333331031745444327287948232246082917815828529725601972848082995460317884657791935275045783652721526163560413585372932881113342442515305314061584100557462892834822849465467844329298236830689262924976438464155039534486781814819059606216950541162343059028730876458959454457179904745209367906550421143510818200150416856586115117291400176234039599626736976770008995505181950301412892551814660044999892761785966653805318402613768366902268832806553947955459945365485312782698936856001308810369234994414017606506765637152664657120102958087405567370771175509748150259782970726538067826881248994527661932054008056257136731492594447738297501972940283128731429294488632141245961232735094980553241421440117887073670428018925254542296425011761668520553016219593272292836836744455619329099793492720544027689462528232234197432929603519848052537482281983016281057947912387669541460336176202121647366086346957844073597015735880368308888293566078971867625268637686084765484519539207579515483076352527870814874591745421170067231903441456043299538518612601715012520644318970707795128086765567553554501774267001042018542823219292072327573662841893262929511199019557292286946610790695854441299607058994193963850876388759458518363723125854139448598505107934905589606244717779058344718119340476914532059132846600722064292999665689480507339237351324592756756919824794247912000289163094753028982540133706297057359315308854012670849240613935522202631602183246991613640793767863692889962990907281153943633885504818396195544866069537307696301620674294757372983955886352724806503245036578144813929699829364801972464813637236309698574171569097544590917409049269113731531078447476483510740312084764974346904877149497286666631077070476536463104113956511991991622132780906900986623729011751693086829617708393644284961083916336093260061843390426983240091240373672802737410468591725662401163316065719001695170717147029722865518155530270887876038092557594412553896648020975123629501310935945803233317699935075536780614827545392678700226024012005441411662166026249653645202305023478746092096402906365733192100036612825785878310118419779982009503720008126702717365500407637858806783392958797574089170027580992503887109607162620899224436981199442960805561728806516102559333489020994667785222928314931243920266108423914477165340865804820608690375833456320523734664783562242297094409677874097907111962866800327404178347424403555943259625126462593272922067065567807884149631435470227402015333555040934132461528035381648071861002385250770480109630946603104485166441269102103857203840736251686805290040684105938554802799353702531332998556052198838413059682289589374569584607932861191072525939192069442492876177645061281264572546495943501985752737691548702800477633853454364875893142215566739215370553115445971770570993703266772186456053584762798683668412806273878563346161605996617551063929060713340547348026213587444685178610358256155404619035611888509805183658298986368026629254301351516717378297587848852643645866001185592230149454614928477356421722092851456073227856389561553440968090302620406328030929177807829960641772930204876099373641826340530051551981771287178718187025799532777542127094004445111535697484727932184462734486118966731122674785764112791277994378289011455150501242336546227505255737578829991992666330322269173694860888097097197352350780260177400999638088876809865661190865926280903746006123522786771199744627995284006805323004262991550099864021154132962423976049892646553995263901140741061023098552855955772356707508704945134410147364425040745699687297836886275507013059541755155259739505931377986817360151565185314467798460855460625932223364718653844365440332953683929291138438503444609081768746010613683870982474009913865706112105427836652481106609543775516706957686677519768181552186969408284138354651503644577551573769349009117348803049282975189400759237188009074758788373736677415869358701148570799668321506494473510625990266800036244517872195223630120094962412989662895727101619640440827113448450145920660753749176307665394598273612224350606727107379656811998261649267042812021901031039970506770720117149315271395551826070028752676900737711429335150444821984161104854372637383883066089588860177149573758051189300423936131905869046851450095858077766783386226830699594444683413142501662949573440501371256117354301085560136459250701958044527914816317342096381511033551214208956242146493038275569881642392213252754155490026892802094009155932380154423697072897802912755992394673839028437715909231433052140294363463268283184407501649804717712780058075740286595148938680849536267319659652796581113536673878722925327764522698398492224819657762247797577650782967154831918370696485264391984803462359934493402447701909417735679077462538165733345172742152465466420207226940926502138384944822497992622535192208520860570544098410959292680007149494456941645736345945789105551353301555925173041093857269952072054635331291263557387082828364138651408443248275582488755245078095528254826256847799795007865683008954431348003556163937602730086405592679326805441670635299557740309337233899960197885906140498001374552816798543627930905423634751790722504405103054563564776182713970611876394909372932747111282077224529555219443254885954106738067948317461519361619728524944882089409526204436449807451494931993301461367989841751966887972993397660459930987759160907278910520551683365239220223671843724591492766808755598472147812315332455662201308768720109378696064874052153851032582432950894208257442892303023779288459030040297874750468397137376796708360520913554385125689573612097839822129900079455014862866384644246285065567035421204827824244709568061067798903787570411175359060634731582781450471265691957882615071365423094983485084446479083039781725613770125340010139306215866342090557611018128705276881667084101678631966350102856848012881832703823521965186059196446243376651236804980527289387260152500664707355645181060679439193065700023318511510514125660476285068313036563635585718960006282128232626679913759450387401398167510096855558270944651905328635911193540594237917931779323175956179222832357149731698548146344872928753021346775974087319197330748166748606879218384796574928034489635218915277779208765527961064734849744627741353642241336404251286092564753203294961538385502643440866113166187221366712789280132644794115198503933508767842444556371402659808390568118102827899432545897210017501423535535335267105694910284533152435187732672354733313806886493022411217784451858369694009674749145335424026800939976056753335037082434317677385285758308804530961823939869566923978256182023910561355027205309796944007481431375959554777704647623983936808356329335672015371252499302174217978757832684646199130703102772491740914213415185235946446763700977861820593289722522398869619349658889773793773031514615601459041220524839960513669419377569244147256309958809617025100720005321901189447534888156285614949820080789926550057994500099639343842767150943351490864489382032739805120508589435957616238671732582570036329011599518270240614451555970083279285748779689738158332319263687449801303205259911474156572953323195585302514022809285200704647209778407097984576607331294568139728443244872503256686098915598928969703930349412875226490367726992969929815630735239697242684363947380367936239383705311455938791938302786156457792857656093589111110727393743919010093319920904566488688638687978866517549526635047371234830719482308984552002262702254585308725526311538127725874265368586234555884530593217024558604906615509892919112972996437568011244761610125733692180957245954317954512359517623899270930930076417675798570591362095254001020291179061952787792643261511271714640727352441276437147567176779124268670445823392198627922597527395734382648213176808042630517663872420465222162245496683187348060550280239255566942106131071252833105682628077455983382610892173465168760899217288467091957392917932188710301494123555504662519047361171349553472884125569142540161792969729635302373025393894349570552096538580436322306928774378904233594058518347163607701357625022407320048254020780596281035628732177775052351474617171242081092745694851079224545929793004976328199372937915517191665118158125088716447783207557783579135583210176759473735468141470592547993054243902682967679347854005853007570806393770905940845582478639394389311897391574681105453818938798871890792282827747946177550497514503778685724491379087937750979991421203927489520246170052605769730818114326677322734708143759769763389926954926453361330333154379554064022104959079870975349229156310941882717648160398399782469951528259923466097013648850108667910889419952915725196681595273309086302520821619707800581232027175488797527559289520312789494350776543913160621863625840443395173651235746031427861502629852490918813858779069357553913433740805782227477086000112340002679543073212732074070077409653091456930326427661108794662223451380551964169128373845274035835087353968232289241726437446568502660154547245950337483588065886772886073440312666993600227072720204305029077309948333000825834226741312076516525639961924393157488237511789387954439008960119037954846474053658413877178803164856941759041161784149657384873506676529705364554425893550295518259725707619753920014942146206905615388325298573327596782290306603175098804231345037366499140214073046350613781666578151724355268379452971343285221289866931736817475275620115931927262286349547506730618112837169468708395072181989919808712344828536933195837477693934357789884128688363279638830701600001883161021023234250738894759499165630613505923705725757631969371067538231352719294239275946476318384591162553467957377890270785446662656110028581686240760199329888281709588199294920744020985315657913784626387687054968383670095418916522771593361478071270039865512004642109481408114923505828743931176763986428350306519742171324796071290131466014560460428702508716651196390526982383353733334135103552803104933211717312884403599771699882118064202588941148631531505965217468009930346857294379196516918449146872301665872679730793260079922417513859477018745264839508834651487491496572752249532084944215720571199337981746052660957308295386628161371062231226232540600183574621626744192776603094171755092708447249706181503370819352482196908850630745666144054087941043488361603058637997660994952533043595762360175063003066325581615661515746847557420641208751069535618667638235372502446987090395609890480773828143207036336594463323996170659835026888821527569227628245416988628976312264277192165119529953277052600773080349311593766449464498496754350544538980554515314294733739207726832740316058686257004912654921710891375734692833200203764774631896311982551446853466989028307510999577237440511681694117600595031290632641045189374680689685590038904757741949193783499339644020235506369426532764481132427639861521625930838646575413081570291317485290728799945054840733882842727045016078101975180606766307192176196681696737387222050135545918839029088945061756773214878354780938092045524443607050048309575170377614685795538619109936046710954473874156530186971446041964513958255727942451066854255531678677199391614003828284606971577304880234552344564323077361256037388882732443248702241570725307231611488759641541777669344414772495659028299818104471858594929908162262940926321017350607635086847571584789149557849537370907810534421194002326825235910849445070064035920798158262207388111581825739893025786326555116847531995571155656838239346791277700185664662142440858276803095037611512952500795531606316897842328944905913080723620553896106740161218432344382387917646816295289403640634209364394496076209562117611833883003908605175592884050777444193174816402267054952387680402265754770735826399374443776118226679153797716940836881136101133591179620970629317472822823868483365784113575460341014116836040556046299077505611940956350497364920578896698881706414000469748632470063103223264315179173449220033027547767611601847825335804968426851652926806962044271294337393082420366011063980020108492311990910657593243297232798678424427762777921670596642014121761290943373154372148494394889281602828346439584787164047160062092984949354193142555617461740076442979721775303624410958141515097128812385309695335040497862384256943485075298943835524964476143879620951652616879602320732922337293553619246851509769347715688122597131781884908990100386731682315284726873631969737833623132041039389522798757646954619307615723547145320992365591239555549064691299888805433349474589722760692825835823490653719672569432874861535221449454272168530156707407954096250690021253207299693505830052906991721570047997094053258980393234258291176992059732618677933516347299744910532647293002204967097594619775938247389694430303256599190546982669229935263596248516745520988978978807192363493196712956390965381032319500030022948882689911003304356623431994222171839746201639075122736799072128197077648935666417886745260724897279153859432811436633891085502850554735382176073949402304589830677636758954114226012438855516552623461500409999199430979826648644150676782513144248051747365401642595017911003502623717378211707817558557885896910929380042921542813816507383148027980588977340867794494500245257740477220315213134012444029461889827885083100458603214664368666356347823511996646354289393744192311161193665358878882799396481733399300394341415937564572867042010477661285356786365287700040646911617997835429961772151785811774736176190053387457509417484713592886654629143096406483402232190845933537871362277531941919880722438823514309261698561402933969803524221734837045583476433152408840364139225982321479563040321630419846741373798300836549192744299847474426435995915150039570934537944987844121642555090275251170990874407657204550447788168217373964776609619538832765916702408596534076517036907064690669227595821575772576740741416306783558107783183096147434133884222687905746665997642298320921447727897061880770129160750116820371153223211370052154096512674623011188290592555361917808050315176034001314898395243318997298263830971086647928351625863047493388085689146293668444589335041524291161111325663838710186498278793995087315661011676328271376001771966076107454921337879069268287867300860427355402069519567540539294842086778804723453830970933959092773202329378788077767142492934952146929042906163519711222876943592369077773562239788727599145049907624620247674731043667006658637979562025510545454291291440976495963950538354409584866935649387399580909959493893064039250895138823081402974532217705812263201215317087379709152071685818477966894922366652016300928777611214661065084714234734683773978867795974451761614709331503814829641286602733627842639452520478204064700100992305602128489846798993626248574785267359057732375890249863317055413345832579701890204312681546131277604115196653838998156111795014370110544979346553896849938303025037148302375602823688232561405553755854718604301751200702634913412279578218300782814789300718441373345570391479051227729486561661423375393328395606132575211736530244771257658785664831520898165966617004425346267282630111009762112010278196225518809754687263974108215700388320881993393365037907593797624843030472114200500692715432742743637908325930505121103741769524347578524379268014263376839721854092106919851880334044468232783542708772979742634166104099834124678448092389040011561635752553599150477244686512526875141344656150050779443182598315759063545344039580666396651787316005922975056803164113733970090424195677848255846237491171308997410872635251069231022663373858834203741489319468897289595698870805642828128007542981265829289101387033376056469364223999728193185599105086570240882037889835789227577624116183035645156719475565999987507519701404836947408905776335725173541142851796884008872868167236648500832226383312560329065141298396146729051945626259098513143983979915156613944121369638206789373090030496900552771589555170132329250703065899651881794609815039490555453861248291027053063743806920015223641228180147519235713686665637739458668278802826414833370273724674862753913468031926489443580252332630235937603586495504766562041886345502388000152886894743623168134420994472525702722100893685418920865801932244263065637534693560303072684989661364248249348185119294816557328720426775170267550705867903550713949051199738218145384221676787231517760605628159840071819106164090191560571740203578750393425929208007842027527166728167733471689461447398079824006900282599608566978278144261472684501271250463316309559539117812804620443057351955383698419932988303763726100276124669305298974178494282767859816469411943089009595366497931560369291229738484606223971516092880629675137323465420363967557892004188109598468366412418053966721947573316450496537605084684069236697346961783513559087741172800533697848282092230539847558575955119848815030649250535235380918018054093268626700773549820517181983046216178193895404195949350800016874309205053004079274139690983651592185161568801279548214320935979652490390909273276979731213686005175210580845909802920379064667838318512076819668021180891512972794956991634646338513398501104601039403635428653233998227674595504474273670569809321723206423159001938812407941149762576647776301057673883211474142749691468929602432602582461669100084450459074575519272422445644445415141019525203012823822724214983201181243102309859972788585550092347746041413706062103570539931690994166080403509355434020708146726427241664392642710035840735711342469959827854194621398933555933342981038676433450094373866849453697816543893332745909281051147446672740641517209166108216396392393523538202837465722758826323350592463169888318735778364148201528255979892123443815928899811697385761182094842122066895260397151669651292874767095864173333518209692960540703685179583188114325959185729768790632876945196145522456377575946992094447580796344895349575518314543124586113670712843843167490169392160603635314598391083915823926817494050444542030402296279155701706579000952516856233789019759719829668898585255392281807863017919265243326327389435444850600354582784280674002552952397491696843688103894740635535058284908427429056964042471822338659305619322375792972308593809136350259834864240277126713176298970835389734002913803259721035646035649106295445015689530984274218615229344796769180909331512368748254814402816295509664934707325560328580355651468855850825549344786812888837025734459120436781502716026615974510632702283753577348010223241985430261836648523076461468863714443874161294167449635342066627685529759853994028569419041304800127181140860002047751042840351072547390352768413024619431646728089178173437983516210841074002904062813647855622550618468268005940573702786380849666286813224557104876526580266424559988837171931312097224181742603226884055918853041209489149840638646905959900802071400316674440035465601888608353079961916032240879521337567373063063257030932203197027951660047506536800877226192403345865385148760269190849563940705828345168495449842148668667875730423286279481973349324994604060840446721170301602724806309827840797750001985059669247662591297574514684299420447616546654138069131772333149472427078161576606286065727956687797766425972570129577648746641530664488018294474495157447868339302575001330718762346730258634784464930567382327549845340777232632391340571469706003516761909560704372707978780887916700183457644552453160457374756397680680210903409357517870497170625139522697942481345098786331515037574097275290080695634697489171336194616618804725081907076942159193433356754310132857641808023137469054837119869655557570312788580645134800953294725183610473093427797813180439259466423418574402639532727390400552091596062660899851695408115349435381891427425135392475599997566457430760176112894262191827612720284667203283957468178088081331458672422776039915724191175009623771099132356705325960436986633146105636661310309869883449223761895551550262238830265426266675839376816354668219505392807934400711771757276618115829068643743120362427479147212810635353575466694713879387131143398115491023536253066043764123289545710210826664435811178499197676840707228392901892648043302149794917966131707227873580514943083304212453853320974060618040045418988228077355110144216542934904582102422965991090930569480855291929380052385164422741511189655125057391874611783879991624898374638285052243771239000931769707986773931325663136053217079106124490640647632252758023728567503846152497478906901726797267595093257040815913622348624351195781298770383037982979954173580995866140265540925820515703202524442862002898012107875736974146336492625153490648998630723562174550444996045800815865026146105648417511108518645152330570772847095444710402691139517155626163531970164166620554007061578634564654364361325334537036827282736868059871652251693591650395939046452526537999698591211156558685497635516719248223690254720552465864096928703744899932533860509027000665365599067468057923878137615044876584841323670396379252527538101193995373661702442175208959962500020893203348354584209540271718233878313943231748712513841340561176624709422213796882651687819994055767675136591973936926420940555662090392837283151066200094701741995200769586646521241761460877458655237550010027692591706346969958001913785375318520221721745603271937286817056778525756046771939374826283441216709199965920990088650762656236915790347378609016120605509555657191880156771630449814235647408219513007787887022722357674230961013877457598518471144599232656265760536420583545723127970596613452435752676146226500033758434880647854695250365164302813878176348140122460405604741869501866206758111526789643543251455883366047533244409261714465028274311360383569085866472477397857528754293012205027392947069853281813986267967980007101839761066284847010641066100737148382364510579987179348610187691200626287752449728318569238600087251989012075871873636745732819827459280060649267732228377361033933936425029118820905137030299647264606695745107098617736383369566669857389894075418227212855583977059584825673326944304151385627537881964693063073199001588262341529616657944438218257246193142651304173280290945071079835213496154926436386018895956564252170859975944695110312741068551150004066510638871932339797730715871668321696819787655549636458415456180907261838506019508388180668623486823856956332183974628760864657617261895678089417877957422369114448796106399144626824150598786983182955149070268510061529845790409205264978476352249347259842516274822696643567913471642915400791235775688326220245718111653550431154247483192520662464403460289877098215552328582091732806501001716887525965025866267454537697181854727254490345120928378150503513153525873903841591027345292991244108100317302367240683377559647851905038878491039148031220710081822666022077502370651761100861458653012337454560748469869079061400414052511811190403697546088554528015325472061280920218052202773716678001957569032372860990926813894222864610525639434705124558403935621792460154938885406379198519692466794130465523428448749791136711879202671192013997236228586198174573702798250755817912411819756231539799289860642875945051147042826089930663470413007626889392293829631849958908771561179178846168839550910191715664260354223437170641184110296246282338914447106479407692164943531856600413580971547767512232728947163064039126723327480132183083958109455771338674635761506797706649881809379959658320604501963829495663957497366947544735512369783802439407120687580182022978391614192384411805422832345267382953592675274985894669052125299644284128442952189194942463192138268052749134638496098972365750280515572957638571516369636602375653539453297742539243982995661812002056015570115148601257177883327878089808275361716820718533067766341158534932625337073517891290055135260168421430646702692193269189341163552904705495564453709395734807867148991659350136268562811369833634883015112002506910896057210962301462707161246775802470937832399200271665414517994805392476137019119680329081832072906396755929232874051333526973975383276412101842858666253366849777463729662977407400670243585306229295490078030685253129793121020391741785378801572529498042339572933919093807605003495695213196182420903666209789769266045408427636025717767011544640628073251227668027204642159965348967671190259628576697608859769982774780632563449582114474378792776145212787167023595044979432920779049126145979573866556092806654042659889657655955835768587386154525266691179700210567053146784695776892151427246867336787740972261568770700760390355913877470520818185543610973192788942746435140872041462334166389263743395578961565319394590884970000642939199766701108316857067366972664338911216960765418635938900631225359541120079539076588290184872153961470934274331664446226457021442354962890796350896466741364389318699557001443715316829944187085575785274844530464266229379494457367652746972796278797317778419795704553534774875900620085415708263094656432801160099894504201599159985036898133463637401708799555332434114926762950168061380802941988570286795308230657485680390634744478972225521566608516710643949521759390575118920162688452828273743272212475613456236379921113382955803808522060285077664524083447159624641369238230265496946402871069790514691679994049705128337133873103676623432303871914577581502480000456717281465178462254227069301116669781490138066509589185547705398404551536081263018155085199741825155745776243216170250094516557180179793274834069632686698304303630430069362801155310466018938476320660998347168956739991378626846217689660215849158329270262686669465812028530223513067104643770661845025743718233017200451203923426197354662317310724283737316302686125612889104510179400408464196156241772839841158220182448532804887608473643286741216064739206887973997708189561502015846864977004243898085323961187421295499972803654409225010616368573841542164047971457731195524175598635844479262778443003909466500431864209557360553944645048714852082066607086877791795000092961286286108437881249445868120287215743037976479206493239607912176223429338945375864147700311209021792019365086820208063688294544685962394462072831240990177199089326291110884901638798742373182526716989268364068206607596339706894901450970288589012454730571529027562440830079014763827351226259624131202726077371042808828128710354614372358922579684761101715360885858209047934034639543006082179796812020474930431346178220458028293043318938904568750577879879752529212062832166351057162072269458704765027254225903039648355816391127252084440630432003899261743021922390811021932366009736189484479239047182687278883557518426254438586582796947690633378721920091230403721440694777865791830776826785084431443800947595023681805723357487575930423092237487670903533303333421267462646525069463688654215581943314838438767485480392274900167060494508329407229748075310819432327560815706066616865990068674488483753612510960749314634336717971948176859586549878664923626002713549707235496982094626043559748372134552454556808309875023755597722909420460871756446583444148948789793848764612626781169421547483654049625221299643440249734281924226337832276491940478351810375938407402033551845790530996712785208166866553147408461514044512448313315015982296161361947909830000600644162959210494936624047271079046028750230300563132357913815476833675031613481046642160197523669072178495318542240237402610845207479985096486327819890610657745906586528908307980285727214458968537763503861219253546436513556784364960268636320863979351385503597272717145171118183210886697114626906996336170388800850303078158143114587003405451728722452745406800166240205746720274891880308432806255912251916371512888827846863172694647282822514845991034358870868802569936507058280554373164284032666070768618979639098635782971208420840104396343217656579014567280982230670686371093737941723895271307660516941614244572443891389603989720091320242125821425877053600781063821670966585986568975293248868301320476191985222954585311702848226653652536490807067078915694435405668034404913371868815392591234607923079754947553807735400821934675671787790829144057723132726642667374726217070519540672174807472161504675647697047745863221310013907069268446410528936297596973097263075674999730030488563706417489828208647532681665700363793838965777686234953419703605042013352456190691706536168771367982364400193048601250672545420842966585842914967312962987748869068733928522090685671963088655215011122746764853677077254873946850103848421391671270483802647211588415037659086001848191426474686381164076564052215025974592611885730229184824363593953553914574926411963576902891151617780110555685650578083880428279654264846983331966998785371608497883849423687969341932056174779574699633978426423798191140704320998635755411519530242631616179721438944437476155556630041941407016084079263581009439819455230991560037133164468672163919274106763976951047212637604050734925629209619542489841533815596411968496928329519249621153602170665732979994261445239734719889968637642758988327898000068412127213065967165460949834868536305918167385931310293407022260963391855878554353334013814531234837991573605756228884383822159622912776836441226232919657688151857998411183482400899540862344792909518407037877398723155133616112958873126531912977541664977852157927691401032492970584137993262093947474616270307955491303693436296186052267640030019538795563269396284197255159198475339888213805805834315624855861545668698259042754990693742904430877989005030383397372102690026888794813750109376810644778310378282814622643724228529428674845229962666952056416375414074334105438085390773507112571238700826467474280603495860838489862611638841741020172691149607939556121888929704284777417655050799503474729926129518389197518505473270645764330996405066937010782319288649550436301092956289294957579448721984077898914722110135543344719523883231121543744959376152717744338784004482976555453226306757180938605122547934605729579343747398397642847425473733811268034879678482076611466608178341245881739606211055400057151119839645214815446834871209432649221631028690934022801583448644683998306066246004958401084304059123000493908358368132735816094556312302203106899571072462953606962683839691911371749397132604445313220069980349211112875871358253920207065108901203151649754474371797857569023757398181688282992884418185084486119393846876297663850938308381640597895233430122115846795147742699175806484286177518970730769910409918444775657569652102423073318428540137846389352810326576903031544020831997523236215640994099858667564366789023128033976218094060467765508840590668250615884082505972537672735981509110931236684558695548035870885208434548173902354462071555254952673692729348746140383189148912035771241697417372678389223633405961403239931865648521941483099473779074277659704979339346600495360493036812840602091718667141697458582792728434780617593897746754744362642161160604802636810433062827081241259743743378019296076082538875037402408095445494420879450782804336054775974156590964631124879061007033307548024659014823452545776543726822487118196750510913431399928473216438351314043505256495748484779796385089055131218888474805375036841586480096379466410631807302720648916277563387185500597115784496467645488333911729186514013067046537442764008249817890768607099643961457996339148241233788578706544627295566677069075931506475798199484038788469469727993775887825188035521734175662534617004729327188503158077771373122855573857829534902851149938537892774929138549918883793855681370851564816312122033771743362969896265669318510373603042654678819348308533786346159509168009598390728651745367396071649361545592314898206093773264581459696982307566678270585527810571584124919376856208221938492639596453338974320514858751656677623650192403675440530232639560911886248017308954381585952940444196841508485033400122715613240420309630040932965050317874517240718445540485085568315250207135558823298763957562963907707480031695766600192417560265464496615641957502528127899589120950496461441294380525392279039085236842725367247165862579987957242359855361000346740069266705429533760954554900907353839649969809620955276619711599200413917834458708597321922295540850507371618532828544865551371932300749440142797274725561717971893728328706713516933115142630678217337346721739450760977121416867108654506656694576597796284415005484484014004785923004329581734336896433008590101704763298637329745390313947742734303690355809893685319823880912400556893383609942123021920966199510751898081996662938414343144125272591162180871523673985460028446662938817082484584221509763048527832100310004363401530065048055107685564812967724016797564237059479628636535028521555880154712260209207711027376657932123474199067605563741502577788642076021131714526120305928726662794575752758511389777796503141862062256607035239278310093659560931537635838474306027503027673535246340485370224160438380142579592107993727757976993073149063727638383449996645597496107292140349579977829136228635102496223746588601212004171843326545218273266800524710612959889084751295351052556071368570694422582512060228115278676611109877827016333547388528547479702392529237602610255620649419505354531674304930881752597863691739863140182062266706419066780300258737538775351549283397293208577259422025504414172273207698362772126800777575375170436965351284970070308863794519565982902484850479960821343707533955386268936196991309003346034326056308709564234985655238735816905012000619843706777633440193479017323855872879641612610613306177474078814234171921897482816697442689242272033665233332846824211688756418066680225766212809057810635316953968092046606527029738987083719064525564877333793101518618204590163439172103400823005179621177797655790573884544024092446017238520835857428646640970376427401805048553047561777425590391138501210949582750806878244293767103270328931242914751779637707697705755859914290958182570420974471541688035241766532559558951187222558814665320411911797719000753523378021960015589820993771639535933361191117307557242851420911537130756858369845042829539566926634878086262977097047865754343195441133849225337368030354816918570170564599070195673965692602437559019969455805484011956173375570659411821256674702604405493412409247591263871873152888287277647162367875262842247535091043750106211872211474317838294501603238990060029775185128847112538133855374789895507727453109851190891813814453013148315862277525446545850242846029451029768053089860336324483064819278915702961031682051411796217791243320713398916839018651280790596482293715688219094850572682578737169050866533635302476030060403807920726271497636588271289629240143032456618768623750611192091017065579426654978535827323394515698466367625062349948262394096305575361934588400668229181420254396915338819786499168023139527922280320376259237346308274259225467221916706487045061638017567917158041337525842604620579022559197618555049987631021707748953117794435836723762249538613726218965717093108805552899744016395121669020348115275363576947259731381843484346765812254754140656098035584562798586546751045543967848258736535877269356075057030707985494502267850366862069945580049938882744256784920717158073571274323900993199137479627795779006256502043756186541851007953937271248314933778440850138556847982218442625930326250040852971184858045118759392294582633910356137372864620350400017817937866544189052584426588818097281420898449524259555142234902159064420770631917992764361251063404773019238146920334165472181002380191228697187752950437283259447668142656216793772329601396730588330600277247694516526758735010103763137423426334486357979015014358977012444463720324534770114959076714317483953013622792442191079387424767510853645648936441202816142539043778608356824456072604677267765863966161898060795186565454225632003285485929161505021256833245950348128227353766349074733227212389414729877687781416486952056836064960381718603151003730900924120144952535502313232256600439639431756718050221786218931153577311342929262853962376497072282440185474127684916368604729095818034138200019937443712688962359667157984351192377316847468535637714208090035408988291555436028667518764367656690064966555885322904450682129312208361269138323685350461326444429129173791473306074628781887742558885719335351103169497314165376039237278353796860729076633074897789348670342429429755743636780496346946317281149847328129753773610698905633034772503181926003125412365041037675880073156350014305571403272555160085665363052903868251785190975344201379977919756355071498371287400537279356134673318222254971056627811386041251140850634924906929718872213926828659684479633355691543188215461535594538719743178591838135363516929357103136701636163071679115161296118607887503206521258142661028539323373653644420967600096842093458008880473991149285830066547215664987263252071768853440697038890300040170272996819793991262508685014716967709092822091004447486516235775604684199296087698232136666033777297271158061827814263960130013674027714808636049238347568131182589444686798697885372086781688183834718801028901283562816011628912867891190679643415835484811639867695056264372565749791833080925310873033839896051118760914338196855053867798039554221870709919880924434640619965554774084539956289055576094890010788026030253022701764229559107460990220689157378992790869276843329053097999780955772362091790345564904741360748611716548679552362737337765667483706638446315427704044277415135473948444460773820052959135313139298772994349130447372351182381473445725978808180744661397137543347183907895294059045593235282810660909043840063501757762093529974762338516251428229955894966419883397151537483920366534046648235503853272024764303136175956531952673766485830181907121114040215853571141287634797076725001532549390248047845221163003762455632290186111323520218174728431279962084396176141466703065498267659827978371703358765740339950866500001339598204622093029337222855103213943562420927077287689941818129559849411268911772513088741798860850185201203787389687446030866381095171725081529043886656649003444119150263031657074512884694869205752266891590596779795134091391225498823565897913477873642951915736402049768412452506968029184561113214355641941832473087704686554121410629007991099499694387666902664652427237083084029151419710528756934613024969485813179211418969229798598799843861016729942578402211663891844817780102920525088280047301805323361046516204157539107974844380232351888283518678489098329949191278761005374762629279426513889931316118445442163718548271461766908685751024065643186041400404440751312250949478369850911044164725131068397912035105992626697045603045679445189624670012367213151646889431190854161224731115211086099753696910503789108466251572007592255289298636303474094170773662831807667260062041084055863423056566673564219215240937231391508391263935628533143564064244387161362228977651196356020095638335280146027573934349839840931218316807982619058855960180998540938932732247915713208662884922468809052444730820430615552139064333656038043028445354663478637549221617407126942627644143164680182782018775816045076824150972450816845393564353012966394768691123617122165792692573242976558907037728226343870311733757661555569502896142667422862118442667644925492090099188358579135887911494627680884834891952328713537661492931359230255532143778293558860462417672904139271216268721170730204455094978844597754585626571170301843441145823173914472241704778110793644661141270426632860859316597935704370307425822025380478577273626092411142165257940350208300140669010854174056346128003929762546654581796973976637849550936932066536006297635534972901412359979596829327422660902741312215815514557211339252362773985242783082902763968914448936607676471567298358586882633523637102217905426139073621589654585134743482336725174275997262980184765604595819729904118717873209625956957595088029406059618904410359161629974893710805646655240243946925940557339029540257239547164246569339821445481819791533188668188546424318819420377056289322720754825669020255122481392348486426850442671283265440607978337119070729331163504886088774214410079112735597640244212406987142992582115301687576850486355147336744861657589249254482094693409953427759746176918795716752657533069883099200895753725131971949607052822369363746138954089747423252718643421723028641793127136648058020790475681164100363174780698352798046245184437151183882359057640834788873703210792572618753694051541007702255945561168618099663589772773032351292706176063893205120924217943737332991764183306461159109776842285923723082752524249377682448830545087430890765860563620114768936114437058659460183481768307144732758626813639462877534304234575227638931918025220396441059539946419619630756134384424146077218772751757156487662729614594042767398547297199181433294204585960839243076369767312583034655777328950002667683267385276722211440460776083866116532452886518302458284839548938082985569508366591375152108539584250205078348962722650806702782318813803241413999907922853434569022210925699850649284671832598658839129981070074335585566599554749125261421025947560858910209520586000237814312700160426821302962479205478045904030219679705625776470760381276497600507830957557861520191846643313521933298951584620359381302987329500020130171024427412151820302349985012224667252105253438139472139518342024569800028908959816377271243342884774062525244848586944678262885193814254502125142312216136150967975793194593170851320618119385829135550488693214722791174980475083759177726537521685219324280198763166633986952911177189754698767187835282413188230919388570984205647735394901520214875015227966530264264508494358115677102960263607092142376579474370502100618271849185050094860244827582539149933998294333235703945323239071651862043796060387184280521984095019424917023728461407269524986619039928573453876545005595929063555880375269446811293062000878146792903961506262889001681788386593615820296685797179120513775290863788131062602549569550042786665291611950586787373118021382558371639305203197959120590606656070522481794796434670075188174008212232910153795597061117367603587793355058159903159736828957686176132734107068442742157398345733727014378787694756653339168857407961258159157386927794474722408941127943701892881140466899901278023097590679515662759230450621376828641342599537175421990272300964411258435637730042503618201204331947089239510513513526732854662250212486317781735971400654511470360642763158822189404309099348462993799293469619232321269810361433016606528343307327579992768926044473706688586022870845671848650793866068214925419464775316990875061952995837923087666736139492677744183038989454826918418520985628894363824468158304490836241400404204677430252051756771258393844898515189286271842691879534287592240303509630451431376061877404057675181974674620141244725569387843640398545608759572438201702156005805015322863518196678921237164811350207508976234563712166937417650208654754121405145073890212628051625460511058968300764441294980310987532776704825710800920613438904328982034614738898045693019937153800796581266943345302910235008749534924214707506062107996464499990231328609244711889773537633996956806181514376617926497181797037717859654155529166840971708316654602238940141888689735068856552922578651952615298265147824018138466119125498375718438318470022189887787509243969989525049278536355159792365284152177249177608989914078934346395669722731570300664145315568427195202794388877159100626073163118319516692383036501641726864484118835069495998370063714907007418109769736234132987499298896846586289035875225081059020804181577805964901892363000279361389739375341960014843885993576161133774937682195864057762087800509436178026887080754601087208583958137481116994127955587647008805150562879407606815130577775652563429795262811368931587865009010078996219187502043958642538141896315909009853815186993997439326601455965484461659380029380111213586619842212512777779043846433269319662227282505257296589118563841253622109640201991647952395021290377783266061546321662263095456257955172900973999559032424754534973991900155326769619665471153606721505457813387493411477068612046768949769641302770618003812402984413894494561813356032312771401044608699107730134982181238519820552191950547722240044632348025507720210223636683976212383301345924020388718625357462215764608174670677624346974517323084939230501446582994372985397364756210332697903369165761615947906736572590473245777610775656595383286818248818085257077378574690293272443030653400502081961147945292520070067633746554994773290972241163805139842967201051605787423777288431677601888695841457300287005931362566639779068998597433609348973102818195847131747649895248449718002557410297249460250503497800106050157470918593794403179230647311703666620305604696395433791257763593312763876427123892846678514517093828484166708526358030936849915850968781038312496801518025491570535523830186674070552845920226309093697319830925343833321675563546731477527863142190232777102081947459069182986949046472807673323671304384328674195411072921185532551370643566775735980102561260782110203617749107980088363864959899852012988600358051138676808594955515811590573989691628044966001124287666289639566300580148665704851823648084595834434457040868372210171527929967447111017622624671694172715708628485287637323874231183132845795724143367813581125850112130499621120021400442455556006484646749580647100090646349988369701753159546427755828824572830153977478451180347739473622491409099606540612404301884265428840147633659125547607307297603591319251815984533013086017944433774035619709789189593567445909206702317607494064651537110966217321627373874775176829998306649977626001667061339654749816053358541909917516204397917896612325372546821074639286403642266972817148715017254466891893514268108212237769988199104923290714080921793848381567526056681217647974779580420140836156727517479005843817544056746293794276567546425406587096834208635454036801136724128074399590210674399966328154048354896174443943339627901879398108007955707354029956585390455131474741486469296889634760974931151454676380805231862154980352538060405747047914268733880175684437677951203506945389313594116237280730456878795928153268287691086136981375925636801161019750507636362633462615323469890252019424221195303045363396004037712243645195775047325093012292745225308089470918626800694052890805309708158033086587660186433470058737603905339502854980619781040797136960071001309705175511443770137470216006526256418890354837122924696290433706232993220514886331467134564920237982200687590944877269390163407322279686508244666493478697022688238655927409972654457974083303376832187592929527533400036465633425365966623135424039610453405262469608100774030099618581521342122521312987720455457359858547968993864855971857353648273655692064486748501346862361653473153255343297807537036072031931436036469125208958177768788242513665108072287281964929691752966628059562074138220790458323187541499929501644344282603894464372863887145210383183944145381997909293076027416150973238417344362304595679791473438187027110082427541532572039918426811301725097168700617013844016782616123138207660892734938704832231679517855650984460002624602655059798989380767980492564993051403748124494316247646010979149830191991998574344537203931593631720072772598210707118154044358868483986226414093302318259809313831107817832825265184556851564588723025179630616264529788133557610756215536599576876018359218570960208761785828420304125303428638359785303602707687298212951053444234775393175456164852766611459418244482643575240372581895140327447184456294793382865611282411558494539116840850816164434216195767939888983779490121987295276115926747340392684286970176570597296163733921249959290980301400169318158255589267853111382095002846457691582391923709598862995633114551877943207749613391874580086871349481634313225057911825969808048562993628542374293424166340586694587773101353840969456394945880787116662164961447438075840196276040608685134654764355761597711695492017984600414732021567965396178452093801646095554406530647229955020043863457402889585634507439056075391271032178697643493672116411208510526921298217854285776019898628592260369651307074168624877957845260804752483665511238199862010299193084949107368394403930648003746583854351080861089717595970720390661714406926586947338770398620500047143794615372860665396254332884731512287652187583344950139163862676052798235896464537724851004020408749032391990297002050913859509898033654193510347383067701027366683543719965671783405139479375316483152371497880885060631777637106776332024387250569250623266001044071176426660139694502312087032050205693467448113110423916886623275316722329852682116854845638595632556226891208367395087062655037355303310664219188601846871349237078204635302193777983842880388079258906795428612859361670224332237070049169537946047359654616231934549517032360616249494391890626562221679678752396210427875580823634242701298222289024751443670481468362205020301190994787877759070141932866800637214768295780764400369156486518997458209921592221805494096372025445327201480252176024668083599863931708611799556124290227080399998707614921623469503325635713405860394241884972044963872184378689308282052811036537877330199817883662776270806037791290760401176652415667575718812331179096954890746763169875178569216438114274876194033911668970763775720012749279853516212743365015011416389262489826215820997399750889676262589451878811389016474402118891076944651283071634948692048977212671127400373069980652886737417188450330203049693905903344252184389715980735241167236808877781082903217887982826951323599124771040458218044953537988050477813002403456649533007242136903822122954353086233974254868481974990504759490488961349433076173939429884071214239863719434245397163307549383607770710795363901101144824754930940885522194272612847992908224070252638115885047103008084092490136417164119367457035996148274275624890934072146880027502428896374538742898392664544208418127771623559132206275668237949120457347003740570840343787862107878876876453105433170571106638029387680555817600540668229871406462416182909903131376725389229345454734683386941544206228847505179956434089029627660698029071231418171398104889243831778721932738085519485932502762345477921272730534229381111950652669852834262735871174900899028321209406179861401409728643445219622339895386468487651678791694209431492002080532062386020026871112268936640864188468920667456210400960791179496251125254348259310745390926878110170412101055508115348122416056170381834380642089137310442722758249186832953082219464696201952900301086551338652617461530464758160685933450971587408928685233975561302027827409626701863589753322200632737079298708374203093846818229765661674370140891063591074602382385676960525753953759500618852431263126087193380640187306628035747385281427064135849492663947107406110675786930904427315548092084358639273590742633216459604113148463943295132178297093692508035037396663450121803574426383875230632019145996701253489834774575907110335274057415800130473284877444204122200385675931327790378169033765694571081059369991936886101795794567921544874957369844584757776495797355239838585925262332165581752740299119172467055724811895846151451022206619433885649345714463431385531322540828037266444872247609415256095902921046958319408934005706276751079138233257290472344272486842520605447689505124405189493826071532563387341477010622088789302070250390424297058387709500513852386654431992600600936958685203724604425604477245681785973856207213638172028241300078893415521673657533910301130151518946587801703177437788973770109888087802568200120774870358816091629901114752308240225513741410518769768869305559080584867977718682768172171513496043131400753308872781127541388673081874519647705229975765247340314183724413586968738377019449482372381106173474804959470441220058778208203246546265769472156863678255664190328726674525806067726486767495504328391092588764331160592807688742565014261549027873207322654532741423112485038519391953223358814944002502841167149399487427980233627011961930366762078630369934343877724202459075798248091227206782359329224903899074138719629577209787556304022771874819456486196827004015603157095149811115083043596872182982543640392326456049808966205086196180567477076621213142078073890962855335344589663653185029686538795130311512105730326265127220616391721498143230259741150295405537760319205966307660230155106580116291969002656831043635564914923845782398219994615308666816968387357420548344937881302976541137964996788511248934026455818373559313822927465963288085240693938316252336879163010413907007227108951337088750783062957080040764678294093527177475186724275667575307024962684948151575659563219743162142281690309482178151326020661538140811887249872026601472323387581346423800389432149316549230458839905347508762821482420060601363172375030924548069818719333116845201246744355406063228754751841999554113339261846826333880800168283888714921655466041092312742210385686135679468820305569669079797456280000685732296444913365411494305616649149484926319920477504079698466564645686561662498795783062254648623051465564352902105415551282472436318980354701446024094653704688222583882027618703046781125259627568603876607087315292153103704675717373002649281728674187966326644689636342321548896123095929918083264888035536197165923564329367893851318881715462191969489465855967660153091904715084898467425583781108120973950060181836667165285451885763024463475339743203019258714978306717638805893178671698392180745041792622658714273878882480875557577572238714318201963762803595696763548635168755211718255630849601038251626008885345847100486434028503142956023138363684392021474604026835825326871299540559598211826985942055994997569917833941168228327051840078682516413353388854405357767175441071276297081856620681931990119415870371802011556640122088489442949444386578644637036797764111263664709985623039888148931630700049599702168375901333306442871620169146336910073903418665196703190754119123833815478353651791449527715641618469539109129400329122311186057048129381356641974970073794085127774000591898987679301648035918605700371378410849060959399405454086488849141902311919995251658601939804059712764271171032526197106052711409033768263377108510250775000909367601934347576725664724832489621228287167168178697487138303086606144770845151535633942675060279042904805940318896792467895728588737202342220635915595162034690700289019453631176194812856618676884805856143261558142031637492798689035526305924640500380499494000892748883493444546897252188966979534568640633210185997990009749455814621695353175487740925959561917775565347316760441347246971189073911424976530603098166950170915757319555073642994771856674557391359102042700171517118731696519599461457253403644165591978277867363047109426256367457648091509749409943000707201416583588181353529424619184065623808935446274192484329553103646677874586408922588468947490980593948045953209587450342304744118694871305929504331142028086933943145285247457740403614508130389587277849221445203091928764921740013465924475566177344315252423116310271501836443380950192526143951561449476548920343594281814731830743693730587316490268680270337106366647082959522950883342061813545536997540340035909065299726422779601408596494916489007922415596151455261704995697564332588324162513537301859527237189414047589943168793194123210129371667143187625311250832179571800720676790521708586929580651751655665373514052415336801475685769207464972018095779936569014083553387500780923936381771887970943238346876092634534514223551485102654235725658424214377309224331444930271132494619550832202568757125034043337687254402440595779824123580018082007094369363595683829899132120689518093072514739749099969226611127203143947160580379053733193065748620636517069259284741911295865646742877827654227161270500506179839275133933185261655560201036412472548897115342703440495980655662794119656421504786559007716541214475051724162338604326439089165322997845675240808326097541098955512768088158397946743515376288401037793743773225087333365939371186278437914558568793007186646793283940381324287469328368232519169953848760833032523386246612530855074362526680951502754866708860011953532955802222098654740822444960125896542713975211255559252390918796958337652491270089315356478832212701947461041569283255323115192953363094889080845823227389314086931220802120752086766454575411027088262671150493769671322467491919242486841093074444896954589543514195781460792383241742158199120038360494346365137001998528478605376994009473429835481193308657691414339995354944701664422894000120645871562212338918640984775031395981816308192936269599232720853134614271094625649059774898552476742907313766322067449163808687391709687875422583546422314656151614518443368491014034972783858793717909636566150824813774383566947575284720067811088362641380940825579032721381057283170713497248770490966881409379885646077738050851549828835611879861560808390524485426579035757486826323104918557421347305347252914144240252937511658302570884323634957579670206481943861754484316793053985317781742081956657379875791647935201413407601941571763134474199825428606551885474185936128505847783659389778010435740056279757065046705058551178440465995893419084260691033237296318343614773096147604609355142074915508546987143819975860870275201553198754424014843210034104688735152927201991954668763972155525179086217106027621438530376715988168002297531865438305510772950001677776479882373743633027062771194570198094079701034004663812998363538999185271460528585635417212774323330421473605713708397578208160770279909816842915186414602323247341077893396077436251030271117445166598225549914301918216612344706070719531817886165084332010815222188095377942374069607832579180492942906182695148670625735993911337682814358511002161300916595061273877731733210515684097214225160658499062946795007133225081744226605609480672442385828501451122493965175709261326747774070320544980909449131514799740754200689967585064769095177232646579161455996327198461256496445402074068473109476808119855330525530202827054712929568410655178092325575694579400708827048788958899397715174579987058592589974881192806074419718068572972976276993100896448296342124651661558623335494473209278284963543381403652688093089519251722011611535928609143462513818020155733088865499579450223942686003337049714906715692872880520943572118478768403328675227248840114903890418182248480731258974046670067706305792366006933782244892071210212370202710059537667880528578783382162563272289231507766461784159299594028761166001346800436078746577774881613255756744426909216213681721347232011364919086995392550629513188766757069216675051075563933820949804304979250929540115754424042096578657088655025065376169921250332071377656597710325525634870522454129923402640945766126360116965582834978741757574314155396015010607470504941615470464512034508881275726676864271341323878086260087573529899244248704006161869328164564673819150583855951502094160288790574185424835021825545334600695968884658802931150040586554587717912866046816501313327666381538957630428577079510630726655049550077602349110977494883608794262863782296444128512368908401059275825808774175641219754523370581168717090843031869850509212887524278330120421446049928904348252064422746818333674080218721115428599504000188362082584979665996798192117964494376622943008880575459117623751762995256314260743296777655831189870583042256827231529258386009833879576002073918746910682159737239114835924567600612451294047270752744159355576404894245502774401718192969524122180975755420724707183749465645100157988094571904503014969946569020954387070375326131842495274885939494783829923083939434271566052148031041812849822771080098871490878174748950380137689273509031380304223353123843781306369878571155385234054015475890665351181115424813602943941412582724697478247679934429393285517074830705997797287117135753907477580218126662870565117985689114463719660611706129610624537874177815061223642852639545216244250020795510338570338352442050362304861359219477931227843568027090728961108009212175352202211334721314784521319673143285862397952592052174575011766646736191341159409875556939326262279266719852152630608903967298573652390037894690946865737441448850377339658658601711345573352348552121129072840425355158095729340501347006197679632347522247897199323026016072235795951854952789242826046391765242990819632790906128263696123449488613119138104713702315580030761920322640936733178246432271600291471300592570506334039445933290457335488797188346294412914752282408128433050786483734183074844546353685289887336864844298575036788778488788951759390501464805586866857360156902171895277567577632636885584258763100537853507392378468812704252476595558874415738229075095933076921517036466582062663511925768852120086224929415067196553314873279321578028049155053765655330932980212097134754582757017903190900530965725927691770799185100667710283929564098832316118737427534017299988461644723223525880243741351573473854174298734782690574025883913957433858873167578138390085850512983901514910788125780569109779358567668856446096835835253432157009930982758124322195346798152984417164520365896660036669513933611117041091023244406020525880127448324342447591873154152727779219379985104204822539063343062282146538028492324411053241581968974753070155818085287379613396979685937144059095915647335826530845718970635800502915326476761163785592824042572798509384486382328285782613998553472866001336800711983423138415108141145347302703835264897500295664675199868931813485592502827045984031477082883689483551609371989400142074639844081458385964169310417576207290797962720302134519291474183250511086661329593478526388037156003481425176398151215929910381217594513030044875252492703139963650589320026099387975441379844341236874803532735533182000134563452680503457476809227916520354491375856587797945597001775951643226496003413143034395169377353738928209382831353051932749971794717260629125816906174361209676490268310625453609676546869716130116328986552665228319010457063471760047163393694805254756249242192710265539029299356187583954840560681423705438464224301230561767856914085826391469985335923682622432415031356688881589752793463287121619609439824615852807632364230717341030548030198982001150115013439034851123325241125779815700490451261797503574987579691436753520217472716468684732616184358117656172415353791470286437684834836502576675318023836209670916734559331346312812817329031993423587455607935011677664034572054293285815297562397601742120627850555756890363229162134526915894493248873134569981516658299884350346843856222306099520429473344499765989510286659129033485910441092193589404442760864561334188945269833653331078093921650850732371775764161810669899943877739395721587158788962222822938598829709391237121728314678865722629804679129418060840961938820305624527904753316599821124750562728909033192034499981427608736075035186739250239576345095131183754302577514253418679900016179257144754280039301943929513376805393212266126936824493213872340660648612212578087927883849491344591838969909279665676975059162638010193879265125234005123255453331443987232005549404539653287792898498629309402913643183216192564708315134842785679419707749947250407677848802604218197572694305310956090560248694134260267310634746585724831856408518368990894164778518801060438674400010200339919131411293988905692117678460894058455760295873212901976760108804748478809283174913951668511759060475071944102675932373854302990773644566689788704171658730934272505413597848221112437399910444792318507029035636616905103316477789431632145008934573321257967169876875096105452397561337487115912174986598059798764070833622016597794138409934439977956968125587796599169022464618608218238032779562608991144130617990453919986098403672526670017523551025009445706490371066561724486256097553070659414261953035715079197643585309971333772571123676708519336765976911610536111046659887090923878855413199604897985570907235672561765743951442475486191054779435561799814710973524924743056050732776825371805553915797283371542696904203076810331094766274583199653285530553482041922001022745933764792376006906893533723720594327102433752850254608693733276850430705117220997762906476600468521348011042208366333260792355410489411417080295001162376235470703470865894721309573461734178686586793586367540609970531590717554941191766668354110128158563567099916150567978914343829838280275536524436670361747198517862214502415741338706303199166464848990563546931627209426587375231521275116103538739393313348729870475305434664976831608666860851189054008233449013823756638624883995909164348640935814995517229664001288743773050542631815510401017251177550164275011363257898017411868476519527649887275989854911269636971718499562491184416104242140503679412468152654884249446540408517406344784121234445955913047731912318425622020195723798536117980786043054399438413135269048590332284117048036489826826969961232056666103698132868047444189777041474042110350974826724690611050314761915805675154409363233637112858860302397924935349818977781626009741248722240199186993035888749401605586739523567143498711345985029399531211943618884525607612075669798291123453369514468468927978215294397623794452858486028137106002240427421775866332118525724915047343024110440284097246513395390028561994665527536004892344509846423292685223750018719962614544831301816569684027949611017461999094466409925136178650301534321267870072840028450167199038539441598275567862977600801221411571456022152709843144419773346990142686384620370760647725567489231983746174719358415534161333134085208951802251051567398761842280260649530676490993191773308413972353404683584858638613939998271648061843937673017400186594842270716725300063648641814901846078526142653131245205735610998299839155713682463495602837638923468536732160681272651665369604098593172465297351439526836749880643047630572766961403368901790056045525811750220412948769395785360674050158659758225486921494306482080800654319521697236182620677897897894941009240407096050063295574032114743369119925832974627821005631248643697826983688999968957769407675532205868198829249952496327584575244823950576016051663367007894893438465949420433555185593948025437720421632003897108641641657234257396263567322749148669269841962295395928440441700007798771638336758913116927130736915551142795632074497701431036219024101423909342273314151259603094280134315992943413568531479975204276470337334257012635199012484308564824539603105979256775698829959024536228755103133965884425969720559782592145061880338821394520721394945765586300241947739637012210293176432158719392610178401731346691425937417085381775639116401639396984613941301596981751942430553062795853742958369764025055054840192442110389598936537374019117132559611268571053210131782817394953133311866328498620628153082540639696614016210151744096107162059174188103849562308235131644031880705841873365433577483827583451606152157066816927335651793109527515976240119543070295024377402317329215026410697684460812137528177620225420288742469543775565448710883995611286951216604745264773271615486212574406479500082246328576231755229768148958971012784782871640817297072964439090300364371458684419079540858568724020017158353611458378032235149227407886043280297717914922030014921936365642968183605086808873423076730040331783749918085349640929381704872009757889802508801488474888801894502585019213743432460640275473404709374535084629092494294540079705320305440980649470187784780455249447885829681415884965628652365154731765441967735514600744797121644216873207882871258769184165135651223686974267016802212360692755506290612398619469390035891183140157571246749538154203183747121664761159418264177006460782322313786272505368744884047420099949829805827314392984552518435027159055826815603174254727939986370081462573013569739894544775470792492185347936917889815421592793855508911435789601707319144601683677297977378683694389573974458354084876515047928013648902143199771332643851926035164855965026736533787939257605005436313577314455791791479487865257468713113029431944981901412744907763048182439249628599050383741298725874174146884665578548556323107331588286809705929165441527474113490677278509805040007911513683001907956452895979518441328168437974989827280464314570297834354985980788956113227134747163416823736068153562320667935841111655707007090028578524293970123871356950265889624016899189863196727499135235636878353107200507296548209368564873551795451234977548823397440291952013466447556320905713163592890842186844147848520904291266450931268808257910438802507389134487127914812920285401345776007608817316275924240995623236298549638731907369720474210347461220613958768430708952280990107086485134801914371423444459916165693404110939082259045172510126231587214065695178883631426984729861699134482115338511509775510135149536795172562361955632535701774621966547031413813479127801776708118855251472100040311713923559709665316787524706774255631890490979149234250382536924147088376875549940860503345576687948947317851392883515054276690453576536601101147823447447035094110241252765691509095331641083036842594434587933613035497930867038169946180734814019028504621060800946514958310110414932518782323685296211249780319740608388017737976284750225187249722688637292488419550196805568874459027860033257570214209868216406035898932842183811668923906762971122970926873346850792852271303973311856641781098847753045442260338734482737763125555104464115837516051379972012174962094319729727481664587243104528357106418899585888785387819151520152114208235682971589256974675396006595141053297304936251014575545879006125780166442260682350155201087536871707695735969594807930146028063442940241149737868162607329137535542579072447881848357363266216566948925397956377153919855519238167904700858641044737138578844557374952100450768081039728902288042295981303003119233846726796685179119614934716660065977193710643015276647033256036884352505693171490938901615043584593955822966030556856000744664094879676994677539238765036733957955886060118780161553351941108455453715193442739676587501555660799841079271580505016370919229631872826314921033525970194341154732591901210808230353473946580833788148833543755116419700650290062519509448086715086817607062355142517627990641464011094276091401048652355059052342826384318761930563839181110211632071337860719449377203431716810302444763305900220730117732233037468252388442048121288440752267062623370051929058558335914002884399738702601774845909571100854025833317719519544729705289872390768353812139876881562614402021617199483179992181766048046768921807691919014535954257687993095435869587442650879114942286182807821246086419310536436625312583672528205488852020153053624899686822125993734363446434959774555280236006068735671986644693975836734874540297396053789699530247025791557766060856778890720636204672057864513789498616102707910609569030438430249388587306838207302595684332238754627520210694466989981976512397762323242408690460932797748952968722365401806372508451505597405788783237478185843282662386080707906434540507627167325423231222269073397377507453371001022893238252369495406819877931238923724717014742681521948402448279588265125243566198663138992921234139593982120057522444132196459493560290920489291701217894935170187762794430635646844127903468023242203608683465176216586702111351123365383541442203569719249339235933488594944944864164995680770750611264175662239949366993273328274495534672457863522911778972025150560981323323358227907101093669077424939694496450694326883432666039712406492478235715697393915646143457305957395810573114620009546879210667114153703034837557490688461334191081121144678009574057705491763513518832180782643414387104182479194058643948416776227861266990544461361555826831384819291835080675226432313669563301218376919244655231281953085421108041618523164578872003216211643270037659838437791147593519875855012790805623922197330329976442546744750734188435014202035309407184919200118170104489410017222337468241468410712280636730163185772410185472429545972599051323260851103589057541669696660718965725854475025090214096151314997077280596714979482612133475036097331781675277337378803450260648192780530467762652907773051776480611401002045084193115321529315638324533565384498018146128100564218493436254092349869648481297478044169269295985752973645743131478155068959653145305471717092505386982853799489884653694103907629258576036226663112463978400894515787206540093861247150573467193805940049896917346148774023720041499875816567580728439056139987609629584953402968870671778950631971074970709911262437239036923449257897911781862553352215272780828776978156029522083507440062555316127459315826588995903456442347827383393051583753151298482705852838885090315717990559294432528810873559233279435671924960585384721411383248954891156432274950826211322846036733364033430607002229614539349795666794262449588451249778653109876265622714936894801681615532466983821276877062617520531168102414823723517250667243002500797668088848109421062276846922787515857630883875731416943671035690138317439755557530883435626646423663186700313779477488545724402812005628518959495250834342638342103738737532158163053586228366979159458353945375797262343898951528748532191209530615081432717357903265047385706528369699725395556925039349000741871680175574196350595448051751629578267712588259034760404420344570579568805567484433931252066174231904957851388607292920664033841904427192275853443866494037488902998064071528125579069048951025699863608021594993045865206646794761333135173578811511725108112108720919562969339215828712266205665014489354885234608389142697098918876986234456973728806762810762977421655225870701288359765278162530335085051716634309229607442056463793127099562485021993542362127942767429500144570102616124890392421765579733386951965377983346879048747582743433774366255186805064516552276991497191730899726012299796842957742915468405733504035581574443741870349503346406432631168103326808082151742812917294277885736811478125711360641764202366776538872015816958554752055803107445835522175360856574211109482025124183723197270664996370548270015928464397305263676692328419545534205805951610021081812614683682910591318863603270133087379925252410937428456598574612872105204909133131428551853506436190919020232073743325522123127402853533312339406692733928471645692490548663500906800559602352431917334018769668687894901514265985884474568394844843140444501231270877746871057159993569099653850443639739493837566800461974710812183732723613106121037360862357119585619359845774755771752844307048959822484056315217029612396420386149047306417788740894139455848249786900738640362740945423253158488707557656430919848285105626472231612969602657508088250296422815189840926105469504258070004510205853743274440668013600238828083917172770803379776777861698735376956000556598972455051877892582148389709022476789304520940691767072019281842432452124373266367968450793619534996239605698391422725278939756692774946994858199865319946095426925722844758170820862728531763032431627202111651351088174192479228136337315615598036749078802314061233229757654891628271163034708164728714081168531797781179654333951130325746468333139930913052398517998990852328704739563746209452441575219546414876793554117568046843602528771225105692559925890482420443559137616862575597425679756177973076215605171573438813619722771442193870231385052872082207832105661381133199929449147631823525223612591694003597925337747498459670632925600419747961696063007492835293597223935591524294406067434834767850452641639718992187939169153367069990424364774283358531115829019655803659991334972440258935456140945488468866319347426806116186422223119399523784772868549784325902451400736319775580530156123476442173985104741674916806632087883985878739131164899155427185397745863824942763803013638789206008314462189634623582550252681539951566969833118367525936470368493644108888839573437876288809769632455376691494108267432704713720493199655338574180710413371027715427475268788724630129286641461675266453445835399085635838923512814407760939250181569254198600397655952515644356882960223496252581712294600372813236213047193085184144996099994586682374425800423677649585444306766607134630663899780201550253101309035257334471078565511448151356238861285421949675156034222172775380942332496490347429899046045513691170640618986196543612562505350284291160710240183403340182681991075231426277758779309376724940124477511146443584561181909716774667305259444187799222515955772438444947191525196530018577931951210441515251073953852948931284965773832232121437203983391853048882876665886078802279335022377645330408527125382790272114036359580779709572099361077334290370891420937901881251974725940675897281106728864850035740517938617681587271040531986416055066247514038217412009798022061457207635710639693635082937387809604740510974816376397182618686087852060538004369097123629230068545182969567431828759982109641505807683845018338261443211320431321880508758790990527131054591497763420723575545703239589016457712955061534720693379007694002789495049030065484775820541784422639642649612228738854116704779384964730007283199409849307836510815822648944544242027562298973032368780129592263904300980332782308009868617874456586146769455948880994529555164745805290313444154378404312896393615280551497453684697830122868724796378888620786518888498756269343639833045130854587612313820732681146570427239155414176230759817421027051731515668400356194688412855694801896658947734984644389527338417697765322819359334867744476297578407710161910757478246959904938314172022895211436183190691062728992356800782385081280362934592038052053536086652607416148414263346230167419056033954090649208077600257206390718384175615328726835795462537112411332784816564497494552629039158265757623912879619898244594511540976720479298801875423902020813282225183731441279917292686286484587267492994081299552127736433306025287481033123399115607255498484641188173652769320344897335768092042789045661724600839830366845856527290417059933889147193222966919433739754141572250088139781192422602729493408305542527913423021953086346757976562624667302275939962491063418210379562171081634934858360604516361067666702551093083382643659151820163273159161036307260130031422599564899857030083415870596431409008757736008009289681520099983111501937766182067732470263239529665164396752790276597343455139529010237990434981907632067149304793329966461159785962450606027324310575064443041595215942823952658595381753764161242525830512398164442919504433011196030932681777943604625026038638187736134408288711232910595428063443121917308968949464355389813722729034519677186481580927126102640162977117702720755129466491743652667707511544515549862740180678862199227252788438767354046753270348191588768119883406794231740468463203963760600861987300642507918323087963736116856592107340622884882140484875484656950368444358538064987283980530160578114979152343479355927041642276650229480977426407739406002471884904176117857299228572059688135300169164562307060115310356900834197438462965962651212706882773283246845373698242373954731705422143114500269039713839856950418954120533976000320677030209329787450835939605689089360134754747500339464783708628666076111197552263523390689525522541212958986261944166156982642842136677909827695473681121553639767361358231273103659143006472227299841710819664246389596124294775862545129774085766453756879880372142826158020698003622550900458608903091851315289524260132711431426703429118515337899221438200805044343395877621266362017073341212023556569593035402137519829931384999352480775071859043083995060891050797157974572091453782184144677829291780832945350289949017153169308103656313194758468497859046688075147118284014682688552452560875066409714373374014662284966686319482942046693689029941379800412616236213464597894281273387483531995238099044511889553658367108835913305691329535749721623366184864596116556803378340330693642688565199076057921694485640679624447275923625667383737040330930279365103174248647919601956496794415730445908744676836961326749934928214142226007838170469326348151947856879942928236513103064076754714838772698201463044662487663511086217099527647079811349349635088718315059023675399332526632685942584959535596744004748924687172458931958981739068222559321437817617798192086376051440897711615928529786117082741947240756929173439995178457524567192704606415806905315522343917166308283236190955497153684984462852362857215228811588890889897507960785705372038373009661529844701760492771237061835599666458226379877135906863812906452031273537650413712194172711347400988875417307242925910840835654313047897740565814304787314914088822916885350428993786537765511761261152062642763053830434281158241478693020290793688365882763725793643108117680706495735847887844056986423890801522798950464477342014426935343979307013626043557169465582663598131889652485988589525547417938242659031682927216223584854322337645731147293801472043286983949887141251001751395092013826500150690115806699502740177712717001982743267226423024920574055553392297154949817286494644108749604974417560546585051011529029759884138114121184507745514264090999529480284871379107880477600632132662880134981880545977976872512776808560156548593772778262770739526305276570160591855579875820834780716174396009662367056438605632298953992519143435503627916701134643194070082426781006454764038051105444295272149234157885199800251754931791232453175970693924610413540853014779188027240280997472076512148546258322887498230810744125145499820766265541994865767415611054684000410545695880322560121703677054953183871693476564288080082399522239770169491497790205449582960507047867604202661147503772471566090166123671880393340118131117720652235428132866552374908109907130461152944737749018906398678063077129398078803116652141645191029362131418384342194584280916496196119756633480795512770004749210339072258828583671568631690114577673891045850210486383069927345979066351742207268358057103769335902803977576580513256410805297441409406277873506315811385059682772549371323501575231168585643304515761165083488459953808190654102706998814284180424185970812787423188565179075715803511401402930082135735003077573779822670421409615514469171585497726217761923796875882302574257910421549815660338546079126622762241259179370912871808758338377902159167854553219684074521821181476900936469562889309337193994859606108440549172689105485461521476147520893132185092379621943382604769765711380271517368724185489350155030631400247164875996464830686021819933360738824983492099796811199401043837991691829107316659598603026335268789070218186789686628175033246048252635440816285377214127984719602657279960334689512749145211531702099943420261978984348947867195639525321593543935896616460134766111009205920398551622727482265284540239168904535841821276851394731365612759418435106830996375659403406861440747264427986244248595768692893282107855557757181325328238108675720225076035470172481396952198389477920986532803985366528106543876977687455045450279370884033241142515646501933096363016154224462456407807514062249717198232219070825187662522319227030974781676904450821695213306184392429359370481168343895346879457483290867632938407263497216054220399798768882820715781868775560598435866711923191770683918664927088451650280815959348614099055226300704861028297886692674255120452864541225316236361609428178684007136907019366845051619269740830574603877088119041260000515059045920756031422162347117627648768606084617052152040808025478751987645879414659751876924423146150106931100360617483208081251458597485595125340463933759344055412078236036639382490177893941504202068015704120561182035536058695450537934600198958704745501686334135313690538370431185556107972733660210925873412258498262890927260397833980673810116813374749722104970259871676587425799150668166729351206714424406073234948314785901062934481917869241833988544325575381201433306341814345415428792255395679649857899620886498525276069771281767976968262640615623219409335996245057789916172769736899551771679407086659359512999641605087654736276149749571838977431275905299343031693938900391445639560628552594531988077332690402410517470860777572245434808214734664671542553340239681702188750598015906481640101888680384074578225348967394802407215557852195448934791378371413388291278229730427046693062802765449525498285481633022757273356424756956744856738959847711016688021974198160172303784460754814912857116828127919092121992329955895248531049103511510678048741693576448537719910466317032787663247452302475024711076384469626820630295341434825299111791645260591264596077254603757442866147935205864005630661585863664411268603531717893511127482620913109401110566262390209829675135241500904805808196840255419721999313570978756424044721062033125379810404407121790407449540915323802622145907893456047305402033377390703537135514167305916982533129359267048071101313378316017440906718286757655647459988508885357195658467074661149356075552465589870732678323353823610929400516533873823625852651294545329157652336476201694713906264352068382991491730130550855910165092126158786543542945955072236813060815618659664786837213208263734650496915528194730371211960420892009078879205524612314523369734711081490804141925511211187315661372374790186905992997473596745666194626155943281955618206322810499549030466243477912228728593220921903220519413213745377024293486369668501662074508248858146716074748201473235815363844656257380144086333090833921875592622494050780017808674033106008605061938516056450098072249298879016343637489630873637851437850581698903058389296632666212037758613451005030346913808171286882601303297955323256353876280043283621334534766776945671671824566640076108983745679777025859352519662989660168494019331961547942145227100776429169476426117094444179919388955861139631229118933556086858962047309701515118957124563119749585802781804231643690982697920974763165138002235098750882785160617963769498796467361350527245221950731047218099213851180238640733871651599864892467040690429101680684724692858917470784485322160018911983176634968386416841279618422054223418036003492072527405779872546728148048728813987993342373600204293245854646055921162199479086748522070961114824114301321958363960688182830204580046081354493554859985636125191219942416167093177381250784723946597378919570033726809931037986303665991439598975612200262070535291671082812880104858763851388498316171254242191052813963332907125936443388907065420620221320012273445145275919432790161511876115102370203571197957680291149237830744809057553504617519498225719535373969049613554564618608118299841497829019277309465648654204797217839850376610985687028383250972092979177598449296111894540903287242319023933508607377717563457037324530593951761693871688435363759221208726154844306071258998695978077691575227004539182622332732210028943601826874825342633442376637393350339916831293276032913555827420558765824481719602110390819105375704171255005626331775560034965482270367501764595830946000331249658005327490939784282199573191916067082566333332408665303970073971967146446789466118320774620235557017261908474915077856729701717990299969544876469270823192930286999347081791573162942648256088914613713078186445668268936945772881063622808400731682655736864796071835115263668375223806546431049305047218408734201731552822774580850303307628521080069641505024398950811343972894550597987538550587062097519723368618254173972036165169659437350807409207399142559916375568989409879216926518311056002708559315734763977278164953871058217229247920471878263973620021624090687202502495416631000665350121489688486978555314007090189896370110403748480379004286292918787338943953928332356738507551211011032700097007725729941983981253680265412390895824442489219734461045256876477756197441071291412861644813159686620323012029669228272563925786130011871907576779116336600285290018487150351862703694395476895210334071049292033555325288502375605917843597193997522206327764703660508602598033832840772770766692728129887510739436604718955036386496015136651452091629083985602423320312121369284288993810700787738083566358679064521106294290041444980887322076902472306492279581612141129274833400814889500123715388973887940050855800926860104086052977727252454744321512644257522602665089111375773826365031904207179612058300541739177583035552015864899682997888234160201326892225372371756907922374983679840182039710269002200743170895556926309474560544570333159775824530570257986929275747933843690932648025482674512277336448531790356168254454370562781989136790997496598758144898130113824779095592836673773756316682812969811456797571747298749999546465902952211362846461201700599962151925669012750805773816881387561887019049537482625012675048892266894347249533721508197101456192277968967897818163565597994734611986640437507199195123708981733134115199787609102055721350556057954110768634361319669580769505527083153847955799613876315172485059725308305180879019150756407616279494943013471589694552112031941323621505758064330882053838189383278746865822487186066945387456624334810759441525802585218441513797847093258747271459850509167512713185495113992160260864333196889375019178759182358229616763239745408948705264531729510711939262908610281410526534673110358193193748608350836734861064385131043248613737970696857755772476978410144753332868521465660298834273430097228736748614819345471780644556891808837894181495201881483110879328296461982389655641400987443679258524602543676906175769116346315717808169823433852652323698759777832179319795497597156344271076917217932721175004115524406964543727543059943241931034651065625141380416554554980535432120458682690990978495774231659952162884682338001739552440337254467145046957210996809105289986023860723234996599828300608645714506881036150070687593209346221122298130627962721296262246176931231553379719518150187578197403288607345740209321581155294908322462662608498840537361893472496137132536457132701726403739797434888414000478495330839550433003424981581074724960284712824098573972629263597019380677019624128775094904813416998513818777310152486734554899531181886400133568938249608082853317635643662381291865539199622224556389162967817754451812726690382202456915607682423961755850782437405349305985360092705617386809801504811569088183776785091454496636383730192780380430341493367421490272249428451084461386997619307481891747251716424437644428038176375253064985535358452061934645623054325366317979215737943778717563143803468374198788866118944781861054792347961418127717200336541388538518227082583367050771539773174907471139741500414104667992355361333776996032429013555527486936733309814454108798971450290127543772201473218817784770640285805765797861546886037388830664395546996277384536198843218830271614995982824485546999710217034108939964274616642288726401323805316744699520474423292084859835158978466384703308776050777884350436827145233311908467868062709870653511502929803118900818600586631652249613823120053436439371115906291309916223147507382568739138708187142109531357413292184916140604347803448923549582277387917128190305883112242214121746904807435690548626777509924566914681960293050598661882751768693097325988235559724321187246732703535046177668561143184648197909940531354478530433631462033777043912032466834130037593958477597211263750574409646130413305575588889483784532390097278817190105215076231548377309021792051281110392091371438325361340145947360683468337380782365669615809469694617213119683370104289736216652615774781351090775109208346596342729055772181021081716771830825459506375215051591214968617841023274362947162867397175743232524348487726740448995224129633323351754348734716027286805253533875852009399428683553184661105396802079070676380280424135850750196316017719589184407339393006425302767627429250917397497634427643240926947726413409888469969342860502859491439425523882183114991095013358611989706423290378903184185248988917619935612068153201194838225311567624608542663384219220586451138059212977908260682883992742954992721965965265006934830269524939215281519082991048078797304624772852743113138306740563098168315940112692341689954194011291965375417803313124475566147304536113820717739981985833103392973457587141132691343025305519018294122966433482511972198918597706211467235809630157934462146035348517309960795128350809637201019717276517275491551790754175377552648370992782044811080075737273386621294080189068489996556380596264172090961754615803326982043812568423996093225952197453789022492794413317064022431350644514474972279620365734064080293597446493688009924919117786011417852053404461868996863638033571874971545730565398713715731272741980695556445983489202152395475088861813335969769099808118128060851179284089858371631764591138498439232236839632442271228794857093238503219753085192378284596460253692302881680360212223647076546988687935613214803205077257303226711068691677248699719449130226201480461959250546715574345889447347743691899285035619453819799090312584177271599254438378182049647040410817623872362142054303898487338040004575205102643032756200802022800373311985670572317213194293320448523009396940878652447542236947022847992680702268520646178572034014875691501942127601952257641742597802449119981539918069831991708543362228184816186960955435730889032307174281077359728118999468315327861682032196907907001149916443385811728700086478595633002647627579500974123512145634278866187095175962674625630404155825438980386034196353098927025170910081796333281076100713021015251655500044922228031058692513944484248884912217595265471063345902273317850816898759856260617326269696249240041316892973890210329830794708534248524071483023249787419206193540243604985493524094291941167139326203287739445824612357769465250915805834044390974986153013410594029658379015332114145923858310765740823389827154274524009111136318762363749105618514565473383676768930798989471657379426998731636799813726200061141547332058564668168730190854814477118448398637891668490606078071642107746912840200655767319102713664467293076128303304691824969867835379900843297552516171655863271044862237501303767834015544583353965793582826982578981568066093009627868295704736310906364674215496018396400850889773174195215011385780942742765664052544977617319286253011753019997425587947881429984180914529289709247327346465799929680968351208417149529923629777232262318902393635372094020037685182308359710247017470852457249138853392329482728687359085801985878343015851941135675092418233869753839378724314237100837221351087375882983079369672555044292719032242880430123781465511890241836515921488568743463631265173117103226841378740089694811474552909885210510312540769693883690662048537045264725881918608819864181205758175576385201272584243998651367020266803409613533123652880253760578086166090049319596523071493865448841634677182386649563836125531483418063198743884526262514766833026748409093141177258122389673667648288664306300428814452677377914761449179646099384115585048440992573951211068585290413057690923685119061326076333972990384492577800552660443799671389104456345260364249046231852227642433440967409032007863006209203200878193579261474654346953898619068518823434971742314122691339283824632133314144533591186426995985474065115834159980173102825229420668906839377999910705012627828839647400978190144817660479902702749392243108759208370129004798841099207143160006381758535869916259979479568453150071357941832970737796089270115735470270878820199609689430872428621167682962693219282265833239639731382173818903333200122525320959973134832525975260810312318436587458423471876773966998821638834109283967010068762456643189332386254284887939686809469119032163310574785946670768336860632309077241128557192062880229680966521939502769070987306640708990022019746291581002119244949552250441466471175771198745887249724003899772577235515519188068707445195433696265214742017349919725280754021001544344283658544452200625914180261578431108491566987793803108967630122374381540660294070330692198237005051702422661703986809420982100979409266724518579535466678603909292161781149568493574570070429241497024907081072566081175194968892350575816483684593825888714778361330479699617901288713409501622996253734371838796462601134438393479523550414994439036619575665894323754507826314314122167656349588909968730014335389177321701758454707299431145380788327938284902863887326316591980975410936205017306650414982102898118274549443918684422169388477252915034893028455996029318624020895052791927803922840166823330139647577796358318388791793317973011276035276189233031413666698341833940554020789887262143910074862269327397926134949426348142739639342173514977220353975401206818495904527726329696573880891503995343933423829538750753613296913222292964965398160598222154240802772007601055078928711189523735679753655148523891695321306450281138268628207956285848561014127547904273205818031801738136082045515601253664718078076974721281189634144148216006119762629185694760682002367885879986710351768032429005554416594451019899628948727830926159425865772772812617245103154805340307110261623196049951444846094769893529780836877398359015684592952012891305547997159706523660086067711371928588431081653182576643962747705682924367730052586060549540924570106640409644822225065905639246512913390174973603475997872287179600899210760445982627772315931282967943154578100303397308175098030285360578637501705989412035953643900346632190189884118959765231950109515264965004320294284193950268153689632916080768647488380165962795742911821235821876334048070731658238800881867679208327095903524471080303565303550889969026093575362322421349915231868893422248695848714613124511976069973553678888049998628602562869325598993596561327556161854060362016278007396155796996575153647053579112276643033725495695861209524032688793350586577635900149581209633544687034094477392534733992919978046204718060552543794538353760227218856837764551128852536448067379630195051685014434838284748025587310853654097610346147870931051700454605081849244613195030988057352450522550799767009356052405304732017043214591180252538147060047108766961989854184954355882118275059349041068673498211936875428098432367881371599196750872959258616896269017281203307266067232645797792147281287170173632423940785351189658116868854338642480002211152917202237149798188188313400732308586091638447152486362942891384169691785918461545868549792406622282929978883152724192689291146865675624261251051803634273238021254629091357199275938232511357184126360406441812567721770686404835080171331378548807373610545909187368368913796056252433235654986271654586463768627677029959745265822824487340670301048531441204499481235200091777058154635505112528844362797761767425971604425189622938540944542941027166088428249704245113329064881057025357444007060386528373516378286780463616621629525695778397116499565110812325038768265357951999888117899559540399285055755683006997962787599646587207658667940996281584241413216665526323779999196595050146397935687026099346075769773973225081829373527014038479914070378934969166842036132376414269867454080767188825533581282689639227452645063464638832229956979618407260829138420772748537780530719610994873108875714387004822716604104302455749828226754322317882878163430985771042227500336777766204556336085846552982199215958279757192108830143908529508257243295563657764315485911962121809444131757199038875921191401091928509786904509747872179341097207204478466513006180476689183749203097702232061134274604822679340094083046183573939030289134691396243535140867872433958080426692232699902353923530509670603440851965996346371156981204199988972574408062315839712126504235304356233482148741624055668387587015325928652091054802824290884516487320682060042972898845569723567954512408912141351138515877679481229754674625976667955994398327820713821957347395358970467536660867521181816979638394460071435768217517816069627468861828528440326194888908484085741954206348097975878220792159911115146645373605724138376298205247718928229243763300051817818488776970238520439683863861266360200566545887188969059342664993611779339632458551011029933178574804833947816344555094139962636416240543049149684582540713242487674359266502207351569586936690302032519727431587300666611125013829309744559253687921459087272993204559626658685940708864672187432441321964504205510924038280688467704577760529239146973897723046316247359187075533160071850532798228961886732267234587992661158873042165791113866009747571978598382894300106937961175178671448746289276161259851101667281319821687629457348602993474462629057236486714759262052524338241067596101811903314056129480305498355179783670641614981050415687559269499760164204567754180313233099696955885415008693686140445305305202299025452137953720673800493331041453680421489805678952628445122478738332396065897860354649267996942650041380268157671577042912270579466942840334178105232286714781013980409724633664181984249094805755222989616376014195187783769678012864618495062128650726644290597563666951918258785456619215312540027481934802596596974504056919268935354456683002763069644437631531563963554544204967157468923390221145748082771146069208160566529914463124440408177156610672039356635479122075885961896938549522131787035723789262385552369746080978593884883670230729932575393563375463395935377343210655069115099794117141417804561211194873233264644857054836476320439819500815722819820135737770694317023021315210595766378300785237738378302273588958114271621320405588744256600790739350619445187579246266670809549390519476570065433052982685966441824558921430745135476698869772821235460540856723482920204505352573610895936997325945100751748960773362077866289225832358382480872408191226277700223274654362033261479142976658581684768344140890018792511822800997671772265632705607615972546903512897150161212606368630579346765449208063188205134007484844943278471338695196147034970783278578835646806921394979371000468948544579456509010191996898866277663871302884120661104945264768436660077169237310206366285089342745734394019228946712038295188782620681447747325476727300717512135810963802350149950270853740075115825452273045941691214092112196437981140213340693838365299113868715584245894615802003744352437827218605440064270882842784605360952365307856475964772813945591585407470207274605996699393532216080319748835746898853045248986218821300365802691947924744349612426660537661218167016501720414224676753780839518556659827429834358020257498006399641762590849997873458099039751120253327744380457979695253422386248941845139121634921042119561725567102845029155361865782231110841227413971974828885186776865867398563532589750102031097526280578738630011869860902260520846243838306314806430056282775024076451275179219883736082482296357616958819405583141698358140242594047621523117807426688696792909014916606818308276804078885968739951994029998015998596781683226981002730765024885647628853682588285043932751880356483788498182298885422371126639502367176694956825535461721746282032683194487793377576482642592984567162041483278410110258800955271139584793591706052993036327497891902189384978881432850785003744561335452597906619375135118950904326539112095561474698537930769669630959369355047435409120803340570122491528302471769824236500408290256302803024045091551033511880722872461788439037100148180066463660002900335430630397876735707837542083208723146449790668411443224435783216608969958371790140563896810700188193796464902816294763693014736922696498018864937825465749549015917867255389099388541237755453043561975378820393606466800115375115294991343710112957747453213212032944704754625404688474873155306006047682378123878658409262865855593570472680315794396660662269352724213822574781601898233472682907240084435204295775051786829627163898142157340794564963219514139221826276744583951459734758291905604559548339831721266493967349134983881373184466715635691204971523870187057931536503076723089127182524421362976265532482078998714830732834446025949430112357982377186414282140335895710228645226731982918018866547089014393263919688786038002670693900002682483378474863921307462042636869654433802170890201775866415065657166434860753322989307671783780252448319504613639070099065418170710953166809929188801924560292382032515008885860096930111879721910649470386480378172391314241039937373410520361951204302781577427037465651808377687719733476203802037999606662566664428500480626934106886728380006146366439846185853314788233200609973655490945029951055153583875193670647531407319783561687569048148641038652236544597742950437091373748988903690684544705355617189159953704859546483228317128594801531595933367104421974882285433490280062915813864773175411408370657035578384769796713802174343392467277537849259830955433020258215455371848939153730554298457779484183678321941471472682691947404843603318604843275723611660167771302383566298408684682613004068869803356204781507246864121009255042896345864361320922728655870471977750428276199796885499786347837099802620460064597122493839899779906739059776124401178243213511922751125776186438346010848186129954061521939409523342652524375720715601613466395888969482488650817642965495916753911799953461456913334157363105160020711424386079817647460943402408123630536997997001261092596177415248940276251019313235771319172876883427962627213865643718838399939789247289454756803707169435555388273625323032482402107582163373017682652468336423428480923552542688485830026498070337609169019793841656106158457909764712365077563684717420587855570991464519939959082540864855829687857262761616800416579159997333002171459787646246452208963763539160460346948458441388716533976357996498892592183521866329043529567460360731178494148740034193294591725919976869417680084348500093398556273121052769264929528047007529412419948485915552705219325282051370991863655753205665205957067650995484754378756578103863371372075061729980378623265499781185323520146928332561150443092988455536929465629978121720000233678362184356795492072740240202120005762633438300571211558371854337768346518620276122329288849461258977151151842680649585058297747391551831813185137647860885304543476535670867123185709226146813389639839020234956935214542775114163500073607567671984707695045069966969825652277996160596622627995954495107047011707190402953250298382755232949216608189113601844219929911518844302120929712617380218189277785136252839422613714469701312463643909882133937861811931165571869635857072369272034548766470957985480109704344296731614377222816717170630222717541953394571080534699728813215939064620812946146069367491115987427914405212948193833595164929397843599766973120251778359242383025081551308263190670692310718032311923171892765082011806429762335424841511535706257541900098443598635660169757787765972440351779693502920714841129594939835148595996890207755152210347601611762212956218934967167779891316403876456683681776475718314012017652379580995908008437922315448859339124995455154525892991640383845633420274158413242632171107016102013335728963000333390887138091779964538273054567762535860348848037914081209410962000699397664958299436713950512196302454172875751849826963683494878473213164432006683444827163417049903477363556136718094640404931848297976221415549204604161908476952438354641667604173960715296800156083281593099461660812622719649835757600896202650383050788516437383746142449640438550445024481436228597466864511154855151565953602126983316395710974475189639104305221901795613044131406525386289504342270731698783292274648434906978149800720839302328778140153892538361985153923053205273176991179126511884974592062861540654435254599969448481752191993106709343561265841727405961525527635348126920939259291221121398417072837776055908285988233337077169925509283825704699212892820972738803405193350524615955879178229557081302213851999302441435228776746621821473902559491168067750533330223341671042723965942743991884104956627327970030657482363530979105744819851228831881364673968377277157675435490978544606309112253510012212476681737794588738904326530932481485856753889964128817513171490343906771085270713111350502325422417017984450315442049387684778051572860967915760655741186524816041693896376334131616678710619073777649127803868274627082256718321474088938641748095568836238205385870561543841238766686467006197344235518774622942505235864288445890014287092812387828505920237355617708563851873490608289411987301737435735882412701292041684827920001706399987379305844681197095266372921986062940922781007337983977711482892863176241677353193641534043531160720080583954988392013568077847999187467678421717388510581410327805075182803341835822279192324587656731948183143362362581802260167126763803834524115583753019081281453923617345110444419699075553924470227920361882427904224289749541738700736499706659482294309632948211535404504256357790068301883190165911061535076712447841503806420681726598888682461493079184444687307928331607627939732326928237369457716236788712312988946037707100552622731417554039106925895566108234673033535328112847629997975568832286815756587089449607389344317426550515699094323949043321054191017636660620669379057291470642870746230563012429201183317246488389503641974435299854495919502428257975164386033779812303606359939431992124708926660888037938153910591433216991862802860277820477203495997836675318740904427290424813325619429705054491197286370977575743560712754335582681708796756272780786843796795370103614112701608781414422104026452426862990058801315427236309142342074918796610395213338448538275521148406515098926472528477946108544526709527288743120325298472675395665194758078134900302643819021251309965754187879889070394666365431312252533510041813948477248668676656209088264309048493206107910597200865413176336841099478688081220045258903143279249575336762841455195089171580084781484969140074589133795102357528602017011535646072982748338605623694277519974324205640608379773803071461409972455284071329550391621248976107760702446832371473168344073759680392383772290601645534226444252743693458297101548284372348789079652955333803466455598122838642868733669284099446164665987048099053384699871535580396135792024678842436412446821082973766047014852778966495478358519161054542955352624601639617710649209708674741849694161128231132444716281455592626779973449833422404770416604970852775939630255357550777585403661754504439326787955191788357071042946038698542510053181058605086984782801506102863326686672957958715899583219119356791401372318131198207553824693825018194392102689664378431621409485757505680457239869332621529685402094185763344462120996186714571678751368266664589685947302039803104757248669698438044173169900671647879867292169797360538752697217422338911749040662263143326775480857342574364405704726267948282480585030663567452243844865385630275683708667633476600993338076178904028996106292740055758081682062122024122171166824843273496378441921859659480066353042939650657785794134951398657053080905085460170751857809871534319633067985896590891848546816158115494381537908398510117086551790906764107017820033170102613865664893632046668055542889723704652070631060497237693563695008873941213690491969473173661989797241882451332155811743370071176112177623798961983900241141971407362175763825586554720455688758791066026442702738354505352162015677256297120946118005661042525792003434470797433030850476608675979806297168595413147542862768862496034459967029198368785567057442150774261797775297127977741523384153127789387047630119063715619068998472515440248215302405098575247910324659062936879667825067653561204432117610036961979676770063842702243473784220266089463704591497014650474378625736293980313027202905776507624487807925921361137140416489005735375653565114848594344441998671675286091376500726198081724390854286959828484770253785307305309504593804391170593137859364216639251153602355901365325071945377970276569481905023510095726742971350181597115082023128140578150407920774381149465515920600972257033866785808302984842851491450084577122434869954391077482025884697562972721717394130673255428428813234876456123380213651577475119577099107686779556047993494194543536513167772455977999912036401033654716264928592364297268664376703830933978987669262830691347218805081753449735744241937523830589331777537922656295516657276484880397300623539567369642712077125970401446083204611606133733779294969935805541858208986981684064523696114747252865371983620803511511568525319573949798997595722554511767796243918106278134881174265584039812792944777309903062308415739882781785430726307399173707443350806443253699976053507537008874070685786469488206194887656711429903176559748396317079803830922342004586038353431930452815078348619403002006894262401889323858094917055870587965699892772430704616653748442414607886087735997966267523255874951803125060488847467552238056545658047398530599003554491852767562473057935273959216934256502062437867565456720077606396283404732712494177403524028415805582641436958008375736802131182089153310631373370335596520973232367179319073308400112992011743357974973576909366512612270926098369885328848759335037035780878908554524773676286240501690978174835435268878656688066127398493642896147443275183272667803592886699310309241656825240316625229126203634334058952220849314363818904075797924765878911849414660628072771731938083660958212568453835299693198479407026872440661909281985618476489332384745274085671959318041001420194895104282759866676396445111996323655068274663175146494022540992416755484427023763548970337974242031055878403835880620118843160694444429381272606904405210374374121222536344976100636693404914825090154431790434989124096020792776642169685105506397160175866353656575199526743237343891555261352601433870233857405934037055488444023062987689802199895198669258216915471203755664215216827033792097118620974115421462995687264078339015986781113422222014175522592157538039654005716580044241271087500400835590765274192196182351190253559867340349679186691753760983291295685262708736192503250733619170839249573284920174670866344825392311358979669250924269396098537136544727119778885947598582101507271222629262642295643999903878710579266908276581656407841576634121264918568722401294717596713326086584835393712901639007848973681159587611890517511753576557327858469927923955738974980462074213465280136002697963378635429292176056168149889831575155572398378813502793606208997014532737152967106516115274461581553764742587169755136710462175064754964123738799501858292853151516398087014113969601291185172759591450219315171595160850568483344243583925809772658939139818954666555311978265548272138557746651245397969724136816004000494047599103764368054458949360459638017619849754778102918004143771985160863786537042977743719188522288742605990360985449363159372488814607098179647673343890445392421362743432068542744053911624793748008977585968285621397033334483205960626851876511619057592429939253504230814429178013978401493130038756707051628330148123932611776932039239905749525724372855412927203461894744361335806250536971722322733861394892802574477057381540218494051042444457730522778381595009663034379193044455027856401059226604110726470106027906238006881591754448749516952035598165733099890263765277666433631884076685269875238984926066623356224247197056262187822470697866775978618658368878789709816989869158300460015914106889221023795278040893442250137659191499350148344740421603533976653451862404192077538507393111567264289993064072589708083504237994071927527303972502797347820759995515504566963132883789334441281386779022731395202009741783889429648636544080276699103394026687093370290168214901948867323353959494930897921162538214458523201484009375340702940784964538089566393734453917918738876604755953611039030816485621453198241365153707294578468341682655425899530572801809791014365422523849124829537149044906282996706797115626253505474234496049037021504598190696032919268803136923237192633203991845138353935961028240317307162627881716616681567021581207574772014017288363755076575504274705050920188528233951485032012084979141376189786751476386363509330750529512543771955042779571557562248424766408199254059498763359193276527005325000882942697469061105249224732345860138875478947535018969267591748637688262645338559339001869183166073963866574006918496301086331905104639819974954765790304359763275447810504717418366472865984564821226238724983293176810302331853516052547025080757810943659174828637846427026959505284838330400449975704039653128530519280018653258662425497379999898053323676178491898189267287145536006073021404257822243267192027144337242154922631452694869537696040968878666018987744396233750919714613766284933876052537200112887343082994598033065793423180911861585481802494121059419826977840058103155163946981453376021171817129939995825160163520975655007131704295265286492395118355054342275480183472938435926227868885759423627906577011884026620451133895476700257802311617131200572897512819692192365337393734359701915176993933706514780058242514428134259868468240880735983247196051243534367213197305605195125175545193078564511983701380584132684302147004264800024032345764985128722333419637744502939127483111836053829912164896602078454052293528502962517697266445645509259735746975132799560889839484600376557816530449422956026094149194802305358159515528406837100256665465237940377508674438007682488901719573997206778529364084393272925057390894642330392981593587403834791013907712566120728844299065712878215130968560078784219618053087863754490135531832329129165115827425769282899649446032604907066158924078225154348106867669514443265294477964389646442834464898800909866610875361968674550758673769544467693269747386330735303787604006158524433043443641758780306806467718597956304105436441560691679149173197875731511970920937015657061975877670641796505633264008434036619361125517414055065456955768864546047784040573850461466271335935283057893929671682153166725504189844724855669072180673823139840444056376374205377217807145283016811657436018626120739038464127185362153768067447825444453566019619860946322480976646921666304519352416390902799712206163611790212472456542355544043450962283670470151466509820453042197098039090704953029727648123844823641801106627987774241917058567434359565307513902524318551154213375993921710094105697486670526518262508917559949038795127744710378698721245010672135316378552655948677482591426271782498223938665278221058688990402483464024619234260940215186060564467745447586446009346208638062529998013042356390744173263504466828437026060261171317661422166117193164074254240799575526654550877559790188797964426228968117330563543213763210487704137284635007871593310509046956089894277812782503631025145022054669653627356145814440021849446293386908252352706722193568716559679760655289902281854966659019591435063989025465409619367180425332621766454556462036512094959218414273197361158181836205417714068468714378331877722087469170352426850655908296791756137936448964278785861739500748028025141903702189850423939776766140674385719978015410516788736672470620628399705436544703458101408356938139723662882091087587896385072552963743464451900677497871863450554227544315574695377864564397511266356082988772111869605455347505925112653402526299753140982417748121162130156965071703154198342089290981879892573923331791356070356954448333097368229035330614129905691740913976557491539109148630837379245962968703063052146520279323595915830400718135722736207892783209301654669976950528083527617853859498404992692120686304529024218077998828827016933258604988391853825851510484060277035359821199471287340000762578940376443303367896458448982430205425554672187754070009427171531473087580079888018679306226778914666118056729905794996882199702566454841761424063347842281907136357231934590882693252601024135744402919888919620360540321397981344953834404010432394408012319286992218004435655082523433032915116424206080184534718864795828271789736158810206232728773517790377177943903232092894458016523128719860180472204440846795828642636169319464074177535479315875650154203645016776291383523695032146074983120651097895175244529545657560110354126587919852070527686259693016683322342878642678795524162909650868598279075533797071136278460423872710238131823091715597994600751704065534180980359723840737515343231505220445510148456867911554497445245782569184928563453735809600123212451888285879260681854747486981877376459273227664699041024193768102505547352801113992737183359861990268553683261871731671324726064338460871766776751516365312935059439136775209935748640528087097147869871405468599384303603154344928578530369665994091580597763712687709587239335118895459423955616150572162230624684499457865386594441707481410632053689085148817095585292809210681207853770174287101606681263424622537143957621195081741071925027107342418449975225024448420124296326072169900797789189048632243252191104344523119259116456139447724067941372564687227210438959473150189287871984378526170870209880079265616717115300718675178032309365963256299205166726617183213048076060582274789081273792370602231230075167611124225597970486610868481712842464828102061333063845720299532827507520839886787268058395378926155958417917452943884321852374564096607276332123950246232526170296327599323339555758271161273065191081628377945208125601290196522844662803541001317240252919408242833972323086763660582051779735997120756019223189143048343238180397476141807494225557460486375979762174426550535659826888413391706514114260164401707584774009325076235359340068670820947629610768926892036715217085782378034742623939760819582089653972168962143967725068333086396341653565231909849724875430912894734286419914470185032030709243743149802049379041873946028464962151877457551150256478295622399451646267772151805732250073600943419094819535861536024245764506782608390010696880486791945648492634795351748262672692753957124415049766606588789419036560418731787828868824878726872284181575350053692437597320855566661781014887711454096126881091008483105021768777671440110348278175859095556714786304073710894300953743596634902254949700299009522717847393593523610957085531312150113059757130021214368056076650272117038262444944785648207249871726734445038789596365553690187256755264848530931344957418783219356250069532037381298265528804183895001028389201214445734788387093914204369293712725210035427365149994961668255894625385144700342682431295034067739657449189317271335261970706942821272404430298106015664569746380483198637510271375349560533665839819712306259384390843867797130475439208582729566357447262016734259243481208322822586484331560903871307235844297039741988291300879895158860979137872364684907177997070257218020855805467577873096950518664930729493568104722570638055572923941946712342869647399297492415904678526477368928882913044716022661118663413347008687993407569327258698958962157134502546901162163787320253958954280982892960248617314782552336312318485788132447137911257443062784613920209688591059224182608517575426660725759023633455158266624991367236309886302247195193120143150504235587026094562506866662888096720263444838947307319756620555567592479568236376208337633041087449444050023325499938071513040623685223769519255382913746796085513121578835379112165676448023480061224916384384938842295847615418711391784230608352189341318697785122869441932575690639695500450649577231107209928771679260635312377655441295566280028536379570592022546748709725901923096627619001691974290292255883602760001129527430757689640791502162086326717505074036876201283484978781291078770647350370649082192673821901936794818016149867169210303448556261324201686731400095962072715303901435923690323659994471231524443988636925761108483122647855903526268098352619106221038490106668229898261224252088558552601436006338692422132502805335123681717653282438093085084120196264642708905911258539337186233357453559916834311527489646386050265069845386344533456359974774934312967763441970714444639164848866280615211809114327963417718385310959445719184885105831118519342858640188087735079184840016486771211821995235822404218020845764805936822794845344160185595463964248753953569347597890570532401632538574698227902272034571797636976724613941911576790895118417820028820800104092587752478970393378419643545272830671520888618613826914155624385998283182327715361862840019972470721610509855927709136177756704858899004322788176224042579590987573074659077799584768535774590693205551675003802927918071755698465014855651995823737387695950873693281780795301486688111907243010537760917401451890334195400454395179222473083164537279947569685677788907495268211392608323076301601625103061116536454598921065030558378109316680076922058974719019998032571117252048499436268805770251317735686120096370520906567206183715804554768050331987346652194036252889321947666874159592661389198914125591118593502456127501486661188415841212355715698334221060110033735292259957882555435250606641881679771984438963498561201474309772200506274814787549474117362587586862430017096438638235223188483984758400656620874338868498627520134239646849563546720359198846196681995372444674320726044060629610536508278157307178125622719886245753912647246438199974974408291245395903280447552262070154317997302905045620050559681986920508532870582836233114352248215789017490924818780592628733555666319881993277491050285545534471755527134025499789747632630798158880091881687159228857055291096776599014646832312485889368865915058245895983516089853899516941445374774457510875900641602022108293255143281770973105530596157153451187883133050284286001858901077454272177260868544246864757219766404441292108146884932829545702343412479759664008495294311241547967623544949214974521589974430686725504577881803462312768390999743550702201840314095975357068749092505778736898539594588486346348777302099783898818837534060858823653461791694645065630702432317500788565404535368139752612849008861275722833555626684406240304915967143813174138317107225011932078552727917853732297267082429233166514274732631897608907044650028154262190393172854374883239401391841810692374322215001717465935957114048533011578816963999547080190503197741071830579053313555838450438461700998628815892854750537468056668512344606673371000418903320663351235687870933723774975973036985639065859057569738767569079493678565307614304740019016836051053597285122334226389519138304303425477551910692600018960895473777561848164066961865535103789776549203368956556339524162643822492489511874171820223187788721905281816507401434940715530063042653145072954196253092376516516556535010236510479680461617391744420518877510642958620561185524068374556379528254915576728623777609042035766260404656755868341626533038446028718494093300237619570877259914695633956711368205843454021032275940080774028934596011802892535330535125489434186897864133611715283249733008174500274515454345129426494161575115382754824559018203953987883539741897743320610419341751563411927943088619845377558383021409529929771429086821192696672670853635051409118734702392869328971321273320943511419506874728230679401363494403207479287731572841122817803355024135017053041270578513150117476363645900597295626785839655714298602119619621365743416372753942500787323486229301149841523640269729563964928977042185003101124263695925278909010783500635365215862483663350251362617595340518833876532840135623592999983336147240369667576112648792410123371111345814762894020689737176254406551401181193969912933056728970862660142471468940794052681644637005927935210720732340004775338699706547098572029967784491417211964737413611516877804375633903736461194470629997292560830624018983018918609757856421047459064183073353078250105822196069433106249011462628658425166388203229282897073429468646812639845111151979239545459757376360542162089390009593514333117580174631510538491377490572394062174610075945899316103390369179493018826388584162146691829644620358780807036000278475883806173659387796992417507687490806069796587514477044910379590801008741330886076244048963215665082399087535533019401605727172058156906075789970991464261862212385403038116015258900940274861103742926964216070523057485131498058997911275286732855162652144868713765688717479372276681875317742679743260504539839004130735541451390764020934135337617667853884218720200608511877829357979124814604203141617033816510659926829515000505675954185885721872733804662019191043531633090019826309973202544342892119610188267073994701051627981854574752339974307404045836111180739140718727745691528876560806618946103584162084789922843804243826754694088394035360662464069947018467856450938481482969878595037327863794637750973233487345744461739605659062493457216177462241856554555961638108719458119657343202678035385991263375705846421298214755856364146711934201404141574766178078084101140474558634552445230052968170143344660495423445225607482554751171888687379866982665233225019931285800645515699063310882472085015668999826715925589062907814786065621235162285019247729127871174991206715515190750838937370031393238023910099000052194818417703371372656188540740400064950314898468901160017123013352436036365487284166430293507696715548989790725665243776858792686051701288667058777843716832569047374468372777800112419386866709798157000064499329986360384696843820487369940896745825653635707098749364505009067675413844630388684047053115819965198236520362721991501284605284328620233925234298535602508496193479829832290166401366156968403769929485873192248782139236113208558529561228758303690117519610732368436636860104415402677797148894270095607540127881549671504530023458654599262634936188306873351343709488299132069487827053147429803692684102602315950094728930934058253623861642077583974017341700185186665138043330677116367918406312199749561333764579689509126768805830388807288277538781605819679037963938445604831891062709161871780419528127343051716301622943914144377894965038294924231905895721990152894662679697807259443714608638574705412701349272943399161799352946094302918293543237717772410593631406146725127877447116111345623261530900556425992284814785388669610107102129717876997846130246498706327012928455111222827704756577066006456731012948774432041720995167861402098814788932605199037985406181464303483691618047077250013344924393563242497626662647094752267574241519335780153657569125049109996059504602897173269156671333635148647012838253345454089647760769747203789841396154625585553177633371672105255247329550440539263924043586455405775225242242957140555884806564295511470718002763444855792948043466347687412400050064094749414900400919869076076975538999975587408056759863025554112075207052158981748936934745630966795145136442070685691661030633543669405557659836313967202652589454853732994646481176130943778611434838870454571789059019013711685101421926688413539227518418086464651819335210051826326931182203153220756920914332918248910139210882278442181215429381665108943883010094113202465440994306488860652430938574443779641631665453844283454668055518215496119871004655851705843773182259144772480192894973264628950158494178932811177357075650731362228911194578267860690557926978303176501817317491798433906970148203845710648954223249832407987862649775647918234234017057916076313778071101985617255921093029411077829477014163286456006343207512135905037869341834502140123290851795901302396733554925221297002598531210295427975710368943256009169668794279837854090312143514187225176400236346710452412775198679231790327249414239029618644905223553782894357932121713218610575420993534083240386418979444496498152914665377073583348537479550214043300585949757146812800090108367694146233001973432787622779224290571579336516842001567280596583203811871991721713838717331937218824178568526895973809226160134968677571922009414948191509658049043221793530301922613995506039346087662470789781921800955269383919762808435567259730843077565987170655363021521838191361930748329339841651377201100143233970471389854497354977958857999893633576926436616945165184940379640713226086676895629930338603329531125471150801484046822229417886576920370779980451492739203734828219915553134953779524048339651272353572620715971595945949098325548978344168451793086145551731044031189545185775342837948992216007320920748757422744151478534906566298398466898290375583341407555913980110658402220708462305206070321345655319297054751111920369427063283547950591866675863936305010600348058329002791507204852755359814075296442178354224647440788278689610307364763600454204139268353414821866178339034356198119776715791888584910031709279882863167555603397228987000821674311082036805040481965866815964108316951199501756874258900085879148341840423646620369663780220090168813068919654524738566900731924233872603948534595301459411894596259976931412683484347767176596546966109787599551852573914640583288591411141687936166088754059012169237174210521438927176901794106854794120860300616788936615420557645894656306647146097357265397656180052392260730714807930794696929708511966889993036162488662670719379827290255139216053160943601638865375150584939259189155626132239845387478846974632291010169565038966872863396932394601071660632624024309698826981059502567832983548547888446860605310505903501845087261351627604711932315160309515075258926633303215996705465877683023275776192195559387904811505733198065237417683349844108744426940966693072171279029897825273431065398967036989811308825698044641542896739876930700872756853463780606151945278166176937627391210543955908491676160384247315922402464084957628893041581988645019973887555366531222513807473159043252630029562056905388680326844962577765574490942410078304655598811013695802978811280177041247793816599093516498222722588906176876813379319077819015649796847230234902858877128975689325232877714694300260450174588468421032988047990700394252021614889052517866186143024207430010997524756703566481515412356373146051852611280726174261403938824216344694891467280656813115295466800085214083490113782163826394909653848817552973725336840053471196118662477089276582567072283148280610954597937321800610410875187480666057236602755576660374841428415866307095508406027566399267521912621262953109770245187109813006796833129625686534138000723227263653487295188932216259464945296542664252794014499035075062756385986938758780662159650368465445374679439328794704037881137242930512759866528180706966321295688883139713697250954915032606683264528400671372045401175039225440817881216823901806241115019953810967767631712430355517322663310387130536667420805886410965278852110859995275687696000337960401816802469187486816180866083815351472792297185759650485310299513100622493556721105923031398635282334417853482879805927353707122321079465660119748528694098488883764965982120857541903053086716223912133757662564821359923018398363140371207007687335293085131486981006289586065539342799986419880407153921917781878127852996642450696008709691656712910393571969320756169395954639212663142654386660650209304161871023664091442119456894240319154191703877733251756050871363825115149300694522633577370106184628688504186314142971614189129968127426086384176349547298123220621203041254638172322639085999323719607987000711662938770261631738148828343798783980212889741493949195829673562834749154261692104430521485090146963140216691786568706071636199524832351901254123496859139245835829526062853208775597718531110273544841055675625268257088102100903769981976198323411716053335638061052148857821456807382768374041219678272915919044977606581394959430733279417103357910505660976185989138153607187051115973310781031268807564909059201600647502061146937457818927185830972611469232324817517109408748513438269962540910141467426665617417078134834371466355589458565212882164302939027782445165618860797469312301408911113724461388797638241701472697819425025110740846841184552955185538642401414683995358459096995100384578421776039096258453060126490888813348942009891158502159521648096790732999446116271121369214623463915893205378509442736560265816362926944579898182430165229138111827164576222796478695026367550081298782201882408640408436910686234030269898947821532559338833761195948570528591450020244627725850940014216929386895748087210775415581142871092135775412766428624833569714822676859041392634325099669145967761225794122924359521392043574303440072157365621147372317458403918328024291420720900548428291308820479969444625278950601401313150753032703340659951512232246558872942243002961588398309317518968667222385630514107538882406785079115720666214426630780799975626977166191442555165492863248780512378128366483185109636088748321029854189248807153978823182748148734651779943061714961564974172948640658836047137200260773965398855674112779348694630252065414901452931567660251227870658907730625710003295663341694842049513157788046286112087568683013294727737454096447748497495236152816849987926683503509674112687726166595915216092318110436586222307961148694094729954193131056092377697784783925614281045086934214288969691541487136387504861333613129662257598537156310158337661506701782433325694745450164738494580406054212599211653064239924465048664719041546179386780823332124861933718415175774281841388403957162322171493927556122866137378691764820778750945761155233022009880830441783454242007881152688192156341437118701864554167230827194987655708106180761678745740023240214770768151200728062262203108036661176149620437185401070576304550412833698303012115186062527026907080745020163487009524014391391778612995513258956641868342693084700491337838168918561775050199231110499728331158856367606740142491825665836669519792678338913989084816304362687544867075919524229765273219197054665792799276747229437189189753327731796277378276007519010291278402524933520796768674782828901379761723138862057226322914124677707878251341127843967137660402047024365751441834958830608725035729315952811293709073888757577441193997986971263388603918046098498615840587631636794745434072441074193293021184250885459710191512724463532377946823463473366089704739327506782304175428891773607976011676099795230361814529191235920795962624849861669094943677281270391179140324418742522452772173789522734119014493452579068830917766831712738236432452286573051846563354714585085990376897488202061392524306276141517297781208379215864095917947562561441857708762743051602998088484934353585420449934706394735557579351334657892399674736916612795421873105576957721297145402853041336724255230782582569715123834095161612374804268573926086360190623360904765823862148489437919431057088357292426547726636628882541035251107596160100796795439754215276969274920529223027674725961378398159185461696004798952351018587835689289676296423136297430201708216675865948294964071736091371111783409920737952785857579711414362236125308639155676958928765771449182752310023433609092119398655270403382813280581439219588551392094054088756775913998662401660033897631238747374260792753129295329145813458197043638547288692630227122112324168142031756852000844417965967073298490969817041844711129164532805996463056825889262325172909483139251487814416260535344361647048302885638129080440374669159394029674262312639292542514613233072474754664244830875362994356090238566783018331648770270662408971290386032282570863167462215196763640394585692953584797096461488265254169661355533377148206316512665318173758740140458089920465630837006483412726787447324095498289583302983792704634934263694810474811747349576286608933505892882399351237541881880392009204892309137543210129562501840579097447311782368009639665248868743122375404125167169973518238875805611226510769328379726176537113984218234072846514897216280322715193729771360299060960192323415453582624503492463865615129200256015350566621309553073112539631680768284234781458995849190746721564678421234106898603718003552201003421590855819785404593993606227851537567188519043487336161664656861429635891734581862209435854098199500543160424257532565443152408968067554953313766248756090696266557987942910960034304215410037051631832255484080156658623567122011119672652794279245293723375135221583823925035982378990331538735493077992697372555595668275146136136130125850863658716587508679915639330192475935985721184224101972237090751185812710644253206454072390376166667478938746474789670649670766382348291432440515520734830549581292107265244316980885620020678421089265601031250143511017507908037462751381716595075476788475824525218583608475151861696207420936705203137899557538738297771922443575725040373227060038248151996519046843819043520839513580025654183044524623828336337258956588359533158981769143977829457045856730721368593952979680346198485929418031441476056783996389214638048813678904328149424407206214518697328718889482226898061360280766147609810496167993522409414146284805441557850750797137636792534442679717566623031536040205305050124579007841933417711304674611689421070023003732923358221282170470093444048264016879161860672382636461710277306247755038646530922708025666550449635781034115324027875286605659583414075976603446409525567382803234502973511475703074230926412342028555984148139115409395686916319245414097960006237891944913604965396184265961283588196033708219459978759140819614520531162848732240166356872246312775991016331726467100757184790491385177194135355262429658756395436412876126045630280875674800497612401944427826631194006143108432417549521594838142222416993080152632824072375609050201762169602403182338599386460262875326482988972478376045586143090821903926505781505799559087597717734547274678324172281394830979997555648283279379391204597274331945861741792252213001173555689416143569490760586003426012946416330278928523129013322893221311825056514634172188230430728174322547199693161006652575078471362178286747042458476788988873050614543306133873690794913286998247842069223675965256781841348703660107232621485580293998151548601522447072988177980571516983065813026200695016199494795608572567753323250936855606266841095873718432469696018393316919809358739158317878524565641803008132060836429247227461366771778509375822048177267574459052630235554425391876506069851711845851190921310606453653631382612368250902953948979851968382704962806040156530832946231353194673802991812387864502187820629473444734690466520890777553583134695362515959234480720052892850703908208798575957890234275188055445391497726083574276307702091970729429933731016071111804342111402022699025894300307812331794856581945933905918490970459500595590966803398853982548113470917452256571683704172423693007194233615565203923695348125493231333073790799363689786816237349272579323729472248405232534601314530665177589693671722542919720304351115620943796200355923062796464446411015228910188633200903140924888253364530437603072081824695583678514527581234866485431250173607812920707604762849247858530181843026043483472101664840727304378528482620306696298167089133807455524271794053148735571324943528425879432239228503502270712082944518422026223844207648193714932417684024499475547109366932757596975970505073492792983101938613953120111880167988804900525152676035234325991801092552442011940565098817712051264110147449394263628435072924324800048175610302614889194227695534261025038901824886149801771784590503753706314308598663138833170864295863884157921834634441019305753581769458849834138369106639948139932513855571564139012184460857891048925147745893902695392790709750016808584358017290168161366320957785343761401683028918583204141810000621857978103337193009860258129594402251896141552210604111590623170880777737065453604803804476525254375334850652944944614762437700885301083933393588711926963455740469630217419031268422158899938322738857069741854178479922290951743000441799817172593374441247088243332363719485827046892230372622323296289693938252663997324947232446594282052879054118766789456629992885992543094192338661259968959445707764168615858013721392795551937231715057631216519912168811463558570729131093743187036537541229351197421544287414931420186958006151683259995740481895781329753700233732042614777958359111367454141680568308970793816425513880452684997272586931280281574907477832156841207591734102388763641227951687233406479792273261515161695192743153233834044661682196133097181101995347562588785337894922909792325192612537369749340452115184359910785144878635218910515058573504178853880882924374661631736436111054960745209930021233199158914568657348767161988546479496039699544766061142914264638642410428225249794835619967294013049919926624565945436826034471805917841071655316772275525334989914995261533815859764079897109574681278719985353454737960109994392855873524363066381399768658919887444843325325252900098320691435931873072584328657069797502745636534888584322410661970427304852581832749783904781748656826262486783689844868426183213827494798543299910430043916003980937351238027079567141723549868885167876483993885155324138512746889499446827995785893315003035339257176381140208557485449200671351957202749968059824328808059833804110941696285570964295011738662987472837213544914190342638007872192363903431696659041827170372309912959089620041201696747153879372129645346173143623841250980706956880665225926050868298024998011715214165516400350022274321078829677330233903095738453380261566230074274901085868577898573056104862536600587743738745191598586432100756532298902414670966653588827661323166808851678819606113810618943309545018415564395334511511560548250998043498054921478307790182000780947510013485139070959568214674793400384068640722797980954892663838750743469581102781236283068106424843744742164377253920833289411253069737712523024569035101316600438771469161022953765452399017750024117153501452141259682281818327896259660590359290471879646680747419860402214003847309269269962510744233946106484684049466844647521668623337529746508011935814340165760519543597173788139221021050532856550155522187827897609191728979726621540845606161017000081665940737204184595150308793101198792481025368597973381093562948570764400066057844373385695703126097466516256829290220971847131739454809322664178729463371360542473972231748074892477175771835062571363849394845220017839623866306100849618550847820582632785207735493350301651795882117911210675508552538518606951869364460779622065240918950469421122417727239468806140529957196572144900094871613356762179220113409672207498691331069117892678905978359835878926796078408583833413987070819334323627152605281269777676221794633605996079023666350637995029022075513714540543677625277892593752295747042522028042725946990221768748827389088068210289003046682154101549023270355750003539641439550564691532461131549188139265184067875980029873887643194963883491854577117071978625529194787235261387088947155129137590194310606592332204588859860050356484814027004810230231758806407920840197282390100305727664696614793258148285548038260264581118213344609795063255311949112010536979707104667165732528457701524636696678485551057724408948924257900773018098092626492977161690996168363557512078834269344471223680277904144250460156906217556635445864896423814954569044135333729297397666527864268385793929323081830495689722125915529741776713584954637840488462953941552883988536249769292251434741479065872523283613127088394059169812947649914471335654987930704539715206995360199869573450012715242242628455674879105762740058809389996918255296072333285193718121118476394616610714393560663228494673220713674128111803832172805800295585263824339439733653053564707123472580262998495846936262413753486665860640052473881843433927375234219122736195844491419359962823811375521441815053444570450586971297169601329259746244103026056367144968715764655226667788186704934554806827930124847873214389847817643236101827184572799629248089610517950756399585375969270776281848366042883231924476719349294640572050664202931161905612944906746429945762856866218743383381630096305324285226523476986584492496691623208690491544471122658306218292374398029596590623328013490697070467892571246227561047431589557599218904215987791564421447305346656573242389197343521509525790189475902367878193143371891119469811707373036816663410465521102621933075374251377161212058914057529211755729769879824189584752392856452157815162648478327307823831219271440612176103147262830840927604893692099454719603018108815747888741646716135166473276405025125914229147784166227181068008675117782768342186414739275720593010704767818116729851265501349416833014337650495359790740688631235835562616191299819459243651100444279887166291732542500808375332198239927429755891823926879493323136467377829683884351809690806031296648002394874312158669654432744611880221563471518128225284783619563515891780499180408806795475957074394604682661535565767374672671345149965192379761617554698108528501743335738232604978181039926232808591961863469664678477501139071593200622347216486002625562233290954458881473324434937885116897647085098266092741380601200073580956392829472212836258710245018734575003025198456758437503861294828267542211092570155805752216061451302127938299439619618204038420227857558906677305436466133135801474710595587304013166539685621814138790867029267862435508816320023520628283378805165460991056303131425471281486591000846797164059577089345461309201201497608942379767663329477429559976565755528385939065781380130393906467810726414931339115797767574811754205153082022763710418841557108436789463654850285496000234969269777768588826940391684053098392327977595521582549783591864326246635525843917663269404264163206668441103933136335653665894089418722982441838166426240362226735824151721667639190597108390978082090540533784847780661233917165462459041894432244388726123362347182956209195849101024185938186316799013564427566170007917164553187524532928421917832132214848863577706894864473141044480072985041521643711710922727773574290719296971832243954706792987318471626031710208606666850316521357580725348389943297161552769806696938251079755275069274758599217202553459814082207516382671280698848440886086987926871083881626109070718888687600662887755024154368922393459995714537745807200712086816708374328364306827171562864690495312262332039106646341190639301783073921935438408144936531252893971619314061397031547400936124586996629132966295305571973038386692095559934702257821101900964728583273492477529849367328895916269358026443371881628999712162424139825090128751378193844852678580173584756133031804647135760682452193248045773452923540944900431376202278249487405927694310156707434696923550927686319486951930965410024076557470321942634389040729166079934172796838810816509530584561173580750026151023867683954105906496814137014907640498504198886910777234967989457603261264066271671655796852664449158308488867133883692526697947434343866539258598436589046547174830133715765023495463201441298012325147618554219494920147342019573110185015736330443530740404420151135167928410186690579050783145340511181676973578128854205227314192004986881214657035737725015026056026551198863626388635498350028463847645080485598682699443012414785921931713271295541987228490681097910377288196237950148436425264960924227149742185148843096652356828335696113668170715971214621211060234240807161087516227555032549716304207376105070091411625416641976432660895946924016634855354386309429759767296756147479337400958334840276844256060458477192542475987535531324025170467842870107513334190853176344845239943905927918088904163947038406504822082768378049551226820811319338816456184249270444562659451860279161672094072673963661178394745663431352723464573231119763892279057145108272405040589069396612920934944325225943405452787069119788887518992719974239530227405568861974338781247816395183890717749009356108122546557356436257674219549788275104045686611898744552304741415285298979585272598447495145304861740060552609504738746873632905615996540079152426805379735594877738145843102792654306096812923932252856498461437606116980966320741760276533400220411708794758815652583788968778693371377427651193471600704992808204856036680331791935079758128462283300917651414731854641655040917220519752118861928815974381059854465024821100349938358809320861495180806652857334187756158995570137030912964058007104542931880192392452888050191612162066589941502039495393994765868142486451678263140010360985489576062566060585403541971785988758944765142747992072458820888613530855884781183697153351311268803465472869407184225647883880952460710971321605637319444820681090166029240637942426736927990325345765309165769645226245501352786170995741526326396406700192225826857472721173277753726749962515323636981039496217102509259834959262271947494082642245531229047746210084700363806101440888152416106252962847908122475707381216075881905734244390232202364637946626847926336287647510195671618873636891455223756363536878987652682288423342604548081924125911480950854784946113601452294013866962874493917875166512602589846294263281201395465723347466939032431324781578152982522141931319279622062089406131979343853341823459292148131890914994184634839125200896052921807253630693148554632319039644452555439372883005074960334684126541365971889850388022667232390470537434110112229378867993939103920330251463950204385979203558721526291540502588999095656368689376425186179852718192502634039392963329847051400001428143656389892723242618543108848352568476900085013196264122028982572080419200883253044701305024078034988923498230466893171608518582368402024422288388257513969333462833336235111315383043969167362669427529897005592637625695943968898818580596766419619433815149935088829613297500092036860445305472690452328721541165215958419395970489456337456502177124184713573832209777768261133600580735537307157992161498220442287468353163334506551167526157870040406128017556038519236389173906476186349707311465651801271665015126649074560198821663752270777426413511561364774743836453436968076237900873332761119762221271641754699380803917847869912434827961001299541131525762308118431510713439392069725315545387638439734860179252538689792199631948284681304302541299890210507196001771151472787216157566619787621348522423529705741422935618872468079692777577640197411905254138180435205233575424850573845732420038409859874345335551729088877681067911804716829446350755442205006345604973665501635411376760301015917382872713728003040901649767090720424527246149212519562892180335041380408912420099656585453054678379749006018789721660518408165794202193969399537493371559583341165185074487307368883018966187098674726186827515649056270391593184188175945019984072325052066067909633620061190561465480796918060770273306296293596207782562238129075551628977842737079510038465156867758016199978200148105742051918884063825910413889626868582528895542428233956619916389973851980301050422626062816547499752201730088182812460023916466420498988750412541139617234514857517765850742166344803167355907698275585402536638284694393615878798981525489059313725226022573981435035709625687321270975231535407751153825797955586588139675392009228388124708651016295789047203237614387422153656554144917023403120682630127404864506153573828885467887827183323497153165758205890462096637873633264988628969482319827607268557513709936923960742477070264695239043404844628105386048650387138291472045046761666478916023537180233550579192212177943752465095561907634009486369961847730351593221421913118354506478982906539581190203745454178400108809640613547017771220677855649305356989061550544341659467882966307467563903678225062833418067738551183414659082003558567661030583521717946965043912540458319114848815652002657290040709283408122708624133611265243322282202326987360649577363042293521162322052146063999526981306465426842070012493774708515505806664055787392835041234530433445025240315627680578158358558033840058719639721373209145776861458743326564944588077511657383739439091460765160795170225294565138007167467493754989351463561710804172375550630604543040732496197257339766831071377620685102341117581439907269276616203754993907884258905069056363371326238154829156626469030294886338968613024517358310498129412098766022694625626048762464575091892992971239142088517809119205452463981993018143398271497970131225661331991246882198990642301355260784433564968230153214997530964918539805609377068967939868223447679689369068947097780909699038260048061639089846019865447012485794663911770211126031699993501806003616325730449268399774946655358710208053116334658497949548117751646741567001630856035888957910548806025527531297191813808417326946384092013504930161466347773341752525326773321767195697361544455674316283630473087857961715234384593941066390289365450230345214490519189752154366716774819200541394785501827280336449426391833437671627182851095007898533100531152671127705270839166292687265449581359969453253808079972544983922893973642703570171852780394307195375534775586790631108296582141541509157232675546681887841526105298559580474081779786419109998152627480043504097836701451253590729366865669982181730867384252587838740624971583743644584654494775169358083954988687044889673722006278115274515730294909281888103891520692606633786298212351990819220603814101148882565753858574296299057501050533767138888037237206980200261332255860683335795591736399387600033707940192736352955986604838623873672095628954067147717646011603966614283191968188511941783841258348557857490057378720333707919519745842510009151305371295378931065194979474534432671958401799540918909244478697389043835737618077225329645407459798581624550802351983021145096233446233521195190644127681667143599401317594142922379960260863236983529348732218365739262132539813429592446613712969229023606689960887156393370742129607656797992458123840523637472449220489658268156366945443010906845892836177424034967392091795905915891445914280099682291419610968441799713745295805570156863285074168703165371622909596746774179058895701058243296355529884103841657291253052259685638588557291081116790464573722633112179976627705405892598802713869895685551974370741900550314097822895118489248114189912484524851166448298401744017927751089609416560969026156226313025549084055540046832984735723462218547475820637045040576740539933319112138147253159885570444561456012446076370812535202087433152997155054804019830024219187017166349030561347099395699278612422195274099948701949150031232817453376690901016322123791358483343081365284890750381338350020237817833420679160122988047822609638515823186560262772918636783736894926403625850500376421458716496186738230503493443750854374029362835191835432705326191826302641003202451842440105817209263219092138301608185549199778346189458648054120660972682785650182164423014042258970239668160448992294981428622223137594097198117060251676230809481765739693957676488583725538752886251214814610890942396722417237756142418143968372683480727205419348678133882601879340013352193056351961694038706879485323458615004791156164583465349417007581155943988111949787159190199249906849279335370624108785040954732362302788472973057259774300291345907936924013185390277766032826300310139269065869673211113104011561409459474672009933692674822756667807314472532761473421701845199024135839475164818744374845611212868289519494016305059247279548103260561388689097098546735702804951858402434708496500028385023770672327657387213187201536625600935608219361379037864885829545422217882523744930834747403108451032431275962538532470070457570004833876439594977781314563051124552191180082863277800815948578980979270621359897892147050959998498464897436696879764997867106287238301351757836276669314934712667671636607130799442458788800791465051055216190385457604194077677408707309725574006632577933924350020628497442409997437381936208003929207549272110258548122618603136502868919680848049374064194501334402337927014570509371219655611984450272757429339493261105431783751518588810374888212037030607625420461599727637723758004977413299291655288383307899730529182731971283524244167520892227797282352547896360630884969325397779337020977938301814149076033087061684362955290829026000877820681579271395757736565001902405859071373799646411649586458379014063184305871628412532082806342513186760162682148777010963936211042482624141904801061876998770147975938551066819244811953071659440257429606335027126000949007298104105682915786123696165078960710235880695625486400202192069154107801339577451233644834311550494751297346794823709844567522428849294391552754506189774908873898103883373258766736108387275957928108866360813813349871667183259996869688963639640673758049105321063408238585225852909999069087556583062545821662351952125801992751172471630556893041802684366370421731245355614119103541096787925299270534141965848780073394618342298793925917102450263184025879656508811876262544576284912713200206056632633711582045191680828559437001210931216273524340023578338544220738836221360859001168621095849704879284808948785757134073947787501467340493065469356159230142333932835963767143113297146286543468131925341915717453570921103103958703271984980803395403200288543784402361152672361907419797830251509487354363573486376240666769641052995023882439377492953762608531613483638504088781357664852691980713837088609324031072169614885085143847099603251505440475806679392050193569582423745160527882560692531612481877294380532644180497802900778090493189997112867252176682105752964257929749551533107400812856025350970370019297219880938153380724743899321434082618498118803888050997233873555919180834772792880313897798332240240387729006685514223111910931793663656452369714777563031037860746625228917821943992245277165971434910525174322440705212887252066155359777088899754568929503246013300562169964362873173476358474910645110716594941898794505027309146427302968031265362571148081708362874946230057170542153335382764113044796345548800361716489021760105636349130459529393980875543357898396596976800564268391984600758043270157178597268170789717617314515542145590886731392653957239215561845900055436664646385019318729779631056572648572565664727775973275683285786570978472969013337804924490535923780958055220918701138035931489589609202354230037662302457377637041090913069032371534690623775838984678027100358080122952831973250126030057726759923545638184273371185533739059789666008510661741210175075955793717091098098612360977464775649377967419228818767409827324896508880535576009167197830398064119542366347944078277543256451780046165232818468672401763429904344588246638993585918555835621610357535809412691188535904753735543760065002206593331926440300697911853570150235651732522373334477792247203912590774969148465815824359986846230259222113922713143958734199383594787021220390191435802330423324497972831042634487550738529518853132743086781846863044539347596715087786311003688116515328734446288481223980120837671226966105103036286475756817025462813894175135215928523164386723927491650729882450264360594207643361093766160263625220436191344460386226234453505214393995276555113507816071483251823990569251486397228126689700546500657520824693367759056881550575389699647651534785564739585043650758281291096074278824708373429370706449779634912120023122542692964059150135609012923152317167157602363074004425220451835678598371412658244927570950737975896026737376520017182644625387208337298582604369622294775143308222000366213889968459402473827549139915200732386076305604679375723955075838689275936395060074153411614947564667740243565097117221525886904281718973472762574105347377067818529981848888393034870778659973143777132936378350271531072373293419631053349389137105706070139428236734360125518924385271869999428078040852657518520685415833291146924611692427262899441016501326558325311843643227499145753554196699386024943046844938107677515626404493071897555714667802877681882111050340846529885789609541191517589419858425906465146592592423623862691531660861587102036620081051141633517595645084162100453663126730723732665277557191525511310399934624607835929452211445610204917311546657102864203877918462181277395442574821381437103876465991603904566832379068967121419321819292174554571258109846948450434359694607522001249490307167253788997833182403270287794447193481542437665860631426984251649222319627063304732875565511829094465346708377685491612222655496302823059236759273332191464412134639934276583960683971761639076020658577729230858480921889938064057873974789605626052940049327616253448781279205112990602100445314803174779615950345629111885255439609462531971673310070097874581439859602877359061532495514254560750123492972534973977011166223992145186902852802621231573174913564961470977133932677096618041205355426971849453595947048651002912204250316813061442277065912496963990526120041119534231044693110332376646811991470775114929598517486288135933614073488170960570387220003385159479255682819954730786816237442177365063703696030147381015743082372031121918965535277796429483269612336046243904703784126745609039014802449400389590341065627977503297130218251169266718553852626606701825746230144098199684454861174380828109516321621304607804017327997876256719965117798064655124084750507070610695777677225634520757515813492756259025470714297195425855065359514155923657101780488742172149897916202634349920115556898125247106935875662351202641968009503357035384354689640679531810197206766012718874753017450071850612576871667802268788854695693987097138473107063673965284164906691524956029165754225698167966971534307417487566926397493565774375460350616639515097551817748442768680755805044778822248308241137027240033203614951289089212236263567345072121191823527288811347764849439779487822056588900771681976314177072297716717240986502625208841582259312258912581724341383745636037063480235668195619652746755206317166479832634913864106538149116758752088602785353627271603846166069243426303777981430632627168682588006821062755428689139641734553586031021637230631621024754246764069439400042383268262177618612340288586753655939116621160657886037076628169969995394951825835686464270297957155015154642861208314034685325431996368078391636506695045761413423802390105794650318938585098319417136796335487026366736873961784863444619710604280436332421708275551865608289739642931687879651901430222757768983319560192234145047160326860971079685475548256058577378396945193068249812441794196766786892410905775449650894040337124094270581793958565182612195971554270616909939335790385277324945860391211949949534262560739435099809420164147239925785737213650135891977365764716183120935693685394785611040098015795897943055092083624279335583581037557984438258970223418327890383961292995666009047098941908266197625935276211579863874801075270340128403253071954309414434929804871863119323012253860284705709723765328474844986357791074638920848259686302392917872276189788161071713298051177962061183771733774500508358398797198411516332807582790560409910146420100549851671218854804021263804575432990485545268064551817162529388782827226765240784796497093976648844171814136585679201189214942001544629172044329778674563911641456420184310334421083034264585331775706703918913234814179118982457985207738627668343682708390695421437206535995924956519750855255540408910289382975130904418285320761476207428607030785471880799711919865900999964477317379822501912944674798317598967652386357771856811815009405619490895655352536322418698412975605729670056324705814997244398239043468818732117729252791863316399773065697961978061205922260402301436548094011768784003562540754080762335672097991603758841402590082917988225671386492789304654376819594707418744720534232143005577376070145877891988604466207622747414120193001534064885781799939630348051670967166958797181609473031668684175617224105563202842401761916457457439771178051519500682231803936853103631129702860848860094249602439957521044036170293902294733742495083944412297313471785154054028830585477926203428769287361508306279021548936859156099955965331939262037375684033541617756069943864092417986893175129274686550342229881501620391387652852282027288011992977778094237852953134606843549406811340545798278929219334304515396293582498700488480786520381936887428997936560999931339052064625656591299985084855029521780396948415177915072205043275317923780147930175203813237478047316716816813030424813847861438500676089357283452637737027587886787212858079070833501108849754679996473100678950464909734779273008380877441703770302437783697457556142585282100763528627652839644490391785050833448768500586186765696053669396928499722461155555504533513304290019632387429665703474947022024908171719970022701053123258575669297593962375513255125992704592158160734601877729284814066223749320788771291286889660775727020147104973274186316183118415052283622261860735685479907273140526454530367809968210355957266973736874749011834054456284960514938315361969514618976450042687459825911219867400971245945210085160055049127986757642040609944245627296707071075687810833493665764747036591583912525229746108998313735978622261971961189380471282537567003840772097244289199380508556041680275024948495706971469982549142288774403199099875824150034459946438550336154635035365846529138453360257194878353329438558113445841444355041104244481508910386594175056229154993253389000308810213218855697166037314508170675077913029629847504655085386061881627890973155735980242134948518597946105958586116182293839645393537522532796530615003802920386038268123547742041064012932299542217971385799217571129534172949625814621980010502651322709363012349802639058956901121755823552609982289484959999571390079885692415034845185161598185170655301259916497651763611072159013834957253144426481741561250696045287934611947371054025653716103036283715675760833932483371286899505042687598842545601248632713997530006199963076249588086888931812280676310394159187643203227620381084289493339881457250361830482196380584761505993754452145394232106208293865356683795662527389352443078777105078600149313160907642180093504953819066959010700200263016239108250389864307634226960537632353477980081806533860140584208733451029990754490391586325395859730938102523556937480358900531799995302041230330394559136760840448726735311606965034185663203866503613520769223383695090428924451182664558957409893323799248973090236168045745010833974079365339936804934958058323971100110241406178228660530706417702619751952859000950257484574324574962911600681420770653492550748533479877301427981735504303101853143912864923351899871302529403215125301661737893398137357354883668892287137931340977787631048477899726313438306127828230848327360922074377305839970699819778015127035002966552413101109853069194670724453451155959888302112101324930871895867187079516278219690832681380020010484967056267482965797208239488257606360819903006532238054906536253693005446801901487135412028592614834577688550761504086336737455221028905676046010023129168577321322914384359399061453027487443019192040499084240577261164473666597071636851786725378647324532413212580890299170574786112305707031506826107527428498625188314370292912126385345063081913633262640829822409599497948341689842512325875724488687659138824952890251740717064268814236316052539263643768144552862084057716688397661987704037668631139389761495844478326773994003562842639629803155759933947210692432281797352369012481395659351467166353820079327363271752165520616782611092205602991375933939019577407081390852316082109938293504360630616535304961191406916058135787730320087785981812840314894742692528720556727864932653513737571772158067330780561252219111460611447404704290355617949958168345030498289746706950178580299116994978670317167990572018853225522259976575601290285655554152857051292553169601129751144154651359910351246243160047071207989274031983760964366598124272633067989842718237593821047754029187689137764559396263163604621873090448138189297199196820920288212607109886782308521257173036508703452984555884615340038712183470143689843016980743219180104502441970720203730312336493025537885634405439156526277240140761289245261387488626099151677303843371722705139065132349368685770950243986408851867398658596866377020477128200317504653391854602531795754151406910548258532426567161535590439835463632460935343966818246391835074522968109388212510958787764140998821973918499204762405515417349604304987783945284018615475084582360500937751399937508040262294087609218605267762792580303382507051794806698142150279768566336156917212946125783836703146053343957507232629692921798272376364858370984774996767889452415811644780474740989890844296622923666138450368058245297442281544248390569016712216728124156038889960264499025808042177351924457094222521386062550523470483711073173949516968349590446111156585475400485441140541489985830562469738186210917462005856592842724689637234862762761659430758595480944161234874512845477510359990291194753245727655993182385275805137215504083150549588175017914123928608082854526729965231797631169168551161049895929307388957592502103017282388164291464374611406911706518835763363429990810345320226028524272553687257673044248259913338829892646248207474401586866617001818053721820567746318215375807272500903837673804800954883884412512243960670265777479542602786550559068959597680565040624617488484028827646151042065167042776826330725495692971391133558229362590867911652283779643057552394176218789594569063926962956459771635202432660261904057961043892820510352360875560296486897164234204158647514524660830661067049053383374726489458191001507499680997076154543920773220029070150994109312126076266842498443458768490855222923735395476755453967879772688058683340889956987822213573131667811036469240918243916454982301377559138548903628614086102377134197529034188516720812597063181906225659060453371065093450060444419559975375014398690484736964808785903560912218162592812170321054019146346562559609806412448042092499607261130760092027332836007403888803856336706297386848066099844261148953933610580028875175593072903704381622829258698353026238719871564230146524737906672410695026891244169333413111114516762630061976116701891845363177477866520423836995154094683271262425733719885344575943579142547875757829166120085380946479346056791183603931291522914085292777063840649373263879200426230642689647005758647883969684750813435512288950996025291819548099295200197036582976472205856176627289085005760122774438387991350618691202625392821686260441831716755165445862345619583835110728862493001841284843841357086924793634006155465883986320962602721740254263071271862673720615802693697774547100689875516575165565701388399685147091010078548241963126154192133126477699915307547792201544426782864985654751921890449485946158054661860677884947271303550202959508065283273883673241875835545805044350855165745160973562557817892082984580724215613864051926017185109513977413106553248503201872102636516555097080080153939173791263953050895744344880853729029301079383296857453749601698089086095868600094175262086946834797995106269439399653642884618146396015149987208097775325024223145702992581945593918221916848812572548639883748429962530406458945166438024579039297668124576648114979728665000283438361953723451571434679039373698948907445737058055090223054691463136534606159606224651146780928140789695507086773567605773545722650223437635660735758464283611534787170634048510692720432516032655994824027450145274365547320608578608426445180351148894031728702809115374216214989729706601842156372007634983094408155293932884864416644686117543568251785018247887471649584048619145890655253726272224963682226736387118433546829754040062606949517009159290970885432358941657256107154672958130503221743420491153612769100795150744364693571535422884352636238257018044025695403519963872622771430413196124010566551842331191056810804763528562563038786130113076155299602795998481717470545353191321617649247223428277468474073015839684166513850659608434538177657436588958078252246124819975715051868091524592277268958536914639061798422271554563950263808684854846510590169123745934689190453606122534207158142194528538271164299251028909669157140402538417404389116873077260528878160466172249633673891778910558790555079839632252604430622188379515459607271558931927615364436012639530243044202534386441465258230580868525257100096958698570376567949398239942416327782329783065606113487698694082940489425397440439909361102885994802443246802283700752953622018557309820460879407909565992884963638653029921155981524972699409037437394818381230371667848139159414586237540954069152970187362938191910969633492706004521929779156862085054193334421544517997382222261836007558433535873410097808333274770324005598138580832591244079410175370348650058837159717323552484065758542670748235895915284845197613839744327318015938491978782475152252792199583363003565301559493603815781844233685439584828099428013745077834791789090675595182068646972518077017911047966868876777823159636403192937497608473437963693219198211951700393647154451398558122328032609759350771659552425633550044662859235357303664270309763705525851599715512151298578695727372169553343788730275672824517769053983142170064345792031183191871161323561886215073613785272600170418872248878627690048122615530884891187862166128313440886568381251729477340591779902687007180339922370279629590148215556519190183808156842182890020780838611280334135881464911211846602429205283361593037106005791593526327297237639719488712063350532534240537790377056607517213861986463180604293361158604369992102877096856819695730267051213006961055018313808580695479151065189049559557703981036365254689679980259838911546256730654580261594842085035187085357235554341461565775363883290127968664962425685531227159547958785396106330054849653158899278012130616150068694726701302426329253497383369912504288025702223286822850758530234308060280459868463820238635388754940628105155541203154377182301688370831773840912888292829868382869640015811276563729816543428291270961343723098218177094216017731937980143256502495215365726653176350973723723795579424081517363601726867880933396090504128942921356374261287126313223244182413847198507409214062892386908009495963611017876074757586465774723282410460549956121276689846932297326053322700350836130004118524128244450633520984372622384355436337428476345742015670034078895970774866302188279855649619610735673383990681423874730221207095209966068424319995023451607340280014994116619965426454017669024982094443690961878299275563335853507656794628617422230342500022345832055438262003251380087019223103996259237353977001240501574893699814459160762539242107015697234630711673505842160796561658358109129843130174498545367211076036368519915275885178522948765252356887995857093917606339494652308227886407433412236375376525038289109513535816652124476608183890615744475264928848201536628436133496372978083942287590616594252806382785817196111197224893382322328846835602487016690523790763881014661073562772446246323111681781222499161807278181934636307493183132512655064685187452986027868338748437129886425472546634092787093385240375971376605687016605961652670631410683627112089062866816531688891431199329646047720960155421617746178286380440066538702238953985113746289926375189547624296700125854322807469884850422841723998730530766487150358911124667092261473023869752419723540100546332915035057616690105262755612187516682471758393406530852424999926928520475686048612109108611372467591342419829362391486224640363865743844366245172955712696005387582609630821400940958548409133143408749469144120414346103880859673238096374036783127825553208224074576340629897532380676997103246349588716253402082031757085796945699449379354004903809016087663372134928400092276527698619388907991021693111957617787545351733336447241806981644931654271165084433728060325646681980895603551586745704904608320386374592037310071364972602190873110750873214464426202294806019551772780110758486638563444654483678130518920172015976903886271933021229331171878398916424007569190351860416865584373021275581048448074168643670716072533566126689081350272091052627565020916958295312378767339966183747067696995756355539368477626513943532634732595042126280234590467689028393258018430221405023172843852649602621414674865514429023061622807100249848422167914009114885200969811240349118738651602361566580797419303032519516056318056996531069267446089253745774406854781957252027596745687372113716964709938772478749948720457679293716872979878227213080871187514694104731052777889179680126393136777995968821969481799354524471925638835279569914667181377212644465648224497330256584921129678241437409144939836526764398933230280200688537213171494606429033704793339965811645527327506772278309548213251579056367308724453170186830229929448363619669242947190012217745036169565585028265330551049068264851991667872951073040873348066414924030231033948316679005302822898485299453057757526155179783189404369707607986407417748480212450130527352335916894666998668185281438444338802772697253561028490394910696699091029296479758845604570440661414879149450625431925254377839197260391297658498221515714291366713169157179097914820198457377620489210429078079419498618496153359440408707072336339153477412915103455246014794045636342470587956534469415669976863830760192630462191870624567927795063340554919656414945041747383821875862445139054427611021175008860178240668487513174152869361100467580600622973149429014361224819383943976417509084609619759430864780497521058541138789735276737695383462062699886746810851805099925286306038388378625566906130800062276745480967458545416645179501841804071194865176430631499405910935597463756117580409051395299350732492676897210729299516915926905728549504326866296171200517322217187698383094694242769884497573935495624009485501017812883816059674903407896504174383334062849691494494358429277703763765649261686224660414539220213301929828468217724280014346029924489255286957251318337724226783026602927920914618780505837699429544017844217702491807076554165007786909594034101566808372133861822614160370895597237844860139309441289125590190846979674396490201159014377704167977969079391171781779211635112057113250381998326008197706793991245477431002631345824882920518285284347100257157613879088244128668098179766060111684250322693781082137705446688012943407495194632246444714394991633158057187801838924309579570629504846555948764832910630204154061573151291875316393577581600481725302765413533125860957118772908954095044706172717389622875859323568355581051654523260101894145580177140995978989979953456111770967616870335371550669223288792868415025068177274514669823925854921880287493346276567823170947164595908644053839979376314874418383778911469130983121790575290264245379965830200375039616826540815974142252590804994327894543870731847168255270104869737672592360154699186188113364834507187399655531389565929566254468614711539649985941609036134307989426511484390257134442895082180812108197680909719546514384667887052708430935402827442948066299706809972345267420580617874369229420732076744008424328738104559557565144287531151525469627641902000114736609201727134973315058828691872398353896951215526132759103841452423590376259784114895402173489001492079671540269514594118037982234360704330445534965766379029797071276868203918156263922779514499933567886041353895789391123046784246464461296047003488917414408254652431749494802145118542613460331074912746577183812000303713291664889415579549027506704236334466415667533810972362972935688548319541497376504311609690397436147067569704366396527559818215738688107041334704590052021580648735189572149710241607317305258871977580568505738179892222209057842049882744317939028515042110469374674891374278629854204601282304487938665187615853741116629803961272696999845752711665102271770067058460453261551778504922301364649711293767032970288316131197736857793152252953990119961516596478104732369370977813312289542883766430900503088198665638094338872723298628206585835686566326234492476289347823826965959734773160759954689217897552191599661549766932770005902860836764674734478001085899640991720449416660972187852451520849663003164256377075601974275933816721787327051969943329024779986771282129531493628947265991561414019244197206942011973907101132302598408936775145986591399572079703374330565373488749223553001004019240758466062153197848640301339339944536779359595549985743797158428798502854894187127554108582114856575798927493762954638923763567022564774115007405195111687360857395935466257860426608137166373532442811442002127082171949894116621332750803858719998178082488130932454768327023050192546476477682954440268834270757896702527885164762742214224855121173805925891192267516604320922699047101121531160777734245794586822218933010529829380567091697590456029640169633679228743805313598422821011067132599845749419524598264030717063993632557534068472158331690845639958167941863472634069394779874699461751995566779318983515704796346869614075855545051029472470447142000338683501293247506084590851317284845722119869105775465274253019541117032944200503151813814270557558967831041644714618555927216799511325385552464730524292581568134963787398541764407247613168434093719341923912650261834709623903139205612086521916368866056488506611152715223771329537159601092111104842110308926654577606253169227816983210018357951695085849989991891482539807526175647323516401231703478184136182279742499038118988389320364042361899030612070418485595572408528514214539450463430290587444152574308058107343446745896466497431532689861404734425432628106888538687435288660962479986961944267293730886284703074705906637166054019162803020821165164597746805251508616479117519625184872855364485620023383002052609005628184209138944245435088802739078603480971658188184504739630215012884394719100017412758484678978495486837237061789023310564671188395776639508158164843756141777214801863253055510448135612834372186850233786953056779134959646542529739714570161132366735855660563100051504544486535293702694677868576524621236582623851733845983957933609183311487598299074433844764268933790099386303101993610240159490967822635030237801258438478625045425692891757040582814500720457722416355545348296721469392069305593587381851431217385508146708853464843032103100416049459179296864664303294108256731110015366818322709143372668688330292779745621190045544539212915725509360609551225770975619501035257739031724430197952701216867378424503078271665246231881595771352850810861168157022283009235646941376288808544161749538759442521732201323638032971704321737234109214700021341083119961978929073189410499902680347814119203000211177472332268704339950450898537706340336249576961769275775588839537555387431884889260506425025936030655600735616857308001117222939721283344150699714858093469813909449281029199860441984723462629024115906070318905307956729287955156430379714565444407422212514623992297994193521235085049958685271602764103661108841478662569803770180153518800962008819013407311325632350474799477175903620755132288985753172200014597078824166602125374385935164867271419123821959663838481656372163087141637598499025093565217289288868569684447257133746235448688915501074411321277563114283332430682009929453017299910918795116222355426297850978970120063735281551797800961196028674739218823416313237489951867263584473402469631948286560153429099581645969380117896008336307473080591379384100999276663272993681885266041736109685306291312430804501893358220696210488563169797472361417272585754975406256024683050137812669514865545471090145835006971519621716485638741882976959119227903001371766174573291128115869726686957084206247059831228734734354590597538825437422255781943463634478265601111777276806523019726362346240155073859449980385965713919707518961614962817139131148541742568596666809148355851701240531227523342489330953475897087244632076758119170531306094636281001512160360595555512634417044155745417798439688668974291250679445105180455060244072296321718240143980000537115399514303987557455573777392022485251258838154816664341607585173388984898624934004414870573362647125275710317269615882393734929379858144777100416898084841592190338617905883732136799769240900263148002302047953240993697071439724235772516081423050529096364664191803526082223621101108940266432787065906660882536211482298019361140162891577639546051818577025437597387050852133805672400739079394612702143660587853872221588012036431525513331999438494378409601092846454413792634465474465920960248440381005031724029560656317206159727896167152273674160532053520986921473934914713843696133519830395162307855857894386530234558679765277360549700962147509150281859999387428285809162007428023466584982344694180026535524295908875292779435727764134818135962046016698140533727617192524297956398436860935278794331089358341480769434017305446991512159858670083119399275170169020000083642830657392436301604975730971363044964404368569059031333138816465649706215408377288251104334597007068670510130937825974388999838791302643858315286017106012713159251308406775986790527111236383827103328396023750896743964714350490854248592622643091357248841714212602371483712192851782141269807637392608800641772437917421700045143664041002825763890275683740352357553426052778364503989935706120607852221388552232387248131650891079740137620476348891936551338969595416797247778595935549746974728127312392837777121829434806529716460682898119103131661965432148861209078507237475835484978441289505135288646098721198067614744745969222277851224824235670890047121599369726883534423702916885659657983433818923217664006571733563712208395060294042898310223310663240308937905682852146537872659185902742017645285886761133064953055674526888836934911991281066046038692881436339785157003086102938223796552326613727455199381328478895212831352429260988332537483276637141888008528575263332664028528263951438426884873313271189561537335685913065998130684608770982453339832748746373825391118500986590586245278637197661961134713397553133113047897387970952338563741423796958750993362406840103436442491926147286466457888957437568069402898093042232510450095927357974755673335961251962567216955385374070431531138716908043376676490495939849167207736539421328470660504966994896305344672255743543685167523456809090011549785047418179504465056387672514479514287553337855078881500578504776239028657044137364141634196271307299206281218267754227480211399784010268626477518663928236080303320181673731525607094476093067148064608585491076160725662581090540668677170542535373373069339610742112086575883655431414081685016908097427354590706630992689714198809859724523250912117025390838112333375948974668574852605482940336204446087585975148249901108206663322920577712452443425481433342059803677263368234534994007165696123248568377130582043101969190250351475801127567268259100843480177579422495741438124556623860083751311220577355867851457011019888550634401454549886652995596051537259046495926916602682762334259282975701600093212535421132019400490250344274634511634921272396600670277825520711980253936043535771013925616648204637648798540569484198597593590122649486226393518473606490493545609357210965911951719339684771604810375869872901973533805092845219016108389221476352700424600125667230381597278846826343971412467652208451230951409053246989576849768375437503384531940122070147095539752418275536570925571215070233840298557113463456795188223515071252449592648561001118516639652305625854843801412476506364098887258010692087272717420699271678933417621195374049408801357738365645096509634350180318369513419946190383078616154876140528067199985727051188293470332371950665903581743224796976810211899359713132298403946618079249021761958111394209525633007468223302446861907362848093363951625474807732142325762098779530182147406388127223241495849623520122354439359802192925281364534897009341218729224331811752117796072854503292666429496919865466074092593664913121618050727025195479931871780544087373085332663570151092214871908950418523709624879603606929391289985887322756324079475924123313106025811926081779441520565747154832727348715701739537112606955111239799624510403560403653602417536915120986276218898648266479925337073190982103474900748585304908333255508242058697116711270066667910592636591293643936052054864398518482898239809719110995284225690236859428150116117652984265645373532032238015721102708984465764726691407733183157007307756025141374402372388063800933215878402541315541453407057471938364669468979319674464765794472961283197803229336288188216911707296524982137355111392679428538997251794835675776932123763786452369370000015923136786095244400186106882565566538045788631522169709602766398592435186286514032217240594294898970393762222655506488138517100190758099459807046100482261324291178170734957411702108994738318799145825511737605127314733203281282962448310898067286567770949840180187896303643202859757128558264944848097541431843141212164839472478351854412408076142083326327013073030529131416079991075316962703859301382268906117859276936244659783393065637847921941045709440882084803260252298052467208261331096333603852041673115544885781071354832360706249161383589614968626102599276446444018602328673535335680063734881674660173493567971842871236479421721529215196073629938547065187696449458051178540078392390046122719557353381527360806193074668174948077336371922252585902643483963712410858488732528139244258540667442002523051702086305052267967741013573160966275750508206533778278024403385382632731293443832588005160495948107524130607643215876076740034198534096228929565642685534723079491042000900871860514688070218486995861621010490884156829769263701504221129734051033696566234404384297419640277949197273767905967241471770944873715578669962560178808268636768888926386102379007844040573515713026883051375846519336672197549807219712039044002132728849878707353377334220931895944906988605629268588376347983043012967401584031903599953127817406410466324292047805907107142542737142325141276284410474723674287303826185414525537287626717530351129237433332409068639104438231691420988681101872673630246025025542159696294395481231964503234169388163485160959101784713751119134972106339370724890262285279071403329718115047394131587254222920228363013605109792973586686634385478508766460094287324785615440235734112104416468913031166678828756663428599538038512986092718530713052728055074706203908739487604781289258888843437378629944782723813429218996941083238911709688001081614743432722871787660494255964933299595712049391599392574284607731826351221601444816425014142222983533768758125656231154914760682000352027391171695257660857679339512373025661607146758126842550732099223287556410159054311099483195650409850521896867862267860833323436701408621268142970800362638766406835913445209365987909605974508337080345734478103480655970089820737031992760179367650752594370389834745675250812786274295757310414688764605100354853822998565495126203992000557108544363711320956568536018427646260267358591435807745585497876339425846995683376844197017308803342371744793331299278204104267586031696074648675078091582536078855063790337930424480653876778618258103718729941352857816635223795536546723555581078701250578088575683259951599271442506963075229412083523103606718281271649681843713569037842837538613279266197178283745800262450208065298563930324861737203639431085734580556595883363867892071324921605703078606450801092065559736069317253765795779718847825161216343376500034726512051306419451703401566971635096893126369638948041645469425569406466144983403210152581889700569369679456193013365661481219454530048509473027241555684992359406549160918572518695514892842167768122134958170199483255474662759697579937130476087861622047744103046985756619036597545468587660157243414384110475061890377790112632471794257320635815364489462510343704703135053069311295120746816041129704199472936086083935166203285227463293226507039122114099106924393408510415924637895377836739238848925877923422191101096750417547014384723476885919002452694325428835464726243050549712424370001397326388600322520932985445381918549244040049603327310147719549871986602157504824391626074672376085915696192221557054110705858767867683782375855435650852492478095372165744183587986977080164039446050575929261143618745686541128628880178193148417305007128050919447217119964241024693730349599081039854086178966657535041496768007632616446865367739086187229116853809314970258373618813897696060656751496601725339302690766201971611897746708328211504793906248977183193013433864539851091362157590907316632384760853407686685674645735588410936115450932234262596515482011511235039682933860125718107108670163110644882696329980549941828495950432308383252040255162078481571796585669459301434828566057145560153092201964045196503809256775877849101787881114904257176813353410912900476379601057820313388393627040647737149070531253759630319665096548840347908695114467348640454846301727526760577158932945839527618297076959843813073113022141183781996082637472132559848764921279703468052328373095261782743981850203058225499546792177063660235682112056392351461194822685528363757766404391847375294983257138704203672854240139179722812477151658013480650427925613168131473754215871180639713464899425546435471179571555049749119020460378211630911147673389440477809352472537589345715484436641165511833576101546736940310049959764887875038986717240102379571681527088858571885132912093225154463115293319231899909902904813424214794268991009182907203571195927132885801002004309589958569797388047274673732319397820572340672662373807114372953897426488998287258392539138774424847023925235192128542502868926190302165554228569645344832081290389423295725058635206165910157339653740120537856927197486533315995103711786664366939027869335818982366721751385085383703911471629379865991052306064631108537787791398416403417525207725401860477124952261759271533345717951028541696861853910171633794659572376386132508210458389874057522055453546999274029324610874710402613674592055708649011264287349684546328217322806956829879902553809385757483930661129821838909928202104604026620642686177806770861401319782024916891170147102253209835649362424875155067889368767380524952072174774796409443532155816078855892153875376051466946089487688742926800161324558727177227595979511185001638097959182968338062184780188407382884729191822049664346629044048955440436314370453173643568628051701215841148437723411557897645245793241998827649749883103672234808408695508867420892163918872990305589982097676442336308936462904172677254786793651266692849155538079774475835817890230959999621895430545354101670425007239519863459752973070498129577540574046385738040856380826369687944107073361253806089991102760422172798316405800502108783149935643112628364754713559076479446684484124699568714968881970672094651517016228817633000744460701642667253223341932818935155441988253439382528288982462339211317534057796058177337025703690206524973640493628335952080445345825698589151003204029566294034768553482809385698259744655932370998416730614186974560663653478173232225363063091880080096592713328747717325516456741948515178342944669393693627315537830533654302903362880132579310718117489836647651260200886445452630432416279985461835633986915453194367046578412336419688470024953816911009188968658009246866358729672317750678216746779754059599590737951487936378622621157198778974310349347651737867580934427199237402125764428121485973268427843510042369810374825879085264241502299743304424628024494851895054332445557009090393725623821955217777650043455295326387224842737375633939416601237920167998033412730967621380400590931234617000297674471595281855543255596943193870929738810810173395160546162142734765655906910483145838084813578150015697173560681048216627660946291844038898768149131263533298827922204136458790867446144688660520573619850090122682645427452079533480540303481034827267318028641864902710914110297328799152875670063425917487678425816932398761937035063129132916003745908472515199253327075997516453854429014184145095084574269744710660284750248900513236310661431584194664972342618510186514472395380168261917984995403393315747257775896750387020035922704745860417759935280262122174050191684114278734588619770036027966941075940702660544019794927706876405776634200442689758303243514298952422333227721088231452205925273659839522872968179751621402852329882017963039314447902224780760793708203910710870612252557247570887984680548253999549366554440809373281294061400649770030970836794052083129825220428791281616219005119675967959139459635456479110496929945353213801907163950950969661567038743417814450278996579453074427137400023567849194152339777328517972489985517395791562222538492795840997444795150107890879802689992598187262470154958277356124290433198905150187001382165498203861240879630021145244758542046872080659565663638532433000193047891089292402555288674374322559518724352171613818246129310190173460758680327053186622549752861811992321499469028570811567868721815566255885487698642905337573567891287984124218297434298862092505702515002033944294235026398912359024119868563913120383754246107480125743710621896088613122160584095482591264488809221117962278006998311289537784924520055013389841727784953928769361490230158469298773028972155019877562424115969527770100178046753323147922534576114022710990333083029794887657945154089465093918076945253962255394073785815856284501477734275595713885287134826663625856438466887957417411841356530059110032881375611571814455833816826366013955364337095987106175482512764584264213130106908798550218401812223985333874537106833531187114912374872224399816410271715380977846697843237791746455436045135431304561921354776002396356111043384924610799853797259250107455851253307835450923430867277884418297231574403429953173660415020335442594784814846070582825338942760279221095140023786923516828777905384513532716159476865256239457433042898178639397789011533612836813392496156967751850587271347382653461312342504198901966659392070030290924274586268002657774270110454307095188085822118454325269467155920045907259822422217235795318181711001909535607562693229737404282402538903353379576064954510216583190345609152299944696004634135459544661796364971125233765046372104058280809271215813978044185126327381506770410780968032330096700455131745596793501736492009655757747584789809044521765395833356473682541323766972901548431312725508667204611633614267920349256871749583608343866509568021055954402316117631869710316262160567106233290489850705331842423462071781034939014258913568681769896354617723867170561927230306040996410195517179251059196516154433382378768165063453112504432124886728580952156541312661795514556453925835304076387139725116837894643476647533724523391156113859919674581898313410837604425832662020421813831548979937976116333734388527572459607843598312797066270923761984482888241324307510729596877204493168318301450876307871438838623004362782170289563504847904434977943267130767144326877328318028955307054017155124480085983689348749282770557567419635468578613629575760270075958674268774213537283640327276210993170175860508288921843590421542844467679344706128907529790463498082077260612229489744888782142810373287839529812046446355281557975056888433073552924089074221783758073351661698804876945892866578987490387363760392230667021119282988413358199619080792770907295769466254359048374314591302527680064056893963603159594649432221956280543311969282690373514044671640492818333578119952042022204313877784896229408448768522495978006208562554279663023724919049732515325532222041243170600171821095110724786531089245480087813881793170872484883845984424692382547081600847511977142009624549080870071957939194658154386112656971078638329375331041895773059599015560791348220117101977664967198885665339347151284467161018112267077856379445147609246823305785697909902979622793258941190772817115457013507840057257085055673294397115113381396668314527671512034199713958597868474196251782738132068858890842876752226165165450004641898234693354908428932160976735975106636612404775519642940574540349060982479785029300863440989009185605716710379105541603107244696962799437841763590511622425576123857187606513731586386244389457220615633553209477901439178787147748175671940170298123489516297769958484175432697903784888003669907539573152242763456891710807951103181709098064485233225356182911318139056197402655235221875222363939805217058793985509307219937855409032475306719273056762053075521921978784920674341321144277233842726185751661398499244146509015183685148249298658298323674378051038490768560198584241573716055600965526380423239491954813481175118749736933247925819412179651423779003395701981064008198281623660011129887243721974280161509872517377497299594268164298366480655564562225199774247433738839200272915914753125979200742823177605720515190164440494047737148706190934365760705985840640355338360315243789358875890866618975984705583622072928736866725631566946669725266084174964779783964263675127707034524684322737768892542999205943534914362029406608687370710779569011907815163035106123159884394808887767957934288188630502273287300916001040082400638994175874565183450542326763956205436991981867961052608171498923702100432522260483022762293059111618949679098894754893704381789617711644986372204090332615187654107571385915121373841553254649720677381079335448641677281957825914877111366180153874440627258176526919423902515009174719909574128402552160326059868150993272700323238084499441376666534925267702109048444141396094562114190484249154140650796209020068055656280542479416857539150322371230925740227617668398168259663452481183216842180513733479547338908874120703907236648027502649153941286601172693181311728821897009197448632898421348869207626872203225639061131189831674135842076724083777516018775589758365973161174161775486866518145863423503023260648411894727519249743736812117637898355707669149080621988703051059849805784657693221203889357607044066801619586944153178392106347393790132446047321339701345575532626087425223139595281285262330258835894602411082000593398486160732900096488470215859694794172837195933667805382798225381015859465385454277428706225605843125709935270353592845080664461828839950252239891339902631518492765635168991259695217343262971446346482668334636536979355335488257166776073444588713554011920331920087188141493919965019242431506127649073699660512612112581181237908586215308402925568850045655851303186244938688208452001052207479611578192646526740415485342600839448916363401715708265006038532333019081946320552949922484623609729669880407480163842669237077345702349408011540615148620593353423125559879285378555028047404540428876906996315922924524425917158521179627107369624579257634305162079277976082892976343318071920340296361014735078727978734507042128989593635528845678756889644905831478552175776117369592545342001116939290090743279514814810241750527792313112120753675185526997974314155206255370626483713862531845152149789611815785830533130762878985043320695650824838818022719839095275324422396594616519525732920968662578712790183428013815719657976248202074077449571637368375338586050180970948812521244891405685229010425146310779861549389577489047607348646516519389775081713112401501897677326683067071682959440002691979004664526925464074063989115361650070866920117787923734842338242063994900150099839111945598345764757444502285622194927157589056212889592419867624492120800777016877104986513884111279409982596481750774909936948232586231451769897678477177812412096861773292546977691002436870121075185100319204624169931173810683736143463595577287775503433700639586173949434942842200569571824835289294154057163193539900478847847512309484181962309815970965211611774036462766355442013548614536070565770353212809574241989858139797289423594525666395413044924776798252695052203931671027919475423108371482126595368661263552339475621285057591524915370807824168167542075670825806411628995654845560554415279150017348154376371370588130311534521836276857742833067589309256328919943205741613819676178706644124180051576003074819578330728291796089288909870549407645728265648647827225586208283971043992614135646436413681309613745535633409761149491887807945605014500328474733108846719272557971146417322014600040970508544271272599842824871695910264092824441365948372065414577413356763163976871170774362592125804134431014128281912584562070847833863835857969090191460304341210810284953215375133836315437866000556123315483522443581819868484393681279139431151162380462607702213402697628704711259835224947483643240773168706003433204701373921480956700463481772913814985060810291650967638115334380118390554936560081490836567625018222570504638228201357627117339700356521319787903490921812119886086152100818827260428765938645766622613151327507792421388376058119971439132629650121593153486573819832392887228210542459110718781663959831189318872813161023921361447628032583487968071705132568015779003793534714803805387321842495863269565281638663651744906666101401134182294517439173703258411602792745527239543692212323814538771838821415830432064454729201590434471983129141721133574016165495353027300498497882190815380357376586765450593041185935857300868943102248654824077702661227991390975096589784106579992706614720204931272596490930087010774526555562253073098199935721158892857836517505645613388020697449646068175516837253155438356490002668819418897237207311221404152450453144536364255307791970468533569080839456114102974833506810566315632984325947491170720990760366927725445464046115590254419632355650366472383166686515932700807324033283867761414238571167457574293508223680651550743647998021264823904120742123336207269145929579332524737973764527421357162136496203391773578787416803900813972295509655834857388666092854024078002511728559327171433539490575096241029851668942735512509722116852674514490707300841590125759887153861272131032087077957075983015833392334414076642737178518309493622428552141655347437390841540979394509289187496724827702736007403338193773183279115330351140644452309247101637413186147697080996660223524834485215401841671990712096078951176743714928236680092380704505558762253833036679230880831517483209583627309238872140650885433211753269158793919859188794904978114230180910852581131132306080968651701120725473195206436861780830804173361744274200770789474771787544284867469751070472598522853507757732300263272690668997348159177906464568529382741201353574585050931360463184171264135938489948524576024494058038331314878102737593083135582736546626593341107244064140543525840386523626049773004692596992824779161701299288197664037040455100084899910483875216539868103182125504544846042554796184698338325994704026011238175498815923833855819397671140362592714869681833946533527084996673127849845274207376467285260955625855419257100345708946059483412881032680151691824111003714921200517232297653607060236340833366712869462206628356706232868729851159399115265534035931254713225034822316527144905316590485976060652877693209166456675902890189297987848106887009710673876103037973094751483343211699137161548254100716020856298122713108144134735417134876971800924699810326824494989696911745751744578250242817354193683981281730910715924190840630505995823328279332900224496880326487203576917931136944288876564424772190839074625696472858183030970008357562235914510868115220058768169884518262069168452711505854713337119652596234116964692828105423135071307342187134435029900912003297851707186797455240568416951611647271201803940254642291484862531437935186251526942980140320509909086995759613301332586435392389768436841547857262380455888718273999988982000817124385556728962349625052254110404627203688570489949626846869772166163324476688768742985022188931521406884603113045955486672549466735820592070604064570706235474350860591154230216540731481512333614135075556559575010969734420050741693517168649597209554502885334880858208984456757056275764272183758671790237175941511433807184149611740522427879579852003435585431485200326894309260955917033360382688055647276983876323223444777293958363869641178058738576785856841567889002103331472380329377910564428686636260520820561622334323075738493666718676256402328824390801603881674467110305117481743068535928647007117100979513822963282457046983286841362009704148758551213074971477599455667114568755599129735132493191594625560703729224077695633361485351463224131111025121869068175439070059626959180519838075174870025554301010574089636554158214491997163313355741754483851364926536651295499960111195985202260028594781348984733281729053690373717900058425201439723302511693241950639603117011316470407211075258040889133619575195335542905834389231808219335130251016845184773873174863240892184087533923816663600234381819063097430211122517936007153124043487428125474575697139812315548509275230559557688343452975412510213087823423047608313315504018828516308826901929736114347270978099314415162654333157208628334025309465916395991203134271643393142083100801568418251707467377831164960093499250698498095798136546093093050890986749985051945047280933199898365395808537751516593544550989868732950518283097762218000807643808283846370202499991377224693973969094794215739057569630126398734610612137276753940780921912537227477452087524780528645558464970458494975319467437305352902771390192743503056677344084689713993622365628639141865454191149893691624021604595122517775786096151796223745183296131285698204915551912106395124871932636342723500905494890671763628212958792368903585829352850617391583281223401376499982624163528550110442928293727987398537636673650165312312482913570052704424320251150394620384126562043017063564035322103761341125655993946735744945166270996588111943789974865082109303190991999155232739966053028375735285519514058014212642499105333653292448165626050647267704220027850332603175503981019337841112190293403690143100954195462630291567015997098577153947952330112503962763228542444799368090770332455323919360988045296769240990148409824430262102174263527950827507891784367127824148587265311357066173486570282020928516228046446469342730964697580300112149956182902295494254728193941419332769331764311120987465737379900572720318295336451993364475132777869760543560057863978934359611543324010458057639233033404945631986980830794374840422629648366543571535541403834587431672601835545474069533920470298417775027733622908630819065880032234677488458482574748434967920397414689504460306500118092481976751871914762193894882657996090798869732099299316158219082579895314925685209136518724614988674571263538506171349606065134589522233862046826109870324649154175663787173746846666742465128618918005125759085893093854196374111390057959936414051444912192931330389416813198498399114398644606609782109454369484062096658679282393604692006370358995459919019040534028786930049653515134363309658784620119473878406624031190146658314174642328289343308126452251029486697475837252231991112847864636122261643170161337496657316030032506223103669583389377518045259471083862312212375770488145130940907986935824455583367303689877863772944894369326723269701998157506817732938340032575566334715677028484701655258452956672695514231175923209396759707390449139718900086735309420128828722928539431168066976580889616842298443282891247246680426686386924337972050407126489348007669023059187479939762342110849167543312231127396833302598998858169552682884642271718049982862438370947062696330544201316747241846348804723942396310960528778044334377037860979562938483480123219004681185184865458884906748027418172863482390631945418945603179771720067635908337679644893091912335792227211738235897899071111639296519305578086015773508716032207792486772108328357397836899244723865810374014934595229329517626722257969286990792768250597655534957520184373557931486254279913570433255682047588889406714662816236072188862959818963914530018888189806319791490214521353761932946200655867938102083440748655818712059410634254420164347585948623325513407778550566968232957718893275784820587317950164618103180244612187643047816131156751841747301080292911999289199393431896824615972844588636001033881334033962449350914845057274500526315820956850691773280667610027110879376240941105989218371353016244681695973898949071760054019492815409724352986973540352501847651904721521549077797356634769782628795656028111374185245592465041315773819313019048006979718185748950419020538320548016812078165564633183917835563072820364554065716419478405053521865686564975612972051770922216433145295739029507616333762672862267904482119829211067567459355517644810385126548751229499447643734454149444481008351872558962864422777400666477173096863364087023462699515684768765639729471607773693251712205158155966211222807795599795031681168518300933208591761062712819899608724189757652317184195212403947503981156266536293120365087889021347917945724626735773429971350248676584624328093941077786234050282953924955871933658075146390599973088591456770677979960931987255171870528346718354182514931082117773792893945289751124685001607313614168573381321646876618993939568849628698887556333606315355525368299456720270882969571177612357031272105415039632230071381064732127738658821643741064751023642019538552560836765666463521865400405892029714516907977812246906395502097836220694210947608128248732041443243718697338600153532250589898789923226363732492675788933301447576879378711558500883621220704325038236948050027454533986607686733152482657086666939303391074312961466392166897494268591940859644737597427417227603937663483337163409703055172217004543826645988236123788492569365345960943502426451780126202901024607276196422240420142676192783790290359507500094186609997278102129187638916093819213615850403726441062370041811795821178753747352350099056146515631826360414597988041045473837224085781736667896624683517750955443196782929746831748672357121466998546546052545094296003364097150759150821200054586661996280476544842874860067109479510541947776122139711357966057257113620095175389703361019391883876452680450346562381926615513802370364954913804667709025821762652753751600877465103163737468541512501332215860092912572016470464699772500964738909513769871839729788778537559554527911824884595980425559952219392449521726413975489819013279993230599736909016587975998710295352504290777534360069020546604665245674926824796068454441797734806014231910236392425826719890197564215054832929091746154363759635004408770631653725531072381674699124956861523323383673037268206957549275984261640537889080838781986456311293871687141417040993712934009977647240802697237797044555119670116020694468455504550912163784868894492056539937358831412715225051983087278433366915189958891503204303577295822382084302236881828125693839260990080347723678229829263523327828648298423453414640471329130608966631869301926863198282927731610404261721461713429696872695558711002592472195972509000432295704380403909894260754867441789990705203098861389428551198305725445663699631663515877583557450908082270736645941161390540209280840701793796567664280923688713213060898634459953961824437284725272220021605473338427726301625932506636894293308151148761669247875258166555759009619357239969357058156272721190688285409869406772202033277177615871382901444826450870307265877263235591115998750250020432550593693326488314301396357285763050069682747390612987287474450329861826700564672799519644282610831541059115852472599851867207328393964102576390940172566813963303707727935354221317272840235796235037319732349804520274629537796418016483711915928011236243982508109492423748683853087302540421914774146747816533751904633485498443398478314360399755755687565008160914233495909571380308865303954154472314306398442117199391501824023837346431898565865576192285920395832332301176228010682728787344636400400199689208865504096988021379805270180271414870069018803633269420552420411261328926061023779575584219440503224205651392481361469204936085256742870244163609982039806148032142827841959753066390289768916490013088796858060868610984042856070597368936158457237590518250844324899493751108191423054252632449532551427093109249898447360470828375146083690713474993413965542211580709796705360921169907899882072521293921474113445491281080427856659425961588001276925134572353412338824002528116416192981963363168332290343284170361448326027463366625037613833765238821086011005286370930196983609740502107925388913125683023708015087163268121021789751109393266264314898436140620650380477570705103490194802810670590226672418839526523004080368140764250486525225581353656893643707708077544670895707144100181015550054167666481330627896918853672295619088307570544882478793618111211236944408941844387636660998638415019818464363127335596172768436433073683849106225795161848128192466948205045623553635766761920146065661601699892940516078589539537834401578625444010610098507048416762495417840282446019756421040576395437378865514171110066828140600502744621840627138271928538886527010146891133040693219958668393440621810671919967608691603213310002176750363930242264544881387748655849903664921627871611714653639426044720329337332281770021985617344957317835656974342612017874572081406419911742012240917364517708233627873118364573563674280841689369650138719071706907513909657312276892885446623261699002974459748881833480577658743536186912472870322328258627238598065026278729074152105746548175416986696420614214878615477710224658291273373581675157458926447011806140991667008325927136579103902731275308665442187263863012473460181839726573031100398904044355209612097307740955709927036157034447111104816004804062009500244783771250013184360737953032710773951200773539368046141256581829375296981581082574189880753930233498869209166167984109840375708019092389633879993494147736991911151527190062434765712235063801764674111934670656669331813846771766127144043646348852451579152794169068587378486620669752119315204066449932835573801507960843217560172252986001274323469243647536521821792650796666042124195999463203561791101576635953335824688334938800414189464143624439907044962906431077701042131283256344937677259181246477403049569045892610633576285372643421268706398358258155306288791986552273321329158950221678405180475155086723903698918602550332226983779372168474461485172548423939963631210878073727799005717815829576239063208863891660190351822208676928824624766023504564824249816375553738659342121266036942470602217072838744411358412260898897539010703873464315927997956104498669468181823288216469649297973667120281383710944325720673433388919488034665871132294363809821876919875832709064160542908362300565778171644287843162614767946713421092082154726711782092399966477079542670607379416415549398477528651425492565657104082060361542084114076699326797694066825246549068627018365253344614180746176287822168261310611128336206016080045908641822196457991166862546351895737476926559150028593345950421846541657631673306501470139279007643080527820054832930347028991400668264892755150116977044717728398799328228686855333716988214361044679300355645915207455600729601520115366605359721115729877132753579560356240583069278682758074907992253621962795246498923962865730964727296512133916370341474039868912980625843199718609050070843730943131973689071457701046067596336404815169750225138253168096523004841111840208413510589118370056691393171337150123091495795304041204280993619856260822766426655145281784811171623971410582972755441118751526081457530939025996224729664440390445375522692788094979124394158637976650459050578086943663584136518129379324765138226027215875649257480950933717418694253560620852709032044686168883918388360506774239060876116835810305252349088965892920167298076819689293546251907818893978006017069189277920464514701125141951816156191493517868326465411914478457572778439155564747393407619193809840995786967398299012818330050654346591490633320635828474258368810856629059740482162646059817241360087879725463018806477094017024232227873094392337801371040412766505909322351690460993955744207172217112749024777283395670661352579779781692586277265696368673110337613029059664777482341749521072276867092867850975723922039986771729889757656990801537004918549993046646102498039092191747704598597011336902645708506617020169723429759350500029134179370068011205066959599145394663153321830872031731670990195136061520037005748816645791726575952477014218217122842559920532990803625012053004850490879407367861180724487928615386623719616290915386502855435635393021011096898456631787510359970993261369587433890319842177182006344890399120223556878838520124287685336352520890287963675828875240966687401336030777287618305383712591658887966884497301211431726848716815516665842932985411313419789362314307326380943900623457201454633249875582817310380181809888031521189992445448649014379113866715428253154282104248001512812701293238907813694861302768809554992188677775767665601057921389381440837265239596806053390370192875101270287991057159557962071655190069485561051631534567374897424652155123242276153455832026884458379818375200027793816211758514356959962067455625964684352489339747356217103634364426778351310971610043610589328313696143324891599213300354068223449483539161912399089903515190296777502648999571391112609888675279592752534895617343260343534509996339178763166285276066056515233736421925618724791797328861974494786249745099591071810910674044021816493491656746738139159841694211119234319182790450955999105263820141555856385753182122739846993809523187077773345313982369762007532839577841738176422966475156915547205915105032477522871409514144689485247257246762000964811369104406749681287991263545381143939319069249596860145268336902793321221905646510514373683985698251885629923651984090895974324729349814999698327120165073617756509870349323907996143987696294989401652021520216249448117265740047135980915262650639343423961824859695353349043247430485510112646342654674440199262170499233184500057762176722711480936885259338362751419144192283761891878716866317738388904195781009357454024142940531820314562096429954709189295890222229333087829613434159463121876221847262605956660366415421472419235708463558879903670283652834367132688369263634546243400763440392587963148596996068213694067447728816750553453930372191177211118300954121475634672067527192603685585290722717867249644541798448315907952762320279205761612998839596483756283130940569877604271705208367899266560603684958259473965806487607838069979536791428592311814717593470544671433633254762856127912093339178823490130628689922653220948022968911624329697244608204919193062211076761851617094512299400474170983018330837401322424791315464404494014178768866837537004887770614053687621474996463265612023786758135394910495435753388534240558531580300633576964762409397953511326107869984438466576905313680167974518023653554985137358680765687924390091627538549340966713327340514782428498524149269446985991441497996338807125198846309452328236636339449318193014549396084813955355412440394499973103485335522881953393126043746969373582406293874975375640023178207593684548860617462716644261993544559121012184532203104657935411897473099431647999338957634501091558819690450859774594665434495369878594275291815248393154250855423472817066777803810661688568599655198106191055702088799391645316625462273136535575830050243218105327153101235117104391713109644603698730369942914935727744013096086594529848619157722163981417080594643681611192148108241755073873312535074229741073933789003089829119300010302316862121857486176587092947978427175449536754768623080654656366111713414735671891130894441868614691519508094401187229049988800932396963107785277198769158154811804875192087365788552529684110688607398503989145974624121976038870689292233200917295204985671423321196240650142677432810551437850593872742808923009853621802511603069271540879460526949007807724121978229314094880323370057491150432200965877683145576539391369566027274985168959756611859038160735514303071259602713081113393085474127353359377691948714380772071734919029527967777386111532408816351990030710881074502246397009517795843977393029712674526426901132845745641310336148822060177134247503787660759736204732528759633383262544631478183399747468495867952149706941415465229310396228594192100445020209670104113532213699247992674871492425231242724318138262813646685929870549015463564213558551181801374308894859140164043786418125026190527326423723130018780625411203593494102872010723974100669227227857868508267892440541603095429271271773214202353864715331973829032697141861220777866401370585663055930185538017768207360248962385858864071999176577536806976624489935300750008710742904931715259008881036096268420202231387463622907474503119959348132350100352359163841044370799123231532106440278238421513567028267063684140871937096642277494609978962895672658643787322437835754192616948640106104692805816674081768527941231529725873118575998950142739485841828936204852522113254089549010285382273557836402588725447269115065640015950420797995154015290915108443959485084866419818281868825711679053271331842022692690165935897898561832125365223445281746721235440024092432510585710365126950439645935570341296324375300131652296121549787462496655536570676656802324474563300081299604258857117657687036177026861644591529214789904243010975511020658842715466636588829962646471684501626687073433929658838563926573640485916890753195803076661160908933486362593634022101684791961386760722159218172447143104896693564343493576176790408146190565294594209648993111986496950459091507364656333013901445193413075650104658667704706269525428261692233814732703278318230730557766727476882400611145163912932905745920097807844934351869906522578949572891833850723569825528688305425318618701989240371867053125000754293897908863124985407069574395303661302580107115513953573122435846614284661930878835704747199740972349030402136791218236346873379194369565579062670948148629919747165309024191284887074207367763215804207707503429041376891691862881755748165622585701045042476280724346362759477081740239674524268945953983971399046590319536947354443509577785023645352779341987026374994224961135590866688805332216468607023669911152954331898044154495997486287957819581361955609263723662197745539430875940009365362633980798112176533654139998435924006337508868686757595648636821180415358726388595997656870906410036632285797182916169773337316419998366060961825800528370365115472372228354934952204957196801523640846155767167751854835306231658150746201910482429263029847451828233882409173175626572406317651789412398563043469999721866695840230079801341065205813678914548610634269399141702874228339969882825091873639596163836457015571025625664695767613527798987774605635654460421854836612801330052164218622977149460221162389476572978178230763946840048621972219006389797269361787721598038067298446743518612108770077866462318951298971031616895903688655024933051036001608905240437985767061469277688914323213692565003429179642298751950210939228078804164237396394796345262800794066884423768618308059329239275691062407431591298167980563186668787913637583159952481979945007048258672255441121455443757541376946325188929334553948313764340981845684504676093537129103145232925787367112625573054752965686593494380551394862375232805985480744804908255882818752899252743804055326751602193704565429161194684887039553666320670829595796698893458743508564926289196938941724013651218498320523657577504145800375036932590280140328241906135351584797124693216000001640034119768530765331199463355656496253868939507251290825887046312272204049282257479087688000165866290618496925071344171145595990041341526709162958919179492119022995394351637893135116704083825939316615021752478862317384304997790231123307240930057026248589326239898458288889577811137705633628512459394103974583293387250545289292036828157538547772632311134274343461115217676491889872639754620445039336349666405092961396921807528529309178626196814022471601152613688086944384138101589845911395809400780093911690746536375529013605793853937599515383566657637712742596115953272685624729090758739245573182688284350655636984230679945804846316073865096053927512450104845631934224709457551093068185380491318023486663024638079720858111685651034784952958251886066330511332500696142114552590125109060846638091994274262573007622170405084868619532673414468237843163678253369130099093892538267511054722652769930396582149246506426808430356237408351186633317755277333777982614029892484689922271337659371167297984667487764561759101776256365132083257059198722335945013685103074347786593318385332132956923614103083814433019967124663786375271407278032157514543307968436953834919873078534400375800058681638917149193840533347181857744434404772697557219467316278231825826658483190717572930312964080361994547104881704842052039240944463332718295371589994778227136532020648647979138922923588034905026402986696635882348344904570415488667558016408424574014035522279961009648191831051718878237191611069034875977529773694504213295258494328366919983349577790339921164652355288799576102176815924457523338206949633661997735122379490019482293115348656853378082588753859867773922382965140656160832011118463055603787539866938366912046181188233277957832354298600691541736000927775242952466969004096440400066208182094211874402773604564678472876322350641450878778711508314451352354508705860392513665382685151010555578321950620861129262304141994271483694960998325394182521307578137430287184069949803501793935242971354290954272564644898823985140525485043801196321700798445352255855725176391153586885830006520829378288045546994835823020653760917529202606375365744250355433001058607342233352112787314748530467224506503304424523827852154397675141103635004527604413217250367259668923254352601656423851262081387274043761198042007232432222671297599423430826996151883679218662118790769404465793230662224254441957871512226719550199055269536572038195054913322986510029452154233647099417102294073359337582050838227169021534785853379567628828941320413741459750790920821996456233583310931282929152265901248506959211540306722898676545066216019184782505947651011283648913784505169553803203555025224652635384432726003114150059716316941418374787218073191884745986951046971682379480586832171626999698491370138194546302264405277577305904530521705571495345149966471218405574770945986745341537623409974943265612440931029086148373504425813942137066057691976781236575787727071475593138154415898747728113914439199013800032916904986300919418280793828996664772739719422136546703153330366829398129964317301185790597671530051931251470378116712882294766776814783922767931392631973877461659296919572476516962615131768457898187177182894616117115984171511729325585194649094700315211867518582374407032868017946307454649366913104096181769896974429752925133809620988808363753569636688681121566205250809031939091698527391049804252529007243168288802829301746373693251302792490242766597221886409157874578387153162624175050516104053830686677561672095466226793870988041333457480214454142276399688526711717374120030270587315747439022401293289451550639169068212538793852824375542313941165195672730296860186410668459949343705097351909348193171549915299536053760164394862790309741173300235665428270983318197981211035435484440316833960153751090506065800070502662775885991839933883928382040451641812099874985601896437821831431964371626926514324384965985551736924382199112171966486988371162541721000246020473483306465820622168253512913454922177319502167727754507860634756960505144097810229126324453836130690611199791326317997696653051757004534779997561210147810723462758050649241605642656537396051948862441267165257632459400294699869275583558237004862879568524024595198960221029980085979495241518178858598049358063654182043013960352102030911369053487876833250807081812212105771367940195917379047013670884100854005641843243808000536046888197915802946450451595479693530905189308963664910121859712014757470287953168403629365057663145172213994391081352138814830123001212674505568646884266921702421216144047667897320574818946127332108536135509730234776774472769407702156045838042606153344676502908671727137382461125100235832754033041626733943781310344123015817903453768483674777206932752810925019868000273747064731916774203201672412311016928736995799418948086443353672466768481351423156665378005912353152858681768089556666327753824540363342682607638194276766949215842529274792353956378830023974187376384886979741702508267932093587066277824227732445760079956062404310170272387236163690843008783941897670859490670950240669939862159060013552381255164786239194717341574171875857257516576152215650301734612393106038411388088797840318112819968122326238924075360584108327921517589359423276581079216978378339950074261725764381547755979345035526364902116753926301059604121806905992147273972843977902624081932730391383277738554644975536216422039315450299241852378326659531612399267173405337122818613930794589055748459677790807154732518177531005471809301784302415343763274136667317874961194664116436086615191817229189537673577399381860071656266582573051125431645288607178119016569372683289961246557843480694044938520915184864447028328557721781542336357604151373363889333101566030006274839044923503659722293654843952296322908473736179176403185944064049340113175584446019949006145988163971746081947366191101470669591934695485554266560387801041004774542317703441341596009921414391204713275971182839487246425731323478844166263838990037781595482074483591564007721568119438410598159606358865209047648219809431462935940712071623174830823489361161602641788654502365823267045391349150436774984455049639815042833173352240941139141882475662251771388639219339391791263356340777445513609972785068067630165725729374400600570998593862807044821878154883195377908835475653859196466276802418096955332647784779278661148247977943272409445305801583826093864566161112983139944287091049812367823410881818406592782371882546133678803399159331212425796172789221546121439054384073919279671547330946505394307567347580691845209988580224290276457572762736512717250650483966216163347921813628638697785821119643902526698284417889618344412322510613329544812282977370955086003832856873606489445282903587398639172970681250950744306160981501706162580064776207765289835983975740923290302890704450235408739291054914787626367041936182193715602352383830941049906301034762477707408380443559274831233634895019655712370484438288382198486723354909142000427732143478105626659867106197551139891573384634285887218742593749384048326497389857800047281656257365355013587385000797025979460651196236205672692721586755722170938843597657241778152639226651750132037423048323173229662598181630535769644713023743184166572702346599209458365350074092156062275374666872273837735558047453981296925690893087516259743873591839307683186937631836075407268428198920233352117624534441143451760310491199465365229664409095672994302714322309624492104859997689764064622268376833304540649968110529893017750447865845120507434580706313315117648331617445541226347875549006472386097817510166693735235761527389762595949104234151555606251117211487437008878839877613756093468142245672063995339544965937107538150087502489299455487715520371676215440158505517589694321773656248760030628393798043379071177919405249365835703303560941509369729991288836166819741566714998332961896855075731257408216583562922730056299013860903173281670003106210277244864747786800603127260626134105840322432175422617120933979982347959175547135872225315060213648335787939338935756321178912373899042805039522284266179737003214323974306255427665223958050412993562550784974781826420799284102847744916218143035437952581936791543217693514164094959531069487294735856859203523791535007504442117073641110158941914517846834833635179253963693159453732970277524359237748387317338835774537521999671722195695180630235468529705216124278705934682608851500069088107433605286786786200884548963165430753943326926949366039254920394148494784562644473854775092390109506161928033636876556843023330784446579943749371693830543527909331448456590263438133371316823689211901036342563600518805225479705658734160629118723942190855294690630194278539631969435955090451064715156527827047270807923144365318773372103085838750634633157424699080444229229544783849203869344302747605893294589297038100240853152427296754005874386739569014808733271188835803244476161140379624567636897299583209272738507593685521182242539188735545986746776280942030701576720862658500197748385389662290728667060824794823689891827582081526394149837073555606958190710408940603513862953697765606075099481657117375679093503817035292092290966264339464352580102203259428320108504099077813557245280299707396350913325519237146951626964160513597397125704889190085198867816784289142158058043751655735280269219485205527100652811162145717050964608294032214551510047592415748457911029865129126935666392502584764628090556963984069807560609346398416101831126887499188518643793910417755362988306895803546982880080160427267027149554673592825612769674826379686877029110881476718092923244759758330842303569548110880429437813032458057753427930204626769398366583755323481590958200467073013884646440198561427294347013968200291333819461574692428573909919169249331291673673113747415291722507458017014638956169712977769643722158527930633316986480428053709933861503267396305480948119021445365595491427457658613130534182663046542034179932886011847735032694202864044287129801222459687865257270885946535952460680072996974355635976311160713670960018528881312012948405519862912271986980234933983285808757086038894108376557743301023280671056580541174951114497152221261590548406419725349875397454675198518867548364040772604480692602960429780527112001144189504425804977158711408184668987359224433770202525581178200272439206904767222469561054146800300069191585372892999858531238649280398714955474760781790179564451775520379349913335525541703442641858657226356605978602507669598889235074645023038537630929255075165133405565772339905841428709749170898150346468097275265319623509636570849336558525589403068773557103632709462886725449338555536510092693685392360385679277214105381516576447243335986148063424205640506474138125067197526035270138799643495777221770487189773990830222639419876941834635027276543627205021991181470319227604815315187851294131180969577834573847562206857017709097387684955745491613112337405296519126390441807028761482668211234079561477483283761451366444273347314336997042113224538648396617102148245795168159152788886336786754927863865762445418578419905321502413597585498026981597619500096658903001594163649091835272046427600172460185218747790604098725351621239468685540434146808754169388330808743404101264169549643150666728766153463421557612372085795272088914769014024642653065532060095831870622253974122370173757997952190341326668585672059876923901180658562224340430213918321018719460054792867647747610965087847288907227321452274977334051678867870004359524602357404436183044712902019323888437759277763535180717626162267334359701172758348522041247685251398787330569873678858221813563875833046231393542461606919959369315854334992551119984357056280961147815383854100958807296536485433690100679232432130127823349310837842465177315719456996841456506345540588933383348119811400079115610853851385669441291655923850125676966028514000654594030895851300779345920509326560594876078728472352570644320371233066469089984952529368423853199708669517427496447912397575367384178318242741039648319851303114447779532911600979137878989192683883338186537853558200702650902648504712148518093972447870892620909878926119130814904101982360189832626400059574060061635777828029421742613566089441433516870813768955445063779360110664667536678355717352186927579798620688026705636175635879020603725199121839375604183304521605639859088582251955685680126768915143508413149816410495135457420844993600820349599907731476099760530517571412403785788687304897341515395547719452819522519382552396796810534072639601019601411179440401549062987100425996118233889824831636367436911007686161106195901518388696121037042215836755912273745570541805393209515470519195063216085014143830901408901910402004457383380182090693123122594188404631708624372075471045810229088657085739446747390510158700358843767079548791957933428910044755253693644886365408534356828768200295100137023169158650932057880827940486820083980369947653796387531626184624806679669596987893229887560156419638688299555629305956490875264892488711892707974304177619715206461482260934234711883601139497028002691094460062355326988608747604307472349067888900602733890663242839365109893472427825822443442136342089715190748694389557845249042825508373328766156528231741266902836678153250046343434895227821360551979646379916390002648613559768505132657639449745453859262904371178457841755079321880706756504304381891891643034451901596668304219752688740393480520003679190773664997312085193292104040601763343942919947934828013088533665916717323971535689824944587354729436177695123891610961120898820920164088635715946413693964122294112560254510862231668684178644969241838315434888874290890059989475653427651517587423988608825944656312599322160505716811080609836853815688705568090266928974719790276295624507758043002163913149833143791344536687171109509137826248361792996285012130610148072795588402393387850632108907878052124690019546792532489365223536024216652182926540809433803502412837236244679865350144296652133342587209753702636291032843563156008604734598810106549389454022918265019544496616244039043322012864984855391613023767122156862785282297745046575672519779927217927261649550877633772552914022531539347880111792321809833635275220629373198334707822211058521556246391143517130879331422265103988411997491871920111146384922082505892506338875721761085306131292133632730847822320520323814393599710250949501354058748358833066170726344958757338817060041640450038188793040175489965285211685258584414483314541102777091582948384596876686987686389479230505315530734611945432022818737533193355715227734490775973413661150469229512926428682384192411350763284505231945999795854816339434235509423286877191773485089243335461092540439040585263437060733774058368580694289433431783249845189339655517173507817863268375476906085718487822619042676522746642289273232806173156033083094066889665554623658669587692233295711672981657438628500430054811749174420792189494852876147978146557166707864506166123578510293724917420934520628706874373459861829230561963853907355058895489252327136183453072683613776690604043859796539004365591358512736776418597580093597528440784696018338328201821070984752923834700209764039353257779727635958657027523912380230732302211708923438270515916493642652895491679068421381126648633696282668527874735288921043329908134206433180028439285493191428748520269772572646406385454461701886431847137959169087560922710565088616169316489046373841620786342042207386543869730565666315845272020887546468171080550619588472486192276713967611414916344440028029357174085456907255455638866652715832686216010404160205111193869826036292248123672684516669216699813311681651898525110754438065070867866358503545077378217166515806857386077412120179194595263649803744825708938730983577300390250510022814709141963455277942338509179007306244009585930766885542143898475297557796333723266282672076430623552533654119768534139798557947003705480653690656893037529030010437451765960353538733486962776156152703937752558359739249942941195668462740906022022430775967027307392420921458306358320438423267557440868821282224547112535295113305309192060337474579792842275032805495843362839403250531192019242962234703273582721633488144003960343971383150897155667365521640931159610126163789646324560222795578688823209883520724724096484569677197668755824187315172693712272784367381841385391991206399879106376779834993543656193524160068677216204962062417280710795574535158455401638872486180739681455541497343913674014853879954532450812585268007773802048699335899460232339004122693611711796672580650790816192667940801984464669508710935616568665037325329347728323742753123793973247384062163992684562868069043573427239863086741821331983938695586740349785351285523502475081983196847513954439907282436635280135364967877016716644339750658700504118880319903580128688136171423067831071634163112574342875588163903450778341864682239767136385645158057928534095982366227428606157054155044056492041244986439530871349888566380887932623575359834578958939831024398892469617329310947952837058661265060714135588115038568177004660841698154431381652259097969778705321424541970294882099536582144273904829106055971639582133478916119047171976775745611727930309056831428132687144373353689907856804867949219640031498853699466425997164208812537946590995592409212223737512381974776120383710277233720278244917405458743805959395125395344995759514134331113874994581864152387337059951764858034326039190746019295788463055591633991775775411118392297634382272919543825097717984925585653978758269774053494785456011040100937505361116314251109736932763477143717769133001708760094530436481437395881935505952434557059082981386487751347723386704398787022655673441325124596166480739741518575377190725668807319992643347412820263066252937610628221925618010135826555491264646041223218902498689126336524885229654794539770454775711762932427289226231035965241236375942056120694725687754670695807213024062381438195284003390964589307563747770164429551905487688787505322553642281201342549247820693739597785910073546650670557087509272077266085107930734987348238428992493110941664624682741977977129170461640871886969841407546417601391523695894010817409809835621974286718886232765734483860814979640370756155903348709077328572101225706286793153575229344289118382016533896124030487058691179122696289430352930521218985003665566755622234602141687142580073828642411108087361854496616365119278714945120124986879307338300598693832951542259493872933094925630890142332887104840528244095864486884036126564566380035276025525056011982899694551292003597511374140962880524479166666109610352427618619591579376710052204725336365211052826816814431392111010760944726886137730745748651224778942768131713627068946603308727183269847792690927287011788042139370438378705393557149476211627334139484823466323358783255132069887124323731978561374237094176925581134647015231445870273270682880785803364778531234604279150203182306713289612144131605321576436090230979107869358852916448587876733013647922749819335587892743085586837461770337154216623359816435844980802242725622090342908022293307710364613373352580499570303369974675232970564619737283854321387633280485901696748918977273588135629219948756046036442015374764954367367216978925921295687840424902292033875019574744121761057135604584931129437549303264157485483127689241822760343186323354967147794516206125652617038675463796508132637240008648958730359507308747800434539493350367266777468987759377290151927678110346124575910318661524475112540688261143874207474185574447328249265902462516674512933726563884578553854655461660044466408983963424009115545251732364836416057712889948297371696016691085018450172489167253822409105804043608171251600930098457602609361336675363138851408221339816691531456037661834171150992533329695852234955222572508104078580988766241502245211645488226268673794202177972058437931717254073333682893699174304862506221589752499724598716028978108314075874318253478733154058076207583603159362561086678705523578641870778888796751583151664226560652707394404124643628812339267327796023998586445087907932392787933180452297643705240591115327724793066652751246665931488354055267604709625669451203811081871906193697640197038134041707279564171027906258986288104283171831516247813175550312444192028057368085057484982171054253794880776658023627334743730524686806332099989143239844418224987809749548354682338315660573225597237713435065896574535471605888189452859838600522650540534143486727000176539478262705682093057343833007783409772771320422281061766975891947616104365650308625074573925387768034653412670515911155131899784472942823473474953136114714484099160167509180235452481733517414832908697063105297876320794589611404251001532969374930137280094610806552523138510156062227855015754178056298555432830214051363523097052058830328238360069058889949623076376555310260129350020665099457405039475706605331682145577069504904692547642480942007924974829401898296300806080904498427370233212063476335754109308963640515035075939428128696639062430338323851683634455505210917149580444917132800449487406583947239644193808916483860760708655476622145555985078050121335995768306182174087847324373022443715829315398670160112604235511718616795900077024371637860665947725817772088458546365290359359793459901782766389909599627393255974213165686731451640453169207510094799862608233986391523143516265632963789404591891036912714440954432535221025792284146784922836067482760006758664237917411985977603844194107334944646188243664806342343237570298590347325918135541682364899683602426182059037983625341479331091256337749164393703616811682850357257858412173185015826167254925577815065375658393995126103988873786550717666176763357006690056929597400532963823682432865183555440636837736002979055667658977987799089744072858934404554724484079777106452038681719145774029619757309155956730713664754474090977042837378648368695257540067760226184615640599734551130845201167741518653064237685507371378531938984167974087016987337532966182220184418175544300272438728302936377885847771511942606490484445867080515327867469081742313470352628911854215341000614075744511949827491797391279524571304313335395532484202129841889439264651919070760600292223517394210575882093600260114975054145781040055326113050026997378005199921752857022350395250891177906618406875642848963193773295856024188712441781577890742615806907804869173013816354279020544644607013869454548463837001920157763642424441877008985787583809033407859081296359919246376416484766518473289248439494817164396597585039019401752126516447570324580182092844703361395330327910355312964172216161470073004979689524163431359096895514006910259610367316098597487132162552559859835446193394136081960664936705958071209029902928513197008401412186081078974347088303378392785311012349287010560473572885210659252919340326054302576441868348486825573728279504444543685526738822544055373857944320451621476391595508273256568413914466660045701111572571646486263977529415299034293059023794609384623560289543486543166683847126438700937155474504585153063824348285411508162093450028930794764675520227367391708691992065984615172172039997612609595524130205002638618860109434479852916935949954517166863879787923450770992438224267051854263703453843050925487935874300698804958644272432753212457260120738199358839075484598297338501935113207906721953095030247852977415444993548940892935523058920476597650633627848320314107247320852750948119243378289967141041985484622189843032971761139167180692547185290833095107698635419219887898549710350882562971870996556771730133713872458881096483800879062822595501258073251232258784207660214450312809410258827490179317781509483087549806378825350843488082908182227162700005092179041506315105578771353849930692116338900243253105195198574891048777701939138218032934621545522904830864396127349281862501367071715292332388133545606937448430661531387766172785066752703162943460672962418015464763811945929512776425769966177945456341854925338390228652899383145781938813149650927140246897549926511883666963583090205705620823412615155132376195233574429848606794094847708446680567618545870557790317492836701445491985864331945249926007198568615879929616661909985794837247287815763229929257039019442370811108720711580058740335116909032554802142349449625716223497417700476139839122798407508212872496311858364175589019761643294785814344253999685769046905965197524543025233609523590141280590398696943406270164188363560024890641080617243417921025430950976829255196559322463955089178643705921292361387260048074463556899249512470462393542153543258538606463156219024213590019471525124505591879414280463168871365445691699556208739937935536307030862313181174074988743758226858450564631515236148226050358439367071783667804734160451731587550858011740984718672967405963684281928029745352733319607842349786554344857555023483678547205185691268113585280182788592312365422608665182228536131587547071867797847989264751966484720917100818730761136507019332729968780756515876140908122790011192158623752096135414231022330259119635785088320161851948353721286121819097259598524066598025537127687752597310192385124241934770940961948006214698605705257390630342997148717935381775962804861240536239755802047512441178925392990009090663807197813698709724927265871606288648695265514124287970079997215053874938479017940425216520867694472427071129078427551749362979134153758330951084100615256873590184250080124777692576586672842316388780692934630774462160671625356485172471345809899673792320205033576071651167850396522554771336806601519110058599050681461746544934153217028191298094337622158631236576723836468631466207726956027435970494052325390429656360839960943190730121323797608936104471669782085209815425745050446782568673417588189240138749846408308475033327700298608431271214159600457436799478055381958545054995816916551428383628724681065147996576264049908446740746802410469791088419706498530969601473978334729646502787209007654499039811538450050218513043330249263319444682998509422037467434762081175028376678502703149742361965506359691916849298019795640052461623283525254038888088687346817074318247207441376830678720229472080796787006517084804656711122104515546972971260897652143765279844854100745624357291638221958902172143692621039914625922649022153225014948559733783820573509617733445946048644182940774038258124644365592980352786030278903407882659168433303620014740333511966717852784652543678740180370335132200266603895635548355690629160596995214841219369326253061749711637378654112548699600817267386260150435968095788060576336702022750676466891890569147104047569107653548657012599104095718038567489020199243216922285287734767297354999092400476198096396600849106567557192181794629665123862180244902769725228734436245291519676059839986131178402502723645371003502600430618950326659513190633997641361364196004094058660737457591983465652114925332428619402508441553100458666323766127791791243772802065287628967820312355157011686865830961715402959287034467808582836178445123947675793206864650566490187697267954539790540036329898047927428132895748740014616390614539186516047909705857260404275670882254470230633095302739385595473247321612649048245844529717916781474277321856806212605701148717398247212663317052080974130347884834475210176054539928670146587576298271554566914573358921709557896435713928086239188120375314621226633135188994999152327480701359908099633467254621329424756195401686385797412508618363663411131340034167658614325722953399266554057183993512002439636036388535456509272313226976148188817668102692792702369194623117402466973695420703330252504276124840014872631163533701346313739244843264338601889835115670404216673515358165165334457186995298396912581455810169043449231932277190987075058834413147847481133532515720576337176447975334290271209218334981437581634406145709503465579402428953501517818813200403007032870326327652777357316303639421376808848638892480665774135379470755892760815226523751632344522351110797397172309146392145532843020817470409950205697065184828493161470533806527742535206151733132371135352243882703380689220424486981083791070597860778320081955726470773452260436945354640804272379843725569336006583524676940708110823381196283414539773223997905667384220458280095741671898926999068376732950318323062599682153011275077713505424425155231399321160614953120847996448027816698463173777592995418711206633510717723853970621806948817521294617809685493188080379611221752903309588815843378627443187253585316698389365268772438765333405140418258989106637636889421693281339700358496631744573319011599863790231738110290499252074960166840590731381765778907869765685971116871283280986223983803416570680877248427142031601857883510676741293520224742749047703373873577476070797763092038993185168522213985020953422444382245079575135388335911975335219776211981273503726602316231665279051748674948355778043025324347770835114620733904829063595757762202724479593855493612154469635216967376160767323707726359691010781373206175147056632323408972576616329411330565091402801702880656960831533850289325910880183659202000159095932818685566667663687692119447169296564572530787608994456221613111844768309493220471771264661860196560526161029649748991817289431794456237160097674108567002701137292831592717488850959484819245300709419505039221504118066650258789917437285557016352281450449674063244540767463472146618458304969490481247104816489224789495208872245907204012843409455921384585941053020515660340353724286145107048465679271120065333890409611932819066572028616272411415675986009145824868230213880711408549011032763816293030370125649215770792307897127890809400561599234587608352624729613085268052330409055865083651423504630408325601646196499209342102887053012658652700754639121068371531964325166972081889374145004394264249912989300050351001348225984367940630864174957330161198305103969950458311634133753174864696504785632047814457063190062679622809449048249471405741206143483974490131603636359536277662756687382246987609143704607765642386812172042672463523947621556527314285170499008342454212545992143299273037705733030928741758845015460602034694223967563965657950385299034519750125343812606571460003020941014391176933281994410138144558983730622132632549770417206980017663410047615385690636319526491679640700047723414415806984252006573666466906580709425702667391517954011632873841103036278931025475943146575318632342615859708097913044840812162455142106877133464350661690488120861643776142852471751678434637963442195349135158814937847521826464584203486199374490966992391545976492069836821253193053621510293468550477198167488337949694811423341525106869707345112189143091367216900056118833369754129700362287305654482707972082318160861628687411824603248301582964102479930295743078515104457340367527212469554386277355296315909050204980735378064186371171063195024389853772449014069862120192909130827818169715212550522336350398412957273651877670631673135082329091027053966692302602422122798026111039025053524010234652824154274436235888973168318955373020835047977883416706215270675142641495463843166064874390209438725186869463784483278593831904330242307794251281074049584855582995560170434690421166113017984486064163920754374241477120688849295680867680475597350829538963308999593897007335785507551804356000790841560639924950614406877354034764505742387630977077490004716532158768669276554173919936947915017028220709716599501100832075608909738541980289133946250791461372166878156459538478757309583900583811202404081887666309587118420050254921618413837467069514384360073898058814336189707539595506996753164979188234846607022946981583893464390862935158760458594758079151110357514091793576255344784809991742559110707547843332147545502597115878817950921382183693124781997090803807047253621516488812181375056989064602482949675366170940730507702105570150692275995181658922399365688649158430753591905948354483553895485533991468809336176428641679723907077639519477732364989700726236480246272892113405843828201919977107544702687844117344786283963913871528488776019780597766302854323527943561188872523254421532520741994110625166302866685523032736453602109442939956582588507869931961001173014328260014409265537714489752110958916005177792440556480327507119500348536352013656348463630577554200597796723287749479771742966751399760063440522729454331281757095759875865512716174230599794629539598981166238435521109354923841989580669487590116551346750149653569693979193624296576417896826339160833442957596845995955693453378715832754948109668632532380508635265993748110973168109854381920830124296891660452369232566118237478600037193390222786270540717868933712718660412659500885957286856895846357385647389761574099605454241280992791093152191566368161465149762988676304248599133985509630858872288777807905624701578703338791141882420378844218852087658800485328463914229032853048961782985389857670098572477654617008375152597390611916962379578494384083815205896175574024260905766092870009474051723313067360738311148736999533199485927618707520022834879566231649411123350383261834685913353502207896696434025240811769432131849978091318623746923131848923900428030597178737471762115101135027878220984986460987066608559361143171333183041468245921694620899104724035079927532134876211690082471410938669683238589309473193848186537703549861792754395607219933487948354256558073753175685497162912298022691731451453618750393459981231313164941915212084454807712187747746128684935829293321599549387243536959530570054873865318911851586308183071455868512536036356732377144626669049193161792575708468146429019793583624189347690764077925243543009404106254878999229466477244259788259863584122987076089575851089585543391707219165343003626748737927346219042684555059012668739592373590756291356881780485439134228160220662807859238729393964075187245272667085274976858611784268610123999747940586055195086191991078436648894738697591204683470103139569415819452509914842697515215858785828199166744708084698537264726007065751698203036964909411818730304443957840919687948837443684421435326342233260330523644342553462885251171420097621995187399305925965540452065918626840818904733579973999481108487864439654264051651880786911785681451465930115761394402056413758529172618000579769646514968540138783976394902463655557817373751964994000912372618650687721838722836736000199076548667359690489120951386971773352855574895089792873308429755529508693714260925244590610931050324704886314211872823439367125308561520109563228573108934436259775219549894730827750778710983593944534448571911486482960395869558563055932779539501388474952832051151393150806281207148627430966337724738069560035753944599214493947262266060661470014086381693183118907764137696615817556580502429224698120731595526472676653412563375064265605867775636444110429364686585398600516892257088312085938120953069944757911560875091782950638848625221443875636034213517462888049420981448183667410828030948340531390214671078283615197488329214301847072091271314720391064664911324225452857129459094018711587010438406322131846086448180851437536717819170488394244910115669754656124559759535802708769810077703827267874249585017493509441891257959667206459875754455786888894046227749623986204839934736217486817817944599250186427491352119747793639844176579236189180165345952261787571134523101974121743171899855517272549423008976247909471981341454685387341428969790740562708522488455987586074370552500062041620409223549275300208928280681146826096901892495157685442455236814024748573946819205519209417652343254941679746940930615870240747805318242802191941567374167136584921711770207204977872722655161731877825276896325773140575329896985176448726082256727553021966430934034106642790050194459273260350638853461706673490465516279648255814147441511930529495199469557271315183489645271386838750541956386890113952941607737842775131557010221405234955705677530271212975075237931168252747293324801705671140475377865362492344191730741119570313762311730988336630729855027590256652846199185024186399106171248022872261793605769275411606031380781791179144678002900258741072510174442893256218199391020311089899808034813941300430583938199559308068108991234715709098671867109592338392316341643412968622156925864904549332219146796665653889242448530746821296496473146638040004259244069921199938799104763088751792288542146158078067378748919139240513694740542891593984633265424937081277908429719965970239107957881808454200769767643376190871926530707435304322920046414269245071781374425329375196448274351830806172870420596706732112762897472191282833548998136634246899133089752717021621968291087158800760424467229103582954169433383114710673850919587036620998587930329374934766497592164586887704224731771287512228136095689728140833368262177745116302477398212249276983664918327026988336709655752198847654966693071012210422617418188944496265798368828234418602746142006236285405625407421375450259389958033367662053615947576164960612266079635757990879611147315823094501700851730406288980782110479492321315632543806392693554429105129488805465965286709233973143743897882665227147816806039307651570320805688267758885179679643836103981235965139613408870698006601387652642237329287215940545654521749438548503286079009706537671036904328191377431398074392460974999718652665728312592474159852401741826481867396342847570028671603600463464738685713665192847004722341380738473728698288303716668406581833437537571044729965189914483638175562422783944019980231195583170042645778404270112299011469420958172370284971691945166858651134899520297641813011882051298138638950998230650919755843338053185894176939594956171231257021082656555055211424424606074226430999091242399953457216809596946482233088546319131590086295654633639937023302733429036634775147979804781467254172216381556219756728258443192443573854084653424789533380314121468442964908453285963428074013050697284600847989585602553121187668039486353660542215916053634446475722910151181600529902279635628520266257258619377836902146719249167579027024151018778264721197248515504719564110861677089432947032990475433568896809482835947438728646592384158536505151953309704926835255084772890190700467904197196901053826791623799526437057687944474052969997349327971224570891785808475593292793520563828467747803608054851005074224279048150179068713610679518554039377680125762044307188058388162122226999583401644784074713299514121210410893141312645543833744618524183995851092708046931197727120960026278649384601623900190767499110891833465007964659521871681336059266793810421554221261534651361084841125120546733384279593669344206727625598906815685225213004052808409348621763970672581236079268830596483770687756799893571371410765884989290834911935660855225978143034000427152236195518492800564898105593897840990142465265065821150033117310534404012061093839419413016296726925583325092269578683434499330357170598259002116449871545714508113613401414581009178840580705434600952707657330969830200464217974497127551480202776799098499210811472374779805685721432105354082876733662276261015116432581350334909569651143163604452038482574328354398125233620710770426901375906241760580092259925323101862999797626048495288116809954074902965802631651349347410043938952192400354186248213197638100081591336969849097776977934478772725499087468006443075943158868296981432086686419495186175782882438270964058818388896291134695249025224570734079981266192292527164904181171097646043926508154287553865484198628180598590806438516856954432347061440210857705153870336760119624837759779588443145626381516691712302737651812741959561778062474707194022234893418113801719315929711568661722090115635818428327526958707382462205810778070703974627845850201902166291971967881688453338098430756307551563402699245037783671518607852504713980483145980728666195707177269336654252470616058021849528887309048849836970625847033460285209427055682725593440720512893526021027441780205682472429623237156302177279695150608226293556796046507275882318102878981983748207211596821874013377885532939235160081592191739575255660408776030372270359181503021317905922574802966072285279755015146176575110285256463397481196665738863669758741647837851215612631102797417780307598749599735080177118567317559059913165633708828313643513284631551788582124717835736866841325663759772831631840520242491924884020026237479150838955713958088194158124388805199249533306034971458366140462906014967284809774852296333875230418183845520070178195117887556002042480630988990784435830398645848535844564735032127562190397442921536665270798863433231554147794260052017644580616374838318982746644926075125207088606617400166784748925379232630834306655303350923813443121928936016237577278230789865977508414136142413936479893968734916522009669142489870621553981237073750087501846980268769709062967001852378875566502301221539086184259146395126968665652838203187420888629996949889351217608012038389209050270111939333439028221544880687063952173427649805999060540277441155844567790677674446313086774169368496837510330739315271826442501049920471805369810867185453093957302947973080771966339754210646428822031287829315530883675849702109039292508389062999415003114853724780658248134690433122638388415990887867324706197502466182174844470177263837050252636502672661189433776596100607699082673077605259784725043297293610176056455713247234730639520632968666962288103413120569400989297233623327914309390433920161059584591659958890899436360570540335141368095200463301599401596584783175509356124651026996527626937429441905098669042466663616707711825694422949218583328926558020606530590094736302346279619916273090649054962958998560076995164639528855433412969152848631207029213908387908431807431747684208608902009600158300179837200732645245627929744989154172090179913953185561373363152083638808119117364382783451537443671817248075970916665507201276838489070629540230468015573220595010659362724715309510890706842728275853388174414966760490338281206532125478824094228054376733108969556086579381324439852011837096011452337569553146875075434254858720809082802061073920001865052543035051944877621711539572930242447247198913746890130440071877575639713822323933014516395639433681812873585612993825434797826495766811080207179854252722996370650293331867988741608587084843488863234304113807929066156924183134076934793886919496922575639383630904566647534530211054916222197978756747551893874833115030573736112629504944268779849682957975440937910948668740082358419771130371338618568355234758642740439685561591988127195173159106192575036326516996010615755110658133928418973027764987761802330711529492113737121003839242843749518269003100316773648150183146011941611240113458812080379765316802008047666370566657395325587273896271441428582117626905526933959238596676466196689647949103277828836964637420194404386658294413463000478254245423192928882714749962813156245122942085077265339153944842810847738564810372118847825320446854379317236350435400619450218637170252082008135695008698979211454427927442426314328654947091654056606646003107432998219881321035288355406391151700796653259583416660700678551087923483438961616638870869145682092766677434230649794099227504161056763795199353772346087239187152782935741327092131082614346134615175195512592973022542500697779125289807296732840986962649129630274142742769700434701177108396599075456028113386674268524672078536085459918008822275621747736596325323565622258686769732685303300912151830126426794133846185684323026343874806262424996171051303548700437605677153607373801033795538086885315955415341409250080446070377172752298166448676004786610810847470487406195403949053005028407831342167694227300930860652138665217654615080475009698752597500807393731043836395318203819109660192132920097781756734453488838265283607756371083608106879405724638840640752781868795569830078211217561732072296592941842801849275592997886642044278285905107050901019011712733407901179202573660358585337683888597058756348518199826583667941902872467661712749036664254732003437513953080095800842054398108361420420857955742536518359493249470104942031605172450672026737952764139989761793793665779798687468464009154626622869225141190080682917738174855622098113952056813255670391670164243969461885508618030444659909954458315532869050508541978747074947809912329080564988521806893663456684602892289245225685201585510271617744692116510526108251668014595728691252706976724128571523999947704417042186942848279109627936406834020550790148454525489159113466906736519950188059104008546055969711755250941108787687758965695887140420131501586696720262353725471615269732115128892616011347056122122515806798894104401995153650940779390566843172384909093450015779941527274706022716387593567812479261048075475543957625465181862106088040864133868344926696260383183349299486533685589432390380414576206338067718321846590609995863340348152456980343383547206206053738223731926354421388417966375181606257930362614749211597131106164424121056845459410367724024237375280259747372014165298450914289697471685975837341227764368149867027172734960839136762044834275149133468263568131180118179704658808056487933300328256375841214525896021841698959222955909892355870080278516898404098187041425260768931585909391336638129737403864825618733474180717262072261643850218182664926530854277569292333737860704641558084920424752864071532998438494913243815419926651783753753470654434578704094291924870474429015718776093776819667301823991384602896154024140270886037983120509421414522340340931232266068918764257234846037218432804498814630199600424959120556563244266566866201169124604836984072345635939482373298787303306918507778153997060653465872211891803137038387436801796578935539268611057099848765290086426983832890450016064347929648545680151576313210198848369786290122368226217758656510797744424267456847178791353645822896410220068818763260763794902580527217107612385707081026991334445238656400385581868830092820338116288600838260464371100633757327433398045860808287069112836477319741834107734979889247540943055549154616292511184454189694180173346119922861175798870977379949342279050478783223119501221117363104557448667343611198333119466061862122617449406637930552073207781992279501110675538383499896894780214616201455205203051434545325875076311717802484478309605367020150629263204566138788963197311679787237545609179917299305045827189522142217998203682328772335975576656278951100407536479326516912556001825844578079661841694178828016371965534254614399358827887942280589380178653857373479804774453518398518510579219796034374411708200797966510092499447358375660616960356286052570936089606947852835804446022937088877398435077151135117788627749917561282907104723539449603100015298475954326058563084689966288910455501326814480674193941396447530021182141633462463534097315062884015812720669799448544348839573418334477765200606794648534333889060469244756193895248052349168075650504251394830649038888292881265672258764780319004016814519606477837784392700495137063767525662206061078748800062522275999593758429633600723387857339771240802058003973427951508664782141802305969571515329488518285293914101151425015243836331353074926339433198702507364033362465824401418446321766328777119325659573178799248680722598748849680977158983701611206583996129446098912809237463295894679466597327064487040001415182526467030472888320170584260360467272191493235071042132862181320660144616428390647007497035598710850257709019116064205750934328820288536143271550548673514997236465309607903391169554289534703194433900444023523355717998386870572876519098619256390647231698733948611518402189716277842501834810227572853030372555562147469473749841155341419764533442289325731130216207218352885162123307065671305271069154247197264060282558284752413868025298783939956393644890993133821358120110868782103444370172093653974766317268193008068972438455794029013130202382969942440994230141536680492414974578010836026117632249129691328730379643332239986290756451028584705278977484417660339382586683001686996993899621827433530402828433932851551829287324904891478200598382823224894379467515103310046846273400938654020291668661424761931791174497106022983320749852165548973707846607960187231530368704201898850376830311455921713874349639349458090114288683060437415759265534340635337330177850057542703116739912727795007076510490651932376800999449855546301089687054306083356543296869736322628531307568598979163589309872096792207033552073894483300536105342197133309688337674623072113662362908736785648102151739334931644167247997450043413095674548962457341922973885646254746023150987191149023669355193170466514845390595419005647318799874134225067362095388030432302758861406184267005165560857802324930707373951084613217849680556577156126805665535865883932928920434719092945976942341326536067569568019965279544170792615137547195356484011544093944051613893186518858218767826429016456107650753160479558182208065220308334323816480782915350747925608796492805601401233333654762816438814062532081195740915716586486781482178569825615486691539618339350496193932906559982763565779899627473080363862894176749568891339313433036046596481471138796938659129322230408027238459365074966539343310367897115806799407564371822256054724531057191368700078776218776958589270921576744444371393073455011683432577962058507603660596351532323499996313513250671282035541804726744091651679067336496214362530772243579041645902413319854584658520635405028462897261062517630902351816666245129837037506924324461095849388548690497894094261012094506422091460885341969582609773015508320387580660508306543168533561531768523538529989629305238864726627684079518281906460721432941250383897616191721366848340638766586594486935763932254046612936692204534325755337755163387653808025056518915579558780395542066767560327387588507005223414084428527539677909579344528873450746214477961057639230145355410778548221890548230449370973687232752926301844711760769754085975995145533752028320948019250643996315074463550272648166524017924962460786195517707400020054034254068490965925218452902904375511525489098248287911685403803628531374088151818487874186821990304304674596279920148490287491778186856712288461524328069952187808698440564144472917416451762234396113372501142643457950740207944903275790450151100723992846993586797069703963847637575245432306909354232119108807761316567558765167168533601413370858373815494686873019679077884023015119958028503111257269760364312211803732174852160221130966152384581647960373792671127873796299046332879438516304581651958333787593425632740997866732365710475886351861304487296016540383578065464787384317320212439681237907889251439430170600489136049837222623364377306333244102366543196101405315984452416380412858478601194439920118118604229692755820829479907567638376345253032966254127388332567497834922470161507196237911479403502939514397564906013616346047456910167830206286772931315037409624058582600921658179941690784963050534763520029396433826208917849201742665334234115717987827324493154583595088078851199360936064960445848839683213469451068196393975020117749114923027728348044908447985822596768718637173363142902075944665602792653722849672630108788636399434042606076934372306504628122782492226525746395393880398086665487224451365551466351968982333435776532081837491794117970123864766900300760149821805748043841284756131540207505269009052838372270799129398282814770549818114031630501919264259512694340262996509965070010315470994267096958559518863239661348519183281881887674672452572447343021132822953712405722548128161137871971547830659811483779768419641033145716994396030921863697067061647104326744532298574171541902967020353144248689900887915423507869831221295307226374269334224435966135541186509937643137718028618641479621332298759619945613179506395745134321060764849631739024789064776560141603249007916759368381951889432284418885639353434045185230977708838520540073899263713069452882065950491078836056934362789591376638481593303471672540629700316516302922148223152245991373947232712598111238785165918007160200533634508486713470567813999431405174857685663407182220094263874815574994471563303016145108191619554343140394323806872948789660150971746314550565882475555762928220707028582668286123180494043391006926918156649437799723119777450039092155209026473238492079388640096546506949477484917396870319449832785905427077109487377644080467846443408694397399150708191855431440418970605159458147436377809824400892161664792980674622061845948057743433170460073146708529780925313316118825570998021089503033721471664051868834516719732746125556481513722245928997428597218598736573528343886145401001195951324321668459148731066060850123449837957411656992765788566334126856066468032665315305685246222856336544542598786239683902334317594817792191000438684597386411061343244491002767703365993849252876368703729344473090472675798196375930714620820356401227954504757935612880314662374894016226470923318562879403697200475469690644592941689915507469707718672630938481970492388889325278203040643539695867377655474106023455099975684198400093755769325039905851486788840657852250581625404256572958243999928673842460304961666553086585452584129499716497099524161445317822256945687279386956091915906879885681321709783887346394351099378690536258642672347407667578068436106906709115698262365449311532238532976431460475712856551697907088922558714592185119022799578024227245935650764312921567118273020714604091733604563532625065511194941851906238440990655821158855557729325461375254470322241077331160017173401029841766655161894687317932702984410181556946296836237351564976429059902856902920351972370414313603512558504312474296315174664489033765058586402677525422245532006743380007836943871875377923521376219267702981446867940875149754467887513478562321187614708656779270173337046583377847368934111191063047905755909597200309978556986760459991774106758708039618672644900306181534244454133779583626784925127606417717282111379177663273271467580788990118839163556616492370622877920003446380339835727526020661912364751167521709260007520386293726008695749196504577377762377232326730281534475900454345567959564655404303255624707943370337772819561360340845282061718593136414588860184834545121830947650358249777219585167507692638470242652330074518819155789480768582881399064168880409805650252761119783410491748496816416850767183961628606231053799589994035319722417419765732219720444614367358032688864871739523598853468970403696959496075650129681065142885204534798003023209542349896669644140983525135456810034824708077030590753945114200024392633581740790402360226548211071156126547834729319548689281300200777737348108849964292435459483597390254665780599919407285061324187058774225355222659739316418503168257811976867662697411342079748373062444057215866267927536770046569737159677491842704865792687519479168483058321416896521169386654689820194945903014725984555958312767476247702548822080893704530883989751090804943569863953481495555252055988091551261614674210877290651001133107796193202163300673294537890654069381208000262639609113667618741118106004024403132704226202115238194340899055860392989494975133701122068630320153588448540903933074699607763221875026521403096831715116131692501659345228855944912645182140081811335716900512243074593646596066814536498587765487480040823496193829086076844876100707517806109474684321929014963850596317098421292171583243324541855500712197415812642822750643061150360520280539859212703832844790864921428851718934805240104181235631764629924614332899414784970801530630420642113796459790712770698677654565606807019887836125068762494582620906270645349014104278323802696717920218581754951491314252805744001200590429936822810700217003943816315048583373931757661629556911361586474474706433519669252118912063681772756343584612045772357190471779509906561212970221798035915044691204219573531779182974986876754822634712437422436706024140655780845330794408997956283135490642374552218847764799656164893531067364751547348129514101257393760090928696482722386284406791809623135593366767425568410845317695047742251138997598737849317881666202944760635842982376786790946605696646580689400084664401142612920574877751092416773056637880885289533955225884919307498405735602641452833893758981117676330862808197399304481079344698706269162746286168367884080372781391923842836294964007967695704898847498466329525599986040633155255479799409237712997868636225772408455965980321968003329283291683566964243343920045548011949914577750693828397950465081465128929659029338939271091392520582802782082778527774666841080455251575520340541178850368584627779121188269482994062372499172836439826521510989936722170796331903319118526215071766573960849275953511581875870539701845037286054193873920682170333392522232601514136903631556137676242675073252327324162642346451809785813286951039563743756966968680111203867863051247317313775723385413656136868741336217956443259030058871255247363322671165696380808786289509852438926180811101915963859804374568295620837583554935502906281695681742531384889714707984411916902397645753896869235616915929791965084044553582335451190139243645454441349617896513562880464723147353700619918976826605893174393568412754951155828099468580181537964507214876066662684817902590362430928596435376848023376861261463769567715228254274038230126512548417149196888403811715708179174828297447106069496976226067536707170261121417426528679106937412542398060733329201339121750325469168011693299631845732527317478428198008796309722403435445680297751625954050008178752187060942381208475499445490758575671426192984743701527650121523167397017232682297241283890223427159916491489118709886326358587577805152858586849407974813166372323615524563162112763534610057470104504428392805226606045589756173477576918728023936741253031349849190810110398418175953900921838545520706552566131776749019634778466886937609241783859461331052579797293944959567910069650105837649238814027417273949331017945156104471077728245646092971062939488917662824766348787933327804556347045112466140711063364779344476034081599409904678129112848725654481232917472994791394060906806924288375474409881253637173977267816039281155421479472105844779630298402700690515118471297684463884556053692253019283074018469786620559578990199467672433885120533009147300770035368634540691340488166576787922803745679296357575213441562386431008614438032877419825257986616576243646577194136715206843335302878575063334925671045892636268989591344976173805009380008906596823555896343410761619416006716527668263591443393321262299353954027409771595539223027129741228161137240401408425681157158472420222132150205123995235103820461930406904250952102119039502037201299877535688444502959350537289617255076387833209330193322118719239900959588179239667281816460604242670718445982283128453957991222933258676967351852648465518160916880284138355728013842045863862971800485884980751519956900257836490385608192938725604485009768753039401587161512262386933327386527841377202259832542364925346121285067074362569146552614945622168520294695400169938323159641521811153381995692582537374703738852193458143492347321637493457413449246103921748177327485564576501920944005068873308610068820516261269462464793964232055189005213615512689262217217864720308265384669045630080521096773702970729470540494860430494801955444529334143201569176245918255395031877264737524409398129730725999667349079873702594490904659955905988096464139295515806520964543751620588958087132010878425714311758082425400951449468768713922908300536901588778535607421972762104362562760686171721500611392510813387038058203362258597940864783065154911625296870180467337675748042389460629592587127222124297674794816669792759977187245933768999661772889863759044462084170578792988834898002025936216720191545168614346698599734573786655987391031277535985483760172586904722320056087832679398810996229213610041763367915653461389129826316734151986067270993220613690621927039186895063738121943269000223470819933642073048215705103180152601286557997133444736100319741485084343620962166317449998972437261422439813087409436301893474262901129394476008715690378207466086524465155785205920135564674735522506211469672133099456117670415292218798000386763953159644073363026375917809425485180504803831485139131548527410304056599804199480548697942572235896502914104428023488426551317059532818829606949569423478240609068991555281092753607912547713413341222013582410059312743409524276642648609383065623990296175862904404751571448987849798115059973917184486037849067445805927087918702769934200498908751822991693139486078040176065973650422502489757050945319284294612802160747369785303029043976347139055025119443015457377512857475885535739655283708855958682194452419206588633941315098207621024028575054174294237337892082051899644094284394937040007273936272081113299304205371084839983304996811020158751041943365021979842239334899306911165598787730148259630945402541070297313964137622018597565632844399679701752771511760139244881101998467294749944344409126762656848694503266856574744349813242750743079746244485065736662654816404500562822535248660325640876476608013037337953459334228070420750943773734968605651520238204348692796340387659047154605859534812147689212741851126339559660058612453910326849148042097496288154542277251244066613107874413853129561259794147115249446902256211929770546399021473575616489766608688384418861500620990051701653582582795448636523444233765777360620157751182640348637170002506372902730825058349600184441406000957668188660197219884995017349807068669726267111476024534650292089836367106128037404942279714090327613595263216623919960620155731479459723109528084428112341838883766379792959874449741367516130760375070807807210943232827210851156122682179070018506551958604610799124221329211365039131346727624036294450599410292392877434522225657985294069373818381359535148298375638281731840705581413767042890049724465058749268711826958982005467453722673251173834500784269755267160515941869442287415543222724456743090790199738757016783507266673875380280637181318881063349315141807637141822702403266277448434952093258766147651257670889897433353234373920664552406447116799571580954508335478913764396102728694183524384255646243655037155140238219278715131867540212452081504637514942516094693978886922808578492923896765120260920086848856629395536041933548954993767740983285337339595482647382598231853591490268708544138414506619048126723049549212352438871198610624016534116176947521275841027143208968293533860186232051373061864124547475976202377598699199132630356525862336121844695159958042581275734333589605123992056345611094479347150636565042867174359719454217378053934050718780399755530228967843595367139294934295209848418804636111011893166631923329160821096722631719537272631685790088783518137594550352911088658095489083205271381731810725103647640290922747779977214539328152765868742276937008462797738524541197455600440435357375339563705182376579016385622642559648008284371065883923646728413756408086029742985148491692315121693767724422139981451848475628483993470463388704826782261817098428768230898850637088768287134334470806179099432434897209075176369822484485078998302669367553147369387589378136696021753122105866391696522467409671915916402747426423038285275591455821444079417863664212373219907948977607406644613583655341324743627564561159828021082183963472662533500966401077848451730347392507458772947055706750819488757026272539573260323134201244113320238360306546356564700590429066272559655282769177588141811388339023908322627614526525779408910288933494650900213572577314542514349354097532179990048197381770590326456198508079921971493745588938758318235149605644981983217579438461813546380968129243534170984793677219207935610552849326460912914215739190093279623250401292604623823187796367748010786391600882468434027174482839571850899020376823848442103482205427440115604269495413007363437660986958148525492890187215842346105020177260886974662015344758787257404173876837427323328609780529249517607307837230385516469313208875100880331902520952624715484681494932443393878236891517407919598985238595982778088961344859705185710449072842325223314953281991465055217292917864388133750879643269001864468840389335498162906669724060383883697204339306957238654516895143996099452835369879748036568331139675975256792463621134802705332918173223839610445031431910205082297042478349823650286578080830579154229865165286080323735885604306073780396460035045132247208175840471056088430626807254197698510795262510346889736256442418259808493709898661574443856060700371362389572667902070691613141848129448421321530586155420853995515946845997981741377468387784269778074671657923195463790731958763175649418286081404918112501642227562711179017261298967722425685289880613709789587620951879252912583732984270690425881946453660940688188314650755686090587927515317335908697203680629989013915588871787546923002363715502393998104300545381909262954230586600759651716149633893487618360383855609072184615499910517474150014903318952243563195255818470956693366433872836238372437626246284075997315571120722394710050490837649207061418480689491966366641952672105183017869207463086696309403816371684313608407888034994280303526282510863017705162567809854483173619126685221719258034638524880258218441876399173749728106806822730758785618190554606196836316656225734844420688633043135769416508586848210230198524023138116537240205785257161579391338935075570282187053649249682549106183752224516643750303273046813093763346378463505798236645162071405033069259544898390014381600641549221870526771221836644358695374807044828872803756604701582563515462875487747801966686640652091394934892817652464948976575992293612108745991899152436167067966479489986711600018994742724929310214419002441745299946807797493678278296254347517236987190517404023609302102311752367721024504023733155765592033521653631510422398112944655087734920469428618726017365038661845052492143855487538954893677728635781451946501928374817993787158132773648141505953723404757382399734659467489400888147126153305832478051296356041664117832165980216997683666082733119985979373868361138453592009650621367047680854558912747380393987029492123211116194323807781379325271427976074913059709613415081348458437031072133173026287102352865722668200390731823109500980897990231836929535100619340635540521580025461311931702066493187003606743074241996915805327728138500662220519006735421782508564178347377592267817578957858686165321165985253751363131728669862596804207924422868763608121042991999312053658444734506596544424501429668679842077184254405994547717224122127047451620021974251447781738497180058113536566138215972159984596554491430023181548598174580770799409615831963867317745420952833527748494325498103160174417759688043870829458285096112798068120586280173208554248738379790385965017881215964581190652926898668711690725605471733093161396907619845553700342214156346497940386353838461033106377430877916136494119782324110085139248913276717786782811542070237737708278404912958016685580092969112897897765505017730540467820930649646348337506153126587771803324250179655221782193912551923423838122141557027530389199417896921157109644160356912385560920825050679985315606870943383243253337694775048632495701422005366044375490933894061120278121018437383107134633495268856583685018983171581179206498616618159936202723875766729920627346848747268503796147585737959791133014388938895640378713846248441091891370461597398540210897115585589759892245634929874961277182064499838113884284950825400771596631708714182131430433484664911120654346070587123633534056098473603129070477669806344032126913635709562543858205745812603741868170679188245915946567262103065133001564381838564230522377031220265790117808140804986971692351006150215882358179317020468988199445336695082420045095682055414108017881051668464662446651754180753529031676049786918091677746622128640753540687582181149189772585825862877555144394551695251062022773904281799531719326066833029816256176872894164736845740685002625476629179301831697915647272625306466717711435203382131048973309870954004477612849826098628507205812421893131414511225360303459975671009826405445261045253308094698796529048006004399472344470424628950217489430742609244089012637309195810575368035075558340862754101537560894947480428642718645904947787347703736178769491887015892376744500586642808408221938154050636851993108142660345691159332699820718267238167708933151367325853529511713355304594111511931174316347347025339626201998377539620781925453417503526846374324058954927828225161707815927589901197974132932355163129457218481011142886005402680732867844884030661320278756762186791864647439242668406458119312196563226068985286544052944860935905992079039049790877230216921688286649337485577709697011547078480524251168251295833601052709106106338740045197781158328721152274390164440245198544927469309524237874764818413987850216771317219658315385429207218122497366893832796685752237998092692019830563889586132489891000936116161696267691839207185168734747282420058162396518481585264719118526363848769387188020697825295883536858058486134942194656563413234528242983888754801673832532839225605882602461880356888683711233664775865902422953554553530875836493427057664192493256264712512961351411312071583603259397482071985211154953597948326100289862710965940731109529091832557569877618562431311423990306380180861737768646067904458370494487352806884373406907235720470014729493248515743942280646728486671640230762544275745888964379265388156386383918729957837234871687586984554195742895507309073894564205400318131125690260881205356351530736725084045454141489932500649495099612591391644384249074925407104562628650044282834680471760851291003742320735342091592543779462242046447699234806422330571470310894262908591780599068336105069771083219851092255077382658267682518404392729381290874857338645956925828814422814593901172288145858945778382778540867142358395247864759188593999366105207960470479903302392482867582231157029376906334006594325580525399536036898497083775359894202755582078114078861175612821254610013990912652025397788462538901672166435138400859094611851028732932929140095505758981252487299512405590903343279835940365671130366801567141691270412932925122020348880516733918861382293274737223025792723406401651162608154870493635071155899018923393221773346937884972228249965826233205929995349210978304443999225099275884617131039000875180835722887852484839287279203346280739259180451111086263821120301247627267261652944477766502621940301470372074371114587842006362901339662220869576366703070685474534964344463382519429921837364257114766984804701616164004882712151724289217116222986600294971626137019204505154864286893062958613719378755784584063085550771582348303056953063574270790565749742678441545220072810297730832454336089654967632204728677756747591489586833224343553054362046740610491924054832519708896633416742408506608715232421836932676675361813504965585591864361637858287680766496687849258792905368801543357558486262138524726807425539545048851495198770211711300285357203987028115863620935414226801141249625967325615830014087826770954785959229221426729323684776848013625137453493954440990180341107251033029168860279012144386194907661748544123527369798291928678241991708678041423257013959714307219675693770430335640322129529604595686372628286448182957102123777720199868832801257863879530969772931199897377026823953596989268362049024860475620336435707460650301227725885281844713392065689321032352877059273845948995935308192672862299966910370134822291614090310786853860683745643619567811804225255644501799887880970804006405058786117035909059117670137404851569962370000206199437019892699300529294523418545315126505601338463864515762815202201991259062334828565191738357600724075802808618999071264468503742141715079030234300959604318641280020276995228233086170395461726735195089529605993719455635359695353462450410027095755173446118574113290401248562143962546236374099388379363715991597058394106356879189550790455974511198383130671669282038417805162430577480162214917326933758326347526377368228812595763408176987588880832374319153530542045059539178049739601132430831395150758624128964170599807036597569148530541305512104338135446933750681741130175537406780281789658168802438825390201032483811579021655522573368855326418651953782416890153851046336195278786628642752065532664214342695894593045027259770598254178223094846941389125346825290579646599145219504037228863228269342512601951156452844015395297637541734304237073467150476565122841269880825997493870110225988778330155304181082224218514893474238220580453259228008289820224897607882490160645055425885670873997675078540076769706023097781242137392013721056909072340960934400516128921849612164607636468939367876076972526124052711160056289905093461286769361134568592540293739072494594788549385717074328710871197314573004781743174631502650897224842891849641158977288050465673284380668443884564861993530849842742701748985073133632915547761205181511728664039291156094497667019162521752204930411335518000506265414046087372895328130741721239346001219016508846675029214574691205323993271676154733775350565485125659402587292726530880168942701640058236603086428592975779879960171285960478676794952375357603215231559623223238582197824697428470605794029460569767948718174133413791528792007723050774966380075326102171727555288484677687475133998761274562647340189288547057822706409655594707767459735557460321220876783412522364724766179958872122283123937205912464040801548283323038181155827462243297170014058188712050774850035225814427403017968853972384188388773119057453027753419820169127849040805012600447856056790108390425935055925393627745288604690927776807932832263138310612909534133168460873576022280600576006015240783129656796862125956978416551449978027143971859050772416863593144292957052312068064761852004892964525792331169859777919802153403864121511807252802397633384561580454442450458885430422394552037973436193774138317095221328302876004273506809858670401012428442648493198368319521850831556016722222761480583095166365242767857795827433307665341382618727304577531517309457690304971491934423953694642002784047432668647873530716251673579654205542125403352361905684080947175525378870071843525060819670375455243100473705662360223877620434176776768506230997127044068188986427184855499072378971076178075893277988517929579579906327413069829128003031496265328320124014698008688160946128546611206358572391361578135708976684061158405297610960504881320414233695608297867455067758618552818907003069325527773830542213034629465760743094892204412268797074305502778468717012137081832744573379781500663518289995610402504164485313071450232678434203947725649707224264429321937369299815593207374559771753445820167654795473301019576520126190161712738208058087129958294670295661434349241714139174865954499366031172671288663156312960411352986867330110405746217013460068977006506026053991145798743919491324446488365855132929148644495333529640114719973738798103166211865490583841791546407203556657862179238293735301634957064945304192802012135733798102329973501326754519304381265981301088780413386238871669883870447813352002770739676916344645713122892231291088677612083617430471557718863613488904709528464437456816283181463172591897307959754858764237595763339540107392995499732932949281867258297543803879986809964196243799652083731226926068440194926296592722430124881396876510225547958987774441356291087170471878479126306095975277151900605188727974315199235415070452786828144712066865517303802556171380834559690063043906072798539971692423391260472776736345045591303590685905576475574016245333812494686201084132706418655531927546115222448737852036158209597715181904629165184804292823305700504236316435848827594596279528102814824085032710440087936696691867903702548424116331635335436929291257853980490393942379977359095334842556865782629502361067569022143516094371191231820696056698994177374704377570362176985378668568638197817323903837902276249086253912959043252314968804094086876748302651185078637266288905744685458463053148670830813792937144846379778370871826856440664229280138732174557464169853010079175926705899723808338039018790424698005883361276285106848608450874558454405895792165121005034759465720825931813219935128359411053199855584633613841872410915738627555960301091502972987825262761022679262910773623016579488123644206905817345517383988233242877926245090009554151283087590217177292239786211664540137303192657219345368149019437793671186889583925228186795917883962039764859268859271760949349506657665974286924732173010664506325873309628609218754402824899342455404078328950118787720536703377624267733091144521421396723931709969410093031989794627672897200601410724397878664693236644652452327554110983858064286396061556166282025474757821102295467164743634005452662841212444057399108009149004078264057791861115503974200068175053508651102131179502320758829018175306749835293955608234148976025953951088559771952303551725780026532142236342567106333733575989785342991164270109518732212409026763503168297877723391531248310824336160496850809133210843358277834338756245492028039173079645049755026626201646500478069520308804354980399796782079901439998512094778222485831911756812925660235673173007013677936852301252712732572267930279762045403884312193412446306594058392727133789067590866010157874502506291453318837377970809875041915427898212343171776311938983395603638980034029161732833471158788513900299547496423719341672272029838919144755334340575634056304818342712572706875096132524257414459348811095543537636905885686772987168404806709997641324080391178996820677119467570554645096840975628417660053452280079949552063631597207105062221713506580653979850826459790367724886689249664228213433723482236734314777881477397432515486789251706968921969546969002067187188135448244216425293122402785563279500529042514689623924663469536863565135367452678632014056369967101077755184779565190650718485127283620037036441928127572054441575709054266175184706568557361398014523136396083249579125309987896697751870052319252866947523142988579330515276382698802375763992494083155270766325457740982954157753108197515365059778363039759558904592579090007395117418228468451147847430666022458487846919543971710029939124473205755977466707497884483151044736640996250152386085607419329948709537355485441376439793762709563607248753054448088365548649886442594816523822786944075732229489596225708744374933048721944447144994542481378104295202360066592080127991778839978540948811942784905801325693459016931944272044945820293477529634183755004009969032829575226555183521473328105800374492933009758552894920214278722619453312453280866378571341488739901741544973437116249602317612156976570989415413659498758548717068484945676150172526718349965367935595648530552745179391508248701558453320231021578428388591309423971503027391181516540519824765912995026292462293796858852974501639238085126699962594799361024979605973249150619796554449113125613300177038961050470529454468954518445761861836469752060665637191109013971452642536302004052951139820688636125136155448502327987045771302987787880185716490224009003878224834421999682270524839539192132771050064780677279823910597935133363940786941983339324053973613247829337668556494954777628420542641498585947543587458232333500456808887097263291175406644732516223017713884101620588114850426965060555190966176700303254846062907159876752399048750530178155600542389898105164629062221490888427513405230211668429035839957440412532767161728016119955588203308012510745456929445057673441413355797322333974859049093838257384422114405970929537990118186738120482431666807158700521926539669199949027889460776883465239401329283040347177959411639629957210067997473966760620786029668534859671972532887992840059109569347938022549800982667211358610176719903793790044054068095448551421469956087804550062916922510906139359054385042657597262768393938865097336053187250616735091487564908352716347820364085383770425103311336070961940790306433551905154854270704332163494509507666136179995700055057936862174700144539385342890385764221851043865058528943084064112214257838094614449685260669882690075041653218312222525388412503521854069743414664821158980225203395500730024401307622293407616725971360991517448687594037162290757364193768509642895952224455811815601995894328404181288869659768540285920512509397061598469052278912921209580676141165552122995025375523210024664211964946021410668963487455324770951813474793687378386160041729075191008255253379992698404519319412674161152941534512608523754024148227961777739634117851094474573757276472489722765182458132368241606893957898060967913866812803260662943426621396155797480147343567044196747948498817316552082818722890848465267383490436523595399964191856865247719610547250207879161882543453241768643293585028526203405710247068351720555173018887314497106197958325614463069246300026367771533146455699897589208817815092766591499665855996938069632352975197347581327961390409912334682902570789982651109601023719087384269378499561381178913212713378001363605045838313413833049565465382669283413957055125537521275160943541540771888845298460697494972348862966568019638340400003961163991242590700625148148621555685625962914300867841565341324259635777211421047060570887881180342767126144653524494529148830187914284871801924270196150813964694911700072400220082291592787098050545844615886407155464825527395954163119236608082613004442351739131943523043508930891727451079813630943081940195809419794202389896345687216134468292874267246554363565778987984746710926833096156581749159835823305587178358707311468288439396742566478720934906704664272399681946025445060782000076835560944048892688544353759032598374828131844413670775716228838377410291153891527772066414788245439074033793003446223956354667691203225599772141206280645441909517566481074844475643073909815107029073192934962838297061607751278585743017522005158683892169904141629278831719095936742306499380886244091907243511434198293519660161859921271070013242945491428675661724227517539806390091162162616012224397310934558940446740524827186058613834692069464328566556940947706324122298635675285982834668265965955736420108275624987128083178821453069123862667557313414556224304419747006657231787133884556570948520215111374894346225586269130649908867716935109045001089815405296437257613968788165013416375895039269031281220223376145604196953941020442487111990764540364570567760516369368552513347567311096620863848808963826565034272836944801274287148663059765874736770475388290367263533187719695768840473483506821772779828652843335485010004103782118303384590850727935311170215940082073653308354809547923785382402509328599731210594218978688394273066482119617169802948655728472609965173890398753550149827524761416134563958023664667883266932693603695970691492109605984923716531091479454790024135817512173620677592379175691592836444450601237421596306037604038973685947939442312681051343721081849700085407144249659964349396353469464346388900120516002337122739791461255019569337099354693829978800065451796230522519427638813330640240374236403001029309772268824866312471851550176099349529120815917207705291657049140796751417957752172919565722276997330403785465807282550481892334140594493977133371196410513793140233141993776881746583331621961217474664544491326091077417186745208039267295332895841968746450090467269532310036810434379379808647810599175390470387526278619692311010083888209680568871948313898878862892090401840206192586373328669557787122421838230958489639091686475404269138637928397308900765197889507690520008657224384236650524255793376232430628529678934284614735145638637131472625993372566629687813414176594584494663787357464874027462320522123237286254254270012456647886283463574042526974979399829126069186237585295977075605544926240803088655685320201792345464876328693180915733827585677470532361566028632851954576549664326932154099100096550237394739111761524828200521428143328393281812997721576718775334077924984699026846463406321195245857469550921572515006375102136036216108078644177887489249956536393767932901106655084867509732852528154517184105016212447300581560850537421074291885074638885566776476421438404268003331090635198991252497379891887193984343189957587658887016091698671496583941922032361031877502088388659569464851379955191116337324337285557452747121920383307391310783225079472864132666973195013787835718443104162076799168961425016056832030145743702100491964474737054150802488150680632564018314155765009542033929931696146024247118481974618084046472211773345858129008838540135748936611216294178488992375365933376700184624862378219452531766393782529530539769223746982897605351386612201713656708744875120314970824484168417331739472865269543509432924752606139554778191526743283734067503887071505417725225057113568862024956842205995053806471270333778277124633430782482511302224452019602338485839973519997395238026468085934559830552159859631653106495620130993382605243134858089183462832428476352156778923532557122267799834601203882476428043242833688701399953940750267213016816060987423129063432499740739136326926800541746100150633940173881996013621929471866295865638953465328753946321007528962961331520073473683820125915652321001808322119520403767265625154612112125139568232553487931901353979417520969146667837833897909255230422300346516371360037474361903488739305234357858846269433990925611207228240297119967408275540097725691974344154030552531245621885243199094512084583333104443267748923722455986997834319366836697922830329146437584785822281984391666232319544352340240311160834353299849897440565363855669801991988131349674572041872072510567571473406903206846273001275010100339090880378874709797680294727997089039685877857258283933982935476518446334432700117345588500202344602652698932585740783755450400614794593317676245109096977167232618344795631393648436615198483975034243580913310235033382446434310166728345724083788351327784799792398143079824189718989343232399200090065342879686819285620666286927478472140489624539929935020693504543396189969233862677752719311215847854456379447884573280880651206492070987869511547994421984389288645303016012673495137597787742000014296358516858254188054295028949477276277896048383040492809910545918928030685391706241050640486553876477609415261782652342555490183380392398839725282287726307419622142545359878988024101743950771821037899865522148163084575994044626974794185610167078527461682994147717386136700479879715512409175669026653270035146420354926184865896798430818883270279946546381552808722370217894881684229535265218498964891321660344729380833443702109282344608639526343705475998026163743976995614468971064809214969688771260789913441626983387237940898701760409074546050692748083032617538536406309097376660735733535189139280417859925150058227936195298985693201253631231315238868242938819445967042502628880736082194205030700031382931422708697046529466895969353577329880047236275281170365324398334822552431377373342009394407272416025067974967139022422136511036669496644375800095710832829740899239167400723655595063120579643511492406862310711529653636823719167306963042557232410950080936041482769407585567137674436780093325484702657070464104272929473678404839400616698067786469813239514285247344501248801556658174838561118595063599232512355607820136334772718117924655070113285469236558889607949965256422591978987715582989856517051250110865065033712200728223929562551803507544892111512889811870214893726397772274400631678064610538180070233062191630428826569181671391158009482207861877390710184158485077380053146448736972260040346767497350794296450263771096260175943923209477684815308345297717443895453032563418504836485844412331040451638173562701307749550156661175772025890905126096122614576170266458352391322116612181606605792786309309682824012209168931927786873353643066140994903248138800898312242969081342874806805672667952291864742803767635291136344097379114192291387034321484424670437383837222364542878645665675508641330497818825434824832011011764517077391560273500554467643177440029793213684518562512763415806650491046185108387304442789153274914478620555570461939545671090964666791869464355868076256078120534027781117429205653395298573196432919107941813975831821222438706037901322653775097922511116913439404635615613345930009756723656093854392229774268937032564864958786781208038623409916596895753821339164945147403183345497812948956056114201660778580261121299190845504055234438316844142030616677012739208856533829049522352844132713380664795333996902301796121905581753643129879010476891560729550435087435859850079121898668886645573656752265977642670871371104954182911505064562268394952458102294102278259373506942398769311324631785249793442761127975962592450458137559975088552024352799135972938522663982729395714558062262212487281794802444269270417767061756206808250768583243742629994854743159295341738425308027064511635819620242328322129429828447872478853672467443440240948100604112181601038661739794877614893939070994498993069980682067645211339386756747564508422199015252714430526974660676799723262314955900259526555950179902860379524368933732652513150032884631334362887823210923706021363435470977696065043725625103745879221382851463734377315360096333920888256074400622994826526159548553282491983356930275060804939053471765030580475062755380742829818800784757657967741879775737651735464633199220903266239900667354814687639633323039878498587584451349423825910241138250210362437083710472817319416889745222596626445414407888593326504495206923075180900290661335194174235020957637040546871010698797430461985292525692650525384213173584416291627030998879625035816402434636790738468518927280489718533458134531785145922997808660152644341725759640617884795065483040927965316636030051147972831327499239637426494388550742291546458510903984100791769453388234737305525954812278118202098060672482627543985083201517807509372331325272319962964660442908791723802963208275718549783881259180318458088263194601777199662625286650293518115938140656316683290785673617233984722677521496098512630656625322505771047159444690168668045760051592007177527461700953731323497193602935405532529805801965221993456277188796795542173313728657076778402547766377381779896334254241717320817142009564440107736282667022028619808535610001773072362036338666879088675344990144159697424649492871875539406775831807510289866567189006201663582033619114586520831029385477704201294671416524454622116518884892583586470023122555029651920152766499136304489899563516117128480653078315731288717065223232392893822051762508594059125606169067463550950626400366134609028409498523259379196776270882957967283448058808204304252419399290722637624553106557677639419019492303264281029656960065758248547129017644035211325697987200365164422127835851174934324906915870576568863031831825743545504386908630823630235461353352843527486468354349893133266180522494107676519448103201578470968039561231405626874853398854236652426849227810775543669871407222838817209802137025018256384713694338784618033220968298175944918846961265654133410184717456895296911323686408145952648815274598431936895876845700400123909043511564289240441971974801299407332889079380992269689821496211492505648125582668930210199022127376491743493546082361948247208277385777478198220970457658153277669749108914982845391885529449874213869631502188131445584425374866352547644054758498368324038174009799508094894214858598621643916782655834672729579746140070002445687738939534134007502850157515664450257943009829987347052746794815995832508948648316623560370830880960953975319694256210581437521014762398469866840891117713573694688399891775314983712120239671532992701627916128520683535069666762178612569304269838521258890560244449857131595989344783856788821289772530124792159260644641959265572660911900657292487271045898087304536404374722443431870410576609573832476148215327768836278212378850491369735115847572417369850244844996709780922602309248441402746640919921450864409862338360518626061713284212047358719934834199597110319299856392522091369612176478542097301187187673130197277099244453401873772628581905732338421126510893809054950327178973341731934338887039240487575699734901020261444016164226624606030248623844217992256398697724952824076780473059643385664362852102039220083602653839951993300741631490764658118429947191253562050265041315536400892415465553220444998533650867393105180249342313913607405443152557962353789896661762280236210272589636106274538915080371740384062375156520681885556410263280963539247546165509386081690287822558681404803030214578678154408278393589300543168789092675265355737904806651560184622738332482358207189969596042721694875499030346944303435016947245489150233416390560206103579833702435469098045934995671077573121120183549155926255449836357894562444924110232921486530903771495424601903592393257611252554183868186715734318930610037901705027916887031407989849404802028850866750866766360185926239887340658505567326142139050493538631033647999669857039268362854435421935604146498324496829869670277233887018021336768557363468713748570239308197276463399213563432507396693817343338078981237528805263543180362022378433632747298982606261661407506751806913057178500783804728348305749132083373775539830533682574858431577313939592901016809658181712910974217650181147715443030815516020459110279754096382351617902147875608056565316204686426358182940917393129831403537734410332754058538383794309740844527435220308314998464608617233759205984856753129837143485751759402190580096577932896174774485713839022791895962133308891851342906261051011177871470794016576494890691861660892720669330045311224905350667062906886413013465723876905468090575378031938927149063440933289855804533721835950069233892853662499509536352111906178110747578823174147140218858106825376854228359753722945215922923209778485871035520522835595926168493470267699883394130637353162871746570602460523168362705944444510787111485059239261037158317560739980053073514839511557339150619101244345537963817751021841216946293552848046570442759875660833369384539596775526274801921168172130721793319008485237136271942035063112566039056502717259811864644499042121211390541272144047780492685162720314592522400332372623578576519815001298051109642141057129705897300048592135741450105760587753032469933806220611904774617216673047655573988283531176143752473629572689599578757382061989605129478273835283115237258754289312457449685570947491885622101428740848262861524890195327881339217408107901486012347536636550725723808418057789071034097429135510289822754045950761898777181525865461995925046924858472952031545718248693895393781461257306155165200039966308906713992171985063418353134666260222708820415837410563895752231577134221712222554988538923399693667405994744102987496233726856020978419676033421463241270309920217192313831009532825716349996074048363567035097083488398823488275713986099074562455857763467600802981902857689574794443739985871807877098417353668877774484859812294382949671946570521117482574014376801610672483230943267438851696183462455346375815866406498751156986439349318993148890171215610784803181340277397770495383129931351717096806142990755015736069407935060588149478122994794446509667784297758682569801289346212952940044159702555775348692308891282832703675017162159079796808116598614058736979721797696708319071916444726373570460873576893455890136042987932667712094207873591098245583734183790689722603840173470695435870901923144374033399043828183655962956700655172740431493497647444081946633463527933470911725877490392058734177213684965919223959449711504422350209480676173734277682983275172749469338467789284391621766982710489831573639103381391734219260943349285627534086612730594095707564372901870921317875735826452657589264051063613033203283374345072024101128067804641711472879532706023990601351715517347725506449507250484118190121486417158977914303619671485912727806179988910949785673301809201926335320357751676337536948598527459108389058150959364734435926848470825783126207023072109469050913872315608989694842688215793540722487793593562785811209256505666876401739666540724789004093022072148360477286060456213572844781082827077095080556623894318961231313659372305234162209722109051553679179795042299225926466922249468433313691031608792246692238552108025283367064768327178569111993906619664076933082200710521330593814859278650566834124479604469737772856310411381695237533498164765868079216877422860255776672849251631141701489686926128873527757348739575498589298801816622877525545076922397773848024613040126209876466690705022218457084354212000444743638436993149964717008101256753112036565620676987547718096190689429776775149765016942181581638158966608222839625482991256529558028666169896971209944444723475594501975165525682473563924833071411523488917935458228254560310392954015080975638266110536310403828616355569373058927247121054581763542426679421526942731408822844679085524975570671616632922052026173502387617637342901773634226954581424389061550540604972658448835378724335904706882067418354672768649334211914889155809633287651790753427409146779935363525812353758763222571232108635178394878651877484028570756895283916292142485738601072656980168171925135164251426384025514445827873918124936459072687820942071632908666982260192203890684905695322468476512254756378357517304773651662608975685380491343010816402697768008147042022773647197392169984758553784307668090639652150227608689587351816432644942181512584954283223027257256381932254690876671816825032931741333704279790682191824005725497997567576513860897539295382364737323487599386024528518852422919686717508181510185057054220126378769935426202773082570678609605268548726719674470600135136697756299401574463223130993057248213560111304617186922023735679781874500549097792130507232232232829993739086652335753662436600516396023436164235423444842846468913600639151198308551306652130194466813735293755006314068671943621497215988708678014643822148201045417362870874448755913491789013208776173548564661731413116117158056660522583876722025098167418262586704517735672479675728807486720760445490902946830156585499795835722429247892256220369342652570950547774121510052313632171421596112885353466875458405342429467443887060009782039762653859580550150706151508292743963170738591348152533359709441119556150023236415730790270374757555853223108897432803938745899747449484109131380819818859122725115933248774713509373991988957737587196718599223442217522109961099039686103002963385958706636141338181050566968034904679022436018361074248477966962700485458682062048605475921690691078386430510587135269200104643530359279992049930523012104622505541085024349416035417134774757439338885456818231062528455482222854450146273042171327983438603405805219996899749180311285506584740306995971943683437203316022755052617321798710152522657338265371352257526683932989508210332606073222160580855029980428460331897551141368949293636666448546238126407943870848826138830286260923531097395029854491921351067629937476315992597745799043481428814516379534662853991237662767679122143195595503734733624030263119473026436105351097619835278355477406957918793580306509010425394056649220907672239998329468914272297738453076891807200723149780781188484357606593643283688300840056822100686140603824940095772365766503814871099871727633170711635382921735960541908587277689342723214418233918556872788763103625380565067113851237306933593018042919178129853752589590073208040530133022491246307418759650205660894881701912687648310873643828414570032918902290439501011826464492089872497269267997530422698787109823251516510873393898591447639430462007472353890506498485113303644982481847227891327370892652900809021603442677824640102969260317675836949419681302213151414833896053885240856348256394006802381222921738232425256888261957828645005935392899230440408837072613258254563792506692471024714104143794145973078232035079739151227154977866143572532437766909502443517615537615827188819704452167959970234256339300183731489342242066261654049396788814240595417174894745071942809296270731175436416604859738749905187944617626248029348034924368478685674403653876271813203431864069215565009393053376476713748556920697073938073988820774109860844905855016376675572755163586558833599791897881676434006699672553611207095753959336422118957146082681124702209816167349607207550259318677680830265862693432800070189475736506127675823759946238069298048648571563442451272843393060982424787692556612183514647426482348710587187304092110206672434449468127524841777300470193519507418006443506800208893968978395719407206025307005184549205888194245424410231836642150632625438930555191323911125675816667516807823601139113781332344501143750088205265748964131183781208270101280441928956348249111617690567687350412311166227756820408531245196641472739773676874872546067306364016570824400230246500155822200296411742023126223602653625807936075640717587124817589936577888890917351896497091011738342425718050711146170666549187155975034608223080729002927835906565255053920513641231103746522258247017755468494837695232725023419726864867253890878118570122557444064907921029977618020818180862891309131440829640108725552245352121171292052491749931229345601434333722617418086094076209859824269859174371074093082481644470198350900716043940452220928290410120270461001178252513170167419854694705225423542747888041567945959520468086473519576205561457973436862882748288224500782332146595257681808391533090950444560646046343707565104222875789815936425477232382522746272584346127184384891986988321467276185092164470881172203940269162547625297150907031269518391309050925673991790479089365672823558840908532128514315489962644820256356008300914186844476782956757661805840554049792797043234154999760038636986286442934494887044212820172442544472268497027387493916894538887214241164754559036748235502151322655956470744680284286423705327064420927998055169814659473075549498874085488388017984160466217067667025184153510946158785479999064845210369954663680726618027253376398885877199017172725732695448832130912455380118789909034879247426748842667112825441267255020620976862471372086112926932359876821221969129518671811021603818110882679547026403870206211296381865888895291044962191151013544074170009525586054223879176272229338896344617399737475824795473380687847909438120307540961007181310094821886218993754940014156656798146416248345389772650933727624797118513589479382230856265019663857646638755017981404574362879657533480442066667175851126048370749888003007155571329319526370920490633734053096078175924388342271424049679457022329797196206326340069305299917427221856982298566853471875568911189467714024531209419889717694010763619256760464978729432073510816466938037798154432188256265100657386605319719098351628576929431795912800690652662316867598389945922011614871164718673308940489593048960464438128143037016874209555176722507820257001535460659909576004272847676611721137969382857206064177936518713473511701146276919611964861166044767776066128525505639828776454389430055109905744124937169152731085579198355274895601678437572943398985111667997544872926359264433188219341824618567317088710820394285446879754785114895882130283508443252844449664896695843002718709074087011444127776556505980379282231350713570702990998481035866374972976946893884774398562879996658738807069143379442354386446592973008456755143972742024067159786102375818939614129524008396784837524840528220796788093610921656781560636689744348101335652808779381523805072029302870712581467730536714275006963694384930728879559312727742267484022864979120596840096291197256510113575016942197936271094939207542772750915432390294784046911372209569976197755281802023187667898584764594010116696323733202239620247142232723278673607173726819851214181448405510695221932145218852208334106819895556768220611740535997179070832643381998750213964370114981059089029344493873006099452571906003747336921854120602622174121519471298504272572509762661484937096136595129469633770888910406284290290997367308323515833194644257161373065566722176839776204882848036065591944117747926407796065986902268043565528684044571375820537517155275219506468003593323244088525042849470911516535841825861567844941498038449575452560928513086114490570405146010174802754222991953785909681705177360825112439886019665208887852519045377065558239041135486143173362757218144680586925370228674642848152603209874911840010667693080440920546531178961744773512488746693238851389962553829505573721541355461632022081558223511586699155507109045078158883639980408536970935705630710572131809619996519173353394654406640491253997243605092149466820538370832238066334145191568150381329527202285904566739482724597912211291405875427679968494941204357991194512891908309744797170196993706344248713573873095538249213294787474549476970788149497383356769028145025308622504030871828225278461748618311306032626380057641798510113642001282646008176944881791459769807969869284193747651341862861638220727020414597098320285958383050029823783311913150980846093095179450766491821904129808181095018820987380509540003547360480206567495160413584950737233188306590901964657425084796551852434821157722550949451132149584591634055897583075422256677945845521281685635159074068396751805979505807485131430921178185118965425063923066508036149275834007472843416381682835017760316367324922145202205985197038088716972470919523973043184244849844454265396429849640549958449570810117805935376780102565726350146509588846231614126878178374923658155395042922708712532196986524032602017031578974422356344349583094586319204611185812340273366731768241428917508123534112394491203981171708036488652604337588324839800107294438914339217767308687848454079672718576584263749979665680382061966276937323576068939822411241535166939107825935340608893650388926762226992696638311418380458865214907146296538042716363926194809875005654892966425276182532954635904347014045733874067231451921362521376498831842051934901937352617558082505734580120376782158397304618992840987504428535342866225456642675082035690669727852425428066082740967106099377443666656741604145880941500891937087503401380757796079085129272664847818236437378959559082699962052939868759389867180241834411923827235191117191177944751736578064031551724244859876929543738842318366557454906455536853475928177195066294871349785931757238899517611144280117346936817234824855242923129260679127806629277517918312268490780503620906260274070096630873225529110691716572705482108937641748617642891797625986695434833087453872403354422016275125967872088444688028438265103681147314012893618970559654305165396305874174606675110723770842446871692129423251734084544780708841226332445699161051781959773852509497934078899988244491093507103904064342708475261551672280406312405145386715679270490915139128816258273143375891950943121278638220587329968750047592994031573830515361367472571082133546320690958506759284696476789815870840951166359193545836987045310512213407754291170199006859571006847423039178652838133834746402878053668218439156908245640846354429716988208401278748581695369648910132249907350054736876760291687756630259364274112093512256886233275960545870087636512727175828925013850355988987272602991315981259393871032153571662612885158589716317868240579371961641343457677952002507896467153988518799711187083165497435371251897258260888040590123709239457150500819164327235300075394716299938269737289164360335537968480745864748918110222201503768721024160531507814339194367094160210237447692538114947955703312352840924281678311898032808224099492254849544863585291459313732866856534632753963575861342561389514448492478007507974785029040521397914197886482448415118864607238447271377192802717476116114899316426991460651471776443351613542105110915417182316803740982850079214769773586803586579222869268349366653141899720337316571407793156249695129737685207928159914797344912962948405528162263419611471759994848430177629924910370478220418607126622450930645893592959895968072776521130927450620815378560798699277820275188616387357906825523822070045686528499977572546485155930123535314859937732203930341062292426342974381603576578485405230016621622744574110921242515524895830617845800156892625236977984382522296746529390376309113329809089692367911663877738732235210046894977738947092146288479797854200651135837936963057031234749358099480344843372419671006731920241353559606501203745270012686324244815475694359444209097078192936990722428413650804541912710259416714905834673304562849031505669902495899928806318421481223324279649671870748964193028163272937603945776822486366178332991183934978136473261438247651946819664397723267990253568425391249286572723684791456281317426118518599994961672956864675125039980498313776304798835568074681870494332136528603410052012188846757606092472437083280361283110294441383461662749026560313607537321043563567227415554082546835446303966450155048770721674441033754818017878574616124225159267627501488723965657431718781349747693677226931974615233901297868101398924258309754142709219679868303717849425278553395959076504963231608734459612273165530691777270813451134912629464272465834194077090891284752123998708632130422250199361285440661382739622249209217164785914401405728804230632335366602738499425171307307856092434448239785238764374344014422466832734865482842344140879273217772838036131698496049495735835079584615733248810909937928408978983379512248908209267586328478026191532507620515084276329914885833046961890594723499538208375419083491191756575748907769582557860036469823961423625950385084290427131603005606689354549516707887306139692328355124381502458524319332182078453009672982579376536296275870817992191071118524989619676475071433940137605035920252175042720653301484759304943532890379318183448928317201686042286187569063474311598152493814501044319981662324267248152878594629038835762126268398031236275648656772892180704098017113763057365584879775592991565302808082901197160125645572701717736334465993159016115769593944702031613511355799652885665704305668393787944748047557427338341788739776622995674413360736336155209293631720218572640463699959150205370893137980536510219050073620568936996548919810660067428747403823485717993576673543596954676594943616577048050823607442281944069652430946872936449244396036760511131456421507427827384564408205639724242936471172161061621239763189548025169807788062369685527319571824091332937182549968204378493493714540167903252763776207337279850146466553626125856024917990247025190449825827449488116910324795038706495564826439088763054093459448218865775543472182069436107232524734450548314706214421080887876066279160401517393423140298224723391195603915699268046464104037765014664006522991693206215765960575195649764876832258333737968472477058288755466883505054373401975610035536730225171429963600888036794076279530930114098772244303615936375379769086664421708661721927658679813538221470194632483328734006873897243981514412619216252520912660578825252726734390168964912819475310256006923622659258230019348749093187100750383717574278062384610711565493120235559096505709250095619675045693093112219765059321330895459289216716281917440165802248978594335644127425466206546327689646987707023395839720216150992349641467800580084167243318830347315829860562409776599514817900030689794954003844516957527554763564829284724648376340611897430578207943200425715290441027184898278724616994374835764513577412189639889506950536035835903921430610080631990555883681039884296310453270814274683273806087576804223228964241739669089818862853988817511692709269106091366756211558429383380820881636492073446198705916311910031338783048107258462167130307591681993016133417922076822980553878879534318374896508339511156360808202299394270475493428286230004496159642607110091224419524758014575253307626732791283790176298491464793662465257656936125497473091663322420858739501441037498183303792482202769395658948296010767778606188908633839747652986980707538004202735050554261113844175787718382865791897064331890217096140388511668562539478961477019067895514461251574260990284822448237839934600136632967021553896476634573750656015986894040882501105632331576516683221289992435380696495682621855863105931967442097750137902048833273367375590489148521154012583490195565726846200615100092807282953564942380681217831552843968046439064625908544277986382115515879853699825870463647794709032961230279623951232233353645059287133328965955231852520643920978317400141009875505458507538910153477199052413806912257354572270245371096549972900786987225341626787975349578282053650999324036573922663905861216256402230224365271227500309521611942822909428371994112240588926965838771317800561748041291543504501094806742890217810392108758820035118009831275835228372433006709934513797771503467437001603347574115679031376193371801998194000538491933710288003415678318989970463327008593004557529787710776517228877169900895445369894172272130137913478259426046902333693435015933660732341776614877418662137877177337273730992128219700401189691557179881951799336923082760131914647140815922968272483136838611263139757251204094849009744476955297188583158441362618966753531872245352548804353945016637941460187094953377691763673082698194628953176321207625802489851443847953500140418363891362418855495360888485859319533939109865319101455266737111244566819235292254245639326589378227044364131832665487469378457791236293123591961757901228049864902435735326149532816947843915155261047649572967679656254627470879112623402146958130325554123070002900280007345431714981392656783379489822506810875434397033259222555240526937174204999636495760356306453028813170022641568024173834181790867559310879450745625720104975666339866819754861565265946207568624243838416670926444115706858322694263558989130709875194808657675303100712800614363058810500234801157447211948093815327613796065388361397602951293822095933919076018141931190228992483746964399198848580754160475433940877856812240647916571007335994007379309977239858718567242195593841702233788973825059111245723479407889194014553243385835708377231743323934483026006298169563950160960203650420688871236226245869018186011172227248140941480741300402339155308252475568986640773989619562457223373432598296183014568895980584820992275624843725271948142008883567240035354971066854362052231183112630952863201863655870478355281905601876201614990309841975641731943135987677978832116004941535750416052197816900023038069332950802129529737597860292523467884797659061140793063692596466241446878447406570762184263370088212670551848655906039184196366772358127987518567473311552859358945022479814683796595210734116680933457013317602044571569686171233489368836838620894906445699548177200195363818804172682909033506710997683267403768779439065395018197052718596474856090264488110970207695688171314502568753085877230258031092927310171738220694238602825438492707685339618279255942178016349744769822721816099978966846504495263446004319138186833055919849292970089265529025304850884280090863112035903795105270228127178985817204570766405825974979331339508431654898276077750285177967829036820471008267760315166636584982365763454649692074847309588349910706549425945967003221193355458374823426258996564775290370923515362518347849386693331364513537739254566151622777873208461256880562397246654649178909391932467461233971455479979420147055760382225430369546805196809339841533834372523776783550953857043923444825492814172879168756998728066852552650795029472803548981202603362084577039689880355720758916762675722424981563778999732977413605940701604144217615102509220884628885628595718431701934480401821553474961574276338683737677062967705436714164384883051540491711998862438630049094059706286384463583847832472996690181980079347114191947627275100778188511798147033109358042067428739181045895543309837527660286029264591240153527423319479965476376549007029654725246054457777480214624678985553944316822744397596658354131888465253319942107190816443864423544918895024809782622069127683871911553550822705469659829799191166882879909908524248667913176576598177556592880256384802122447575070502469764489154939307468568966492882042871716301936094161478130359308999849258670306005650059361212412399002454044319420919303418584258295272577152202129970802411283070578577734022528450641006942609489160266638848146054577082377965073526453453769384665211085642839316075665898882479912423729077396168490146996395044270465079334450906439756286973479225775399959879129454625698267032032479277968560621476677420932950373042896785049341566370619130356858067639786406310239718994030295549387781389178520247200051049144312931110197667021507871958443453829319450288332391812907434892411764406261559136571525144745056963784828304397637692140278697230374342700015965642693193426337680962266427460969547084149328605579507962971042460633905319098514520882491278316475500870226207468906085525100733499924520625747739238693695929444332950158483968244820868678895232227524556242314407254955988793318903844419974742737226162121485820930433437280994142982682595231956159221500093828157232636063083585847689183730409164157438520037788469104679403366876905430931760484641713469179359963712702618321426749460740396748382009611038618801095455388038214819190485780366852475202323441209931284648467634222267181980904385897716439394784047239918410679006037228189586848853036657437886486489987919080873844863084016593528263273131471022316347624903430463456227686587475102957806333557554150200328064745739981358789624864830259616820296456595557462782630205749237603715873031190916568512026773180106165985235248449080063621959491883050396228110603671628681669578819864126906940939316916672522753166897608096434753668784276478478639356985134942771166769938593598993325157679414396966200774990071355269274577387628390762208572634209012026732676399205193477326333164277403176156579564079115805855877888160265073103600570941351318178920881728129237916148333573936147317144533373216947017178035652500503634677180575522793287820588867861461447652365557025089572189480824547937616031280622391911194701267345817055104005687837339543850771516276858739455401347458643547474748844224332629787335025420607875268108529561216235041003344027339779573671014970883968238140577650698197202384033849745487059286298661657308972759922289333547381779765668719042322076534660997278037895465288741701721421331082304618446100963918256937451785370457995408236194737363888588107772167603494421112107142612902850310955750471283606089083496684583273407586226683770554000718272761248835946409786943157442064237238875878862525941137319241887482479108647936593936542538031982876329203167890882005418965970139982359159717546264988021277401211169842703944507336234085647696207979621100943433321622792623464835169649439685484125989621003552030614786399191997749205323863615435636082983833975945267391985516406269823223924676876878606059035626004226736141787332513592367563589055158045582057240479188042260816746784445221088860966608238489193310904740551726729786104458603320995404037909302099306184517387800205446166659550289088096141918991127998663683121590413088819089665497292716104918728032512210624935532301858901993989008090602510365422982270812332971539896531421920850892166824221147850431987017444983018415342347396702888642561357288891262028059324162730525892102668221153712569632239617238215039524053280013772954540584749760062374113674255402422778938580859114027512269246061959056346529850624685396630644820572112345898144508686259415662941317965130512844506849964607891477971648813553484816440210286180044312966567524320141026782658702337775281754898681911377803696539230140066965572180468006112799846932482495634202523050575279053261473797989865827726245418863232425477164964788734150989138675979843340276153677578452408559297816869026421831497504798137737014291584321999819289638047850634046132321223092300097491136500576889435198127376802496877545175183570626622112471887244519463210415130460375123920362492870933106177540625624307056032172557631323115751477629103029656658286099654869073552796002537198731127840686915803104637753529821683942980620720049922056265072509983859755358547281890330269196200367035005870526845987349648675302153730441377811366085207894096281737334567554920463850746086915719616539942427332782089405195219543534511817686454956683818224111746157094962483416488607047514961929083885382260571382308964992962580727416190171246306422894275835526915427041516473622295622129693491324300907448115561535206351024323089719773448964009072790421901506736659009151790926615888690156854172530458448745682430112152132936543247458465356072870245993972369547047215930648771278661358106653147299722126834215012045374936987575092907118074881246939200614743386359552644757917660012305470280574843919901123659005497892328655395397334479548673302007612030026271365556043650097442388253923596157334980294415112437979524397089413934877138253896219458556680252490342008953981240235767406588042763461820748224033796816819832825384864413482799887315785854594983061154359321775930894440577970690854469466880218675783165152078292127089844710501013986994152565435444625369213395171009409027174385402828023203779878940939100311663459617156822505517984202146892905167729192986011359822135342804890343845396416890941801488983671732537896737352984962137497483643629727719132796998169435221512018667752767565404787646525939827076674564668584016275441840653524276773250072091049173880405599401053540400086024399984687860036786385542492525931335774232554110818835381526540047268557179167392366528385535197022383455281674949719043186807747272633658005531817293501248367212448174679095105225338636339210424282366403763469484721823916064504699818437471958050150714881691018722638568792407771512812741297065291469481931180814383343418100089353153001916002541842287400642587368775551025918742238913727454297294853359139508679646419747335388200925402643278066088245009802734511826402967259358046443925479438174275809152626211814874051194351356766517114517233063657442555348866531166628107650626448187305013980895376266067019912544497292853908310640202988800410195597261204233089876565891049444576331468373560879121016803759253304225647254950850312693775739735673454921856924095195763721128381532603086446928741575469955274510403691330255601272803266484236300016601292509120536116751175672198926261618393308770583419170102591156393497702759099797217544280810068644700549487722360854689389019677290718256949413323010641771523600697737046360956308095699293306163945450060071507874037446463430041612717119922082789190780021216640735954419176661987469291510573605715787475205675137857235593590135083350278839945766680687877695724755737003807000427632203552167773724548152346510819728379818782071202768013133933390749827990555646083848270616605628080082162478389419396137587206076992130033138313533366398468106171380132975885950912075278114492530240232688200428029146723653819986202025934923794020543065866967818728519895288368702048963569823018315531059644868730333406337772635972487029999372010071173857128918583221801787860173605705884058914625880569530297364063235963723705625926052166484943080890370612183653236161965542005640654280447934518315516173578370314657840771394488059568565019130978276352784754260919246503463873311314051608098247562370132212254261977980556426206844732193435769556778748993990755797472138700558125562269296649231042211917192694017539087955587238577714665309205343597725962859305512831035686838413878581611234401209245714246094179392882188294508813629060570560613501391048252600491503450003080790622935678056469558238887207001262451764076143442407846478629539526460613358460064687325026073413105037913570128796829703316833883410680497549874305672223707798553284442167949349104041636455533901190199833306063368562316442620198154948490531817847112054754970724381496190360200455807283237150147602176956634200263812166978531084216695965676030826911937326309827926128710294043079297570298833779494321742689506056185443793478280911034557332645764266321909228347718262729843113446924863921485771926945632946302349769440876936149663880701519593787649822422938058028996808171391809692803086686956868309101328015567179482155991016030023750474391174426647842085691896766856353806116604811247856582262759408348338760652874696970537573670213462354582520066627285402349693536018857885926218925066542132965392741068254721305170775752516645574709400179711449099922774280702876736548354141729739892639616273622841351025483163395746645418013247257426051910019202514292778648704518175560600898823860744320943561120421144673531523731428591627709811845738225236505109094696478032734779223963510925155384421031730170004505984830456405025125712602963819414241744108301036245263914508530947537838499897824462054719010685687418534554008449030389835564261546474664376319663491432354456493098556338094504187589808344247774362238243481518703947511624233320737152187591677277327531678076185571964571901429775940118694788923890385185608103002059538730510464458672877831260921938843605453241334174008605888521158882887262626513085724935178204603666998747364948800400368785653601996482864872493655299336008030227228236425002024346496734230160729683019874297791547816645732592832030537852004726560470284582296292104285798855240898058544830558398205572179592282987747983000785095370576363626168373850764993833185752774231866401964232377149834315499669015408619607570887624754596648902714519786829736530266736590406631398115616920532952189439911506062859749156936616568349696646326215979705778103720451143172551327287862691204106603606732437090252020551285189427280150409301522971633774572688606484772191510291764950286812849449206497563960117772930506420657535645671748552738029638257442455890534164101107410204532488895483178605909225076119193683366908606154968440054854951425567556410491181240473739601069557513624636211049864379570535123991253542406970338874779820110784101113106701085396271423243987150174246107881540384188982936730409890148306017411260988782999248058880520147595238874690286005700041146309788929359658177371448295277751415750970539643567192808052024416161893816427549561118844870783390328107051229297294167892528491063143895709380107498674352931775755617255920424821277170217590904434615918863638402637731595687870048458240879035181246875842887522156904377954935930858156109537612320253722813387685530004218076489198811227743077741519839094048131759865974175568556304020466833067000886416152861916566295936245307145917387213181522596497502737536784793492701032915583960538294729416674013718823727722428181030446425930373200268226971204136028426982768491216995147245403811929850726693581757374481264685125437939874255634976374360654943409176590248715775090950737434402277573478467520056132906130982627543534691691887818314305686530100985452281639736387554891155429751828692926343900606821647140291121050356494973973557821521336369734702191869495546401004657289382067861550798728492119876902582861880728198361498177928977153346907074395705076919314305916779640965321698189750688243197256353630192152629081671550741321533395508348702850280862463579914675134932099965626739911035715934050519345710182586835289845266041826702842587960632811266197755711538865196429833288116155352903221320415031303086955517754729477726869327080365116270345214114086547262735822000124685177441461079043554666597924632170031794012554976331186189483783042698692391070254496241867205280585436098454469900706360925302988900242272253082475488954593741580563755349650688067004221250717273790931975805270637382521201596385873679920149704354153341754950408472529217052571410455616301329608566558945741563342346073776591537548953125136537665940503622186747828692065107798521131103351855859569979932312845809740325612937413081659114436565596246330582028680596167321107709020344978399127282708880720739845160216279758195661660026530355803987589331796906362187352625194897141791594889658780227947820979530643538849309402066079367974579946264586443039705282832665614642139038621945573170609738823133456056730679543839409695023573019216328593590069459798596462828927132645825858848050083410253302240659508993409029532099387466991726870350666745379717049088048971639248359124978729527212058954729305265656544507148733510363571585314164570967387730159396277726287340780870694820614352483235486022903846082902109076049644506988300399459859129007328044188310131429030337095750391091473919558209573936476812791459600665450088373617552076888482933650722785614637915606299845184939679633104746289054913941667494421857070832771932365048129124696460531312551263622487055250501181277414751031886312259232684010746051778137049407416151312472835969765626462719161123921034085118450177934496641739255323491792684255513931596270289921486817790568614278398619284020779429462372093553482491249231600586301900251904840919047537709964779925188880200572345910857486971661139707263057657539006658040556651162417402511353939031119137111177443748681334101948171482117543104065462877134702386567026299150559101346218328020473173228880808497619270648017669160041616416549439647726588717618958418073396975978059803307373204665953351343374032093564157129429510967362390520803747216883489133423846350176563706560354696022318995943608677298370671440394211425041157374443789324700023244381496491929744275611720548734955837101825507365305641305561915759405885108388951974235265655330814099356152222978882421158115295283256729547162483499319691597540336915336308600253326904799439226696247396612396573219172882715244151596043724651707602263363724282095530748230380895284875188840361720091018354077639057000096355854734394738908951473330173130169377862269312676136346976718450351696715463695900508243380061997260881435622784228025880771428967204376060643206288993886264858503126507761691970139665315687812761327710972258337241875516020355930090921684913700000831577067549441883831133103509200469981735378889861033621456501548221330193602326425834072513827304164101683534355291458535200586206481942796629415507157646925590046811641868626991098465715583436163606654162393760041858230708620217546198700060562988261271682910475346163942647715901517065558634629501414138765963876316873573082027249463546105666439389223194535403610632365575060355961757153631795107018162246011103728816289428895808163922352542066833492602391925675587430895746208150169167293367553196909335012352847144458354399501649117358464014866999921293377050583745816321308513323563833469683871988048345909303641086813757078855441018013278038920995939704228915736754668957392014416009043375972785736753809489007670737536423845157093033108756954036536149891828299700126329448907250342050689062160636639832092536594981064871666737197912483698222803535289018210653448317873509506117821833491575596140837973984361891603920097846624762515638255248536285203359362867551441422616643460729608185784315035239041265264600993096575493439962228560205107356719870707494822838571544617416304613558534362897491300708321767827592476894569038133092770084855485324236397864304528984421990586959237084899511543054042091178048514334773756627672384857576203259428992311902769867240084830205065505042189101525693013945815303832000582861117958212325123738238742404576882419994360332677366217668750937928680462629325634565868029684487786567066715366646456947929787313098084324672511479045516807608655444863183466247908572485649418764301175291947377200763186996823126066796650405166954060575820461162777220058888793041511638373980958820496145328375443013330617450811397949903746733257552000340405249867967747601441952040096587132859308029652898573739386148241923921597452159817984053461787211609695614167447126337182328411536385021940236237355410078452373547527893984679945722863923482931747431265308315803991701740726934460418626169164373515078089024235205256381356400151303542073497800459944662450377193540630697375220677767242515250882658698897382822711534301395726437790139161451507491919511147630772198226223740420238045883183906905604286070847740918027426899013463669586593048682345317206415996760433859773448341065442507750051326452036041956868700091900087064129335906603753573085712170694686932292440729580250922372774680315854737436189667343115203781896436944155617007003078131629086870346770689327170421077588191576728522210147793096806446334515732702674772251903741204841532802752697895261443256137162554679171435941711717181035524020347724972343997164854331979737173003607635488535944097504948996657232702053252834900169695402807990284540247523294591220921466337579151612187668160913111375146965166074798052569440402626768992020647648044191515500064822042826854532928934946670487137239715283207200200812750743877016513159047263846623023090593315573347619023313108787113616372015535305053032601610083292203171159950709020598583317949739077087660321004977354685158628671474927881070786364187776361004440151937278588749031687375610146874896230987704118739451480698026829201657653407221970650682778862323008862598837359364506548478537317766929279370807238262945297198541623774082253315474740010433689945759882723402432648537604396953126530867909567309222430930134547595070410414167483229401112663708836484787933227520703606430930115273292746864446814777031576365307058619459167352222922790409468242769715013502187118547210463929398523840864478751231422585946130380484207550761756476466935710433919886963777428014207738207676490453478564358904053380930954624319815432796757977429422290083941993444787247248431223354768506229309248335979667011279780213669540566749610752336173748980566976570685083853685236644451158159476572794947257567524584845981960253890651557180979995049156697987766524632460228517805509062996890099657420175122902772871302103492476703649327245668316906996671947250437886774391717678324789250882843263779862578727581868330985027920858603634879871960319072910648654106266857380892256939221310215297619335767843596813846412889590605715117310090499365292096236197367244436594678211086094383642282029136097585199285100829014610851558225724085779188900129424414944213516746978744523211967193842970235175543082059313783598154900996190006857921327980954458417338693164374520062272525343314356296188452258468758593556249920952909319017478438027201409310827496676305447302892684603333947216663532732098957138675883317454986105147670329450535149715767773060650110758025161029079742913043177044237206625489912054869600799848243393770859014554439100280931896369106653038344051240790799951814189034827922911290415606162755560182133696675404477274166202367537989365054542299465421226050428430440829658787409982100689737753156796972893831633058015714269198158174277447860435366193597483868534687128179642086722662030691080341706105051440840718767442748350631821663464422776773081566601729995887739181141698829097631693757501058588089052543085970694364085528772848139531043803124298654444648965432097795038583106910749513624388033388367878720440132906885416076336758143884328910644821835885513970245713435505030516450585014027955092541002229007099118414318031230850597695259182232833559103941939906781746427490384794569737808176905242272856331049916117926876778904604334619539341340514727018953043127442503615398043977653154467759169942799864261921086672126777008079692451415216363165415534372512580610618641467276962461787763462314966610309633149610707022029866577826244538015114583768276767005273691609114374079132419456858914253719654788490386975769096596390107474262633223931596735259952964668776515312213378620426471006117336219203981988580686467213915850555892029564123019202464161057382187226618688042812537790509752711947167689805360783722154877755791203565042972665014056600334624984045413755373355545552654242821052450618142374080366682503954691581702366154968584553656854213426342178809588074584619377263313943458778991748785536650759007067927555282901904302594319152781645547342583181446481613834274506216910553286893785323225375430453349240474452755877810119289784818657647192996839087367947859072166164641815457049585008957091099244889454427680129508501428124660673194038836081274329710444312933199164790825432085672341434342692596670425306707703021486473583490622397293087373006647969949435474606096989148682891737939985642457715948650814200468332999662430657858909867728805660541173869643888538750364187150315976720619875612440088983322282730693611309012791970440066998680235781454968827278383913775395237661519374911862551477200462999244138456260322439885062677458308798127994028360344477626979091073926574268605020322892988427232260277151503214230519132858256773489071525500629665102572496547629012666322248512400554921287297466109919275505725336412295208245690132586086586957236886240949536856468788539202532971884333979779205648852417369674622678470307522916483826019340197807483601987504410367738368428487404921799108427272212087269091073796262019239604697241227657504240615365197027540184221333419249583253270753332343638097587673251166732661799758170342461325754983589115629466974046908264855697749971792879101563369614460972289601723629326464286940224345276908880751740744095153492268166567279054150148583471630779086867595028505928277145579937917820588963291382723469182857285147387037974717754360207986331609084041460968565735911838631567216955635648113869530885686704738718279684882805830442706234393260797678111457724792637890706079134405436286859159560752572453682760500492460334704671323080016449449227905752406373195214394400889720558074662714367589542200287546423871531553925202405971053264137145030289088212015218431219481962999759514645374746340096478243768106905425196970328808784781293028266472398823776867973957808188651417004609415724363145994178677965970709766821569551357181865665899114123936298426681832377886714665444780966481715534698539254909682934750141560271660706459604174223308958667071859729646627483814255943747106587924277609205342936542598798498748204988174617273078834862117779666538925325758424276249107960131255606145923043338034156718056306208410959187372912594105679481189639755743215817143937247248139260941999952356432228426191658249067874946857337866730781800537196907005741134422957474740885339962746988257384147572320176160617006631011576296727169502689653771806278899272589945911966829938496055948076102509615959849089317481425360757225983492986317000523654049817393373562787234983433031902218545454693280349165761771627744475028699115736002098211560859393599597842622020562484475758619160659707459334980172478018443035588725870663044507328610960152114780107231017214841300845410134543319236453901253057535366506920274430623654584114629890799378001846593430185516555872558484347165299668114513814823172063864386734151745522368589132412464882759892462508570499019461920491002518260704201288763225390625463714605545460586519920167693745280379520661992551360610020662232646958808193292531155897171393063082138978119132379517599208959900339989646969284415350479148853845274342856391909532977920043054156205358941005533666566338725180999859628841602522389365218017929159803290667510980690213422133151546151141065235926570581075458676775021058537495636652813478248982417466445283382648260214295617924217363517245950604476326401183831239776777634345106616675837996127986233455482992656667101547619724367960801054207300775674978918574374458645042708724522309649927014937523967489084553791970149207092771939110060650118255253074910019736209737280054481959229257759741173244042511719117897304071170430729994962150644488524808370350040347283791074148359292441301855103254268476303086798457317646197659058026894169278937395658577216462631207666199426643442875999852105502074270442046114538742555901394081878405635779293532872705784882872046965526396738851018751632472280919101792407289268882820421469606447155700337789694292740919738803063764215174643504871232998847299025468018771886393131583523007006279848174186297548395952374503474990046683574120559357341777513230170469567547841439834014359790818697829559859900222757527471499065328106715291316734379289039241787344415109903965552877752410726691459293543849048674146414492683785815656574409949365564175381258120999911730731083306065491875288943823275790265273717269545251097241004108590459871018624540413182334490409866438293018534916401905434301638852651428123714718128026331287965395933009367346249530277453130523167927895073622060923830240936735339383477483896204655811311469713188760772378214071476142846052172889422285930311098129788030654064845703182620215553757489831896097266875884052176622731383456640636576753678900663761584766652565397917282472764494794773142090256556632386218946460042294254909684786214776130344453764814896305379466472554192599011344390586530695518054423025865201670129230180510623914932033652691481344343499088525544462344689067565014827535415542452792985530682177177785279474842865301928500187615984570795024810175293539325976363288527301134301902035099378010762184866300570511146351559748535614392155785994525913873953279668113015825297522324843165412543997868723912247794831695384873760610292276264384337361645637190323924677539355739500902399562564691801725690600973954527114682499611064344919405078972684036489889485198780588705103658977443776760443062561342732497537355855067413893645115026708327743191523961803015831020756236896122596763407518612185944527598140135395934050441874530935115098138490717073495657872861545869608742538157340217912959330377145960601716712126517092949641874737242433696778516865450788034545011980935427882359604560721600398116482686271923564062131192248104630318713170331920892546037556534878016364471180824672989358475164095799088792543270320421280047796395454341953497713745173921250790421347170946980749856389402885589819074673789894073112961189227830533454441987754777629976688490148357637816414967521516760056468770349988613053504848625790956100477025406617058722464619645387299584590901079704672232116740892311199876127502576947075499664825063294731840606894935728206581944891154746884895054378567718087212316206639679212585290588827768522638653950744845046898604233554873983818174768263563516534452809072666368414137604062760347470440544026041013053759928384946410565272168538814160735281288685577131380200201258347941310098625200805550885693615502541910942875959724384387301302130402073952973981505407547980271105172225429960453415571064059642161331272267552600417216368566056754370410476565800285394151616951613590054146962030614271623430608100921093912883547082847114746342269389619324987725816922430406936458223444710385302088932511225898234556747123153736202578420138400079366247268492605894654305050718558501889816037260971665791782861219323362632548998729888666997468768241611647490268707051630656546274551553612944597146596627021507535167413776985447476282085408043940955849484859740366833414904878847098563343246916281634181461453054767498124282082380299824627488411747167633160564423315642236703478832997294293485889210083162169159945665382441224211134142042340748186928555536575025863677139871345367623350120639605534174248530542313442047930111397772113611980345734558806279431952463581663330641369507569533972252340860239164058295841803528612405342547690375652661010624866790924792390176764067867545464705834664931176942866655267318153322556616386478992815297212179326874806218930667778384404030731718855205863737418677189876353945240779578266622620640534688710129586456570524936330627792951462147896613008058686733488961347445397632603451049533760366547238052523525345099613136600050832747792730168876447200831594017725920880319867996231195567595799075831790294769991522347852526341911500581923729267887562554959794905728604812884924424190408453832732619769095175318868509489915565521483116100393422292016443678936953090430381803664179112563299049387359508611973833402989875410183396775276556349497014093833581047656045624040812433022957711979030181847520448449464119120545330078111584714880271249322259717445670025278032500008768019094316319828249604797349262281600052321080378488682318178331293419380803557404495242624959112763940370735443811137114044846477015533706657391979797275476894408941260159654494131952862890227370988552779775102961350292100882309234381582747574506721768314118263424356638416667270570681275998017027148452404238456089365523645385233152564435436541339354678198845615336935174278080901001229188148601593791545853471197319321620224381567246617822159172091916495967821663585733796007457973953354920755192650682241195493055101606158699554655358373849788089065339348460145876394447332253199663895036622731636482296339664627300797749578429193822878133137673599343690539331681067114373202687372081334887950205848136747672343499682841275995454797450681033328678221403127681656525190076952149659024926476613283294583675330687338406135427985072297836392964147230313987637056983039011854835890651224241984561782767907650834030215830632726082096488640296178711778138883026289205435169999296222592448317290823288669802936146120484965737035583681708109668459680877211677737370580030780501300763352467911230980262124122902160946317480238663981972856955884789383196999483725696623835445979844509684392393682180536379078419099697030601696751498678633120985823535122866623067629908098831655875660101902338603219174091764381983357243736956505456421000352277389264112140347338990759265672037515211861563464909506689737791218165336768166017673368014668568562926782959487073914118033417746660940242543938843539005952375742258439840396436393088585312465822462500408614657915263583131560197739920583102092338181952027285783252468005563126013315060172076879519729081391670816052409667573154480631087975156919102637394635919493049529866335371843570070333815500413258908412457192937718662309685437420815099084770428846607860837856869505269925973877083442257618119551244673421481068725534197648915916843851891580258310725033623257780610923886089519020350938707703057785858238533736337628531587282903286450174457193345821480189521727894404139815868756443007641707281056521374532252933456855033884901278712458271579333840726695406316015925834274000464224688319808164635836364407777703959377526114813466097768522635493844122126442446531265357634314470956389161548493615780874149296982092123763544455782369247216585091045659548123647103372050891544187669477671538914282973327797463133410366534494373480890729043951829322229949004020722199955767284186437160358017778238102465652608572992237113443988127661869992408326380343467377878787451787079767522689752403013782138883375882642694895237847575353925968764048631337637790423210352207020747300659740391638151113097624577556210372106723315762219782323196556444575806869276954011217362896522469808957480906985332667218006669510164147956613373871269361584128573181509992779827832914151763175962594611956943651819944803076587696488617546974930187312424891183726259911964615551217478211053289979971446236606830429359548783465098134762155879331598228668743181878096964680737347207640089044266182137414983963625558969284959361622675360447109972346679189455254798925297628750568701107569823010776947617102467377685130852106872789738244609001991194232595012655621959115345297732362026533370037161175801624217232500736957371930822095974328841394917885471406899097085708183616664401840088028785298655980246057397820149310948101645357099765888038617384745320788379561012508869107287268478307114422467020677748994643174084908445922471905693791347846304117144673249084690600308173928653074229838723911148697039280065929505904995006071288295767175764363380319085187966241640255231658064315775342567041274792382161046961259099848274826210953596886097762540271208975044937552620655282764083017203574167707750482793619378641438648003191138678077707177726705067419581096326922741754297895735033154276693719569193856403398524416266005770763614223460977181023905110142394149558445132292656302758746960119461093146345896602302576104013176288108739902211082593975241998197986382794182105186745063564140147552758193820397628597609812497641232170394532769381531915824473418444386327390908193646258489404154967136464989279614789448830552061823460207354984805820383541037007332110990315246218174778290429774358615549777418498761332521562177561856053413679110081783550401721608640737884224853247882197181470139852230327927414233214878119976459545597811160670385843405550917383061658559670453419439840193226219384306862611501753395433960169580331123747814993439452751278667655975084990413953013136913807365915106228344877272624845316035317342817089266812307858336965956338124764813097514202627019649592508119771687712713665844887059683338228703037994209510035803972271885089262306378481354890030615237243879597554497955453113058664549264883155779743072593032066672236294998877439128903054134046926450779620512417042440157911117781179543494557376461547833289820003678412498587374349723867505992339713333757045680757038659854335753216340935801849939604499741063896597562730253415155980312985091668161126049462135811859563538676633455727195451095754271106762130814702091911735142029688179250536656885101881567899169486323249909071019214069431376407061268902192068961794218944731525400255829763028694747261252602789224974380675343056898611513211524533128499189717413051472774348885681759529210241545929717363306469949996928397487222232995260451931087726045510356275402905270343614573575803632665316610001866535989846690411396020580031641569702105393471418167476689696613572868339032921044594428004519009085974635404938618669129738771848249370931846687902818203237904879669742234118771806164221848856377039389445632036830554088134021336972751218882395956359137409588430748524905565900937836795980166038787753837170190695947226244288445623483356856350574000814272780351070972503853447179530674059062728391901989283734350979799270275281067907706702239528880615608182511580090854349552976406006934819022994433111886894729679912640337253923957126454066449740663128780841218929007570763706639962020507118965979548588151993635439587391142718819568344761207295567927265393403298097448750822826955761400965959203397265804745592815109357930132356411348896932345211269417927315042329264658349687397704447858217161660911407234259117482987103519128911561752384292595653960034916853998134412275698299830077947874507184580620992672413503554256415716837193648743122411439051597869473888086171267632532548193316573799204881182239896673448498893562444218104224264399861111719010741450465753914363344749012096649116306827990420774035480552625439315424306026369710488168791163028413644309863868129747188024199017185196435063870812484619289790271331281283837279714541363307509922009133628986554416043542569518099889317260980105371827862398729019933571741253391932622480885525517896121547129154807276296008807391965732564077225633801851337347252757854780939763400999602026119027965895295831575102321708721605671300283629125304397843693759925958150722479214788280675977197867773588188157060174241584160194111114394170540158002505028410539958372845593950597432115404388850730218719991384635082079253012853689447796602198856080720211738025834526028009441033469355296104144381849742716290556822617734966495197732061494527038225280925898058043634285616851624425511458528897517646453482425033866477938741140012866542804447448856333092615825473257537677513473049477529924813192712972377658494574897072553525864094901442875617691551310651968219872975909125671037325557420134951706164885048459722170167396977994549943014228677980474432430202398543898761994604228000131740629342130658585602636872291309789673820870897676677131706316093869913770153864651247069687810428427060065585316179938063225112619646019424604209811818145088205998043262529792654751789059714288286559370833174254517240412615364518948884591340314558108177153093128873284165296355688268429697225577227985716811034744946480386156359409446712776186019353135571329931472069564127143394253585338349047988672283470622354787427704005258024751098344423774672030323370845737832884594099020582942942592738013424933531151806293677963331191749814354459592479613774779935668344911343782177126958278274664860617614346705888195186357749755034519819117615815849444653854300101012601527895308581137103266109842465962804693237880133229269789610493084417531541209377266966156216688313680661125708524003776781041085485814666289270099062382235563337605683479727027621201124510090524116417679278287604676549780028681920280437312962577845122355657366218951517801123168453512944102923086105879053705342844410737968674426455313978828539532984076382800795455580220344275238566322739759689317055264383310449387016541133046926372203070944657473260898282783435706078252293347287089472162794671971452443069887924254596752944978076909113861706354853455124904973950993505816458926102893910554525731556279037860994318180063221470622099283721008757487114333693204119579952535881175889665923030660935266156402790697210899017958199634687641158942463900133017903089412688167340239267224892276948098611649448632622249671878571906327223382646876513618915547677950924976728072394088965463061238893761795195464060980018954953955461700089574185600773263724686252027025351341064317493378037040088825097878365517854088395460487891641249200504857374430776097117759417889904329144045081184133953063749650487686901940121531831519483585271967391559902862485329823763852207082517810876175038649809899553556101030889244763104526120292248747680531266446750828321909723482001684364262262268066465071527109148656291377402321743979840017373170302450728304962902889759657715869514827189081910174849115290212078585191115226442944069066425253471621438723564221499231261023846684261657287463806981452717262708548218929129806388850745500975042533924798383125789885826328083585291958532461456134897352475631963914651035383691264021721295991191185582208705229043036183438966147326025277600983269334565888031692416043228578168009069225319314989586706971896723092438148314656723308457807060703720257483174061979502748224620738309899876057787640118519041485303591078556451336706797212033019855878112678663036847639349603207001482079158274282063291547342446736877589575450709934667364033291923516306564336612036099659575215482801594418715182488252595561206734069742166642502962993278744666075869980873810044044760418313155060182913316642882036248817144466846461759421839460738874471697354616221248941529926938278931102471465348901479332126056108765784488164847028726104692158726713514075222667455046872130789578019929156702858346798711165938222210566327333765185518293543188105480638679224768115717800514824558087389838453072273623180305272662825989942897358172926975276565537174855678067078793121023333419973717880167840938284195889114703146720218444928238562255811409317154282600627613455276101393620699986932391448473667551644366254670571925956852046947229291074751825820507902452013297281325635389496439101909023312468888082096602655674525530976198983847993829927714180735686926382194235934326477262995253743072396431798341791670437697260950032113068225988373787626061673973842649812028064583270344620322375589057677704247438739709020714612271579373356536662111232176092812008486154088066943439955819799565348590195220061844591474171112854260405854434358828855227004098532016549213606188599756791990601827480324623548148883842558820267037155306231851476726137420612425424764811477136859984816385615484688266535755073950676578941179820395388378129827534297223560390887190079066037441117386850656293189677263170275208385009459924173204856951435523731103413332734620029744774608143851380743158573649464433860089356222656157109861419539883630780427265091183199803318802635250278500225383443954106852210936898317511402002049484153993209380816617449662017120253612742835865625138131857912081529934191747815296841460415014142087303631107009405006526514440909267472036223105711213396440257781411965517151458915733319225449884054142624092629978439410207251448804633530230665213423797153046537264550432991902674316829433982019283441379067451962289743152260897736103186228885104515680810466719390730094299029141480463698407914413561959548308928469408420771861813149180210107850925374080386108185336317267864217861800416976000223442521196305432079909868774667315109224169574267400104374845646254658189282954945039481017243083853339883445386578665032429328851725679248688884616473422879472747490914774702828081249850426034472879017635576394787939787196132521717862086616973386813386107958846758175682369813554821395682961563538623410410065451217534033399854607030303089444866900233159891578916786657272903184478721217611613277127005880719729614468496848052990004603731049154870406060858967378878949852203512674585372942792337199385366752155072399346744449165435788265472432153159933049392005140638878335772728996850984714771885170778259874714052951305892914458871570162416906000147217173376928437928863664052453220765605141635605410749649283918301906170185914343945618401219064251843842208256912338040489023414833046402266843327987412829073363624630361671737755836717467646091837883794490447086057080950428675947814162957077063542697707060320959822420362263725600570750752752813013678193335641061800654494874152873108333844469430626117146758179371673848101696179382759536062413021197404651105538503554462380442685573850325757268177105806593305586898773082882371574694178746248373066850529958367647677182346441995982585756024926791085072534110095385017322242354714004102752916107341237643244778706646161919425089083484156250646423765385854830489909144632042076217535830723159780380986543955510135750997494256009964272770847408561769707349833456324381851200720470601781226928896022430808312579163662503736327007909499072767631820650159877040056191462108347802382600478911120069573191963786970709780264171098965643350855340054192526393147367524547159480944941782094359622442314503258516692782707904670433441789002463263725108847876356942654272742618900740149755733532887313711305418467263812486006881066020334016286465024247099765677877681507687777368285422980780442556114519307864221058494369534037296273397529335812024781318597092686678838384259830311886147071368175925978381538404996658922006667717340026444564179362180030146118524838962599874641964497156774158381425474575823663894068878908094405555933624489458007299982208967232056667526502954803642079061699891179359520293340373706639863951766903342938921784195751969360076268761634698320681425343422598384973864344641988892250004083104507074538853503876178406731219069163281318729710428978858060342795889715225760974622300867817379581560467447358147193824530539986214918690208989633385211488576946483562520872283886693617041248582149015305885552193008110354580867366398705035439732897916522771511535398581013095233153903781563592531648784617826019914730143892115487956618181179260596119331347688439607411833828880537498818631653946986214926435033488511343624746006418314820996906431835990689004905269765363302249911051227683927836708914908396782575643104387728700520334838013884930763163712639684702248845922365042163216646406149532891270678126944344127387454806458144568438211623227905114963731235737235772710644714668321713251075521808523958799860288568420392377182315864009463643557786708175177665884862817188145806663349453073410974016674330171014925472271743960456636552858788599747961872920259028729728455848570588240217809160037037606461412298130575432389921561750911064995946518900018379305325962778566754069981001551553770864279248076854744650631993549914155172549352011143815115042270552838829170317806349326764549878788808243896246614855632399401924704433552294261047822269427092131318721108759290334984452499569963781612073405554916724707001253040109995444308651845674430423011148218061407234554540916497474722022552958871905967226275616561509029847299729099465845675391597048896552157771356446437150579630427649841114472317720820895006143643550838224734031741838795331893666922321927176617686739530702765082564794497659516029967983942347752614381176394525377824476098043271971710456723137993507589913812807317450547599479985355859532438113335949457350406088652978654959469003040969420966060758422370870563761386878650143232439297744621867764060768578845163386070327679712707256898998893245812561873293183803707773573689963681392410943426776492236785476574068498946708402674802743035653662295394797022597074019443558308162867948738619824805912747441779112497366299692450914694515688992730156464712214682970146644084323776517665117507037200035929079052336737349258681718001136653822686663895967156418991929931403651890636879753036798621255845858646863841317234023701886661635779299204979394636639743408254375392233284037347218569698096105706608119704628895553532770895821568830834084801992340878697842059712493006210510168249533481628948920205220610308250740516645367655171202462803447492516297588211135329010081647190791168273426649608353959020102190672469583331702998148050151153435910866653812321727991066512893043950566654157510441174670463860311858769318784440946199037643024698525330442306198279007915493768375419717951198756507944306273515631962365985835930039981952811352516998466636827674330762834025411960338377467376798716737502627166483715568440506151094040809722607981184313266582301304242716992625389199472988585681627729149104544746864194095458140830552157416499875790968673805352692319257984973559265299316731218791510025073355947610081206420244354894519736019447096523302100405418838959738572243724593343619647985989344735177462721148058017929876216274955967470645590663927220182708113105533669353359671897454182551856844464456267148139682147545835397947297404248854885343038372927521355126477635241160289855194940269330397603201359734664015476747063848815399401293876193950673933300235488510885265701020842881211588831301087952669435513903266839803448735027731341104531777625755727251804067980487390190508051084176744458939523893678187056754586451220013935996372535927521648887853340262982869222342735919315208277388354643256991070088022814366078488195660068109629615503387186259853181131229929382237007914391325487518513144868906342236476799590893991956310423526884967835159647562649908091992970421310505966312608769667365590011274671535859748695462430432987136106374717035897977829712776188707371780322367030882756699506450196193300745700233455141250410104983689323204841777209245914707520666874263259291131598836651425157487143194706513390864523641193865378670781801083569194524913940855278609210287339632683917824810763186746628138080667868282159932705365783596579496293438472119598635514243696163187083031512879795454071998497971351114459828460280185563380129110720539678374318910461247084654724990294335230363254395658927814100117150874063062837279781356026972635025199513434701007637230296539719559669211817854709236491357513405949958561441770976682705990482447193520786496555885086264401754211414531591843461340975532569296032844761406285235788560731786296122339834135291636881701941896613140975058977816162815154537639526414580703519484249342961921065826246095828825539839441491480184632742622884411996988972415083577715715351930126366786675988569152943821274835093151968300307382644090966368760468809413818490307693276206564200376759157013551720368986418370528802522351539543547952488771469142298622520455329356370134643999625138187332888991281695954966657212589884664943432770759620961283695828334718580868439873254264156746906570182350182474683265357181572062127967808678573582758906532850624987099309449897213766904289974471963184522016195335400800729710683725688276511225483473926800623751453044173906323231942864901306676417705702301954133097437641593184201541731377706590114704779527054235310891203567250184218856826987424270844005447237056930879894873069197231950488895408452796967975672571476355140290534267564025764475207900195551237875212265836401736222895038125706116845176220073887249763278181332605760151414654289198024940668872886120063827468762408230352084594278348915247706657015665609836325931610246100809961418520197687915772956188753094454881862245789615602344556251977534737314969099638806781428408079137446028849288748310911535538580328307732456369247523309372957888321995124680823957117782701187134432271863300328684636360202183528508687958360793946408144534274735428787142057882229171761373390821670767215023205142063860506548268015329322100230660884253541680163410272157839476998890450234754857081153744694398531696369040471304803827874127321935788773269583766739590430496022675221379017207005020077761325383908137376051096708200016296923464067816065217217337817497364365309693188431926432683113583897912834079520885492996411456166750256967476078847612244931326727785754993517086353715437070564500911402884483216592687826818608064200009908569611306612045007003213229922630519783341266116250369005802367245985895034222188716021529387745915439793868302767170624288420779583023028219048965912039266525945691189253853658709702368946948455129102957200425765798729931439318097535427515555571350945164883500943027161108879557105892417072657163378563998519886809036597010279088134155007165143631142430429047843281560972116194659059981147922416822544900060854073015284703329578233133919683970866799080724423737303006003116141451179094553083339994243790583936835535033328371993776744992416050046725111313671853837274795990092236425696490059949637861700962496755368132031794200750155888357287269593906529292531546527016018025988908761889521666447394829128761915614507938705532972511980532475782487454175281496313778421351848186378562467388385261939238295316252552794233307273761580021020733446792656329683023440638289394800974002959501669617660622128339974855534886686376429748036086035290124797957896276444543463982685644502531847979340822766404738790941426553116194079706351164889757516108889795417493573086005622809849017723864889030709451204056865196730831967886654967260697378939818528002997567581533000372422480846550025105944840839631182527164734113120081584011067393589095777053570726117478752516108306580064479097431525735023760025075824393929353671521922195399673752965555562201002850008664683497032226370454431791978484872603403105899405031425377669762231057552420989842701957627839014511229093797089857176533525775492481006448744157944687437246640492540461269628556811083230442428929550937020384349995841680428088763048864700300065239668900802029043994209173356398774823870449782271544087267916439820034158445728313308883654738681280568484897210607429903125120633102286578001474771749366029437793339301734120281770130149872700114786669770348966213083703586227282442191856402858667686585075761510606584477932059807548654964676562201191147242652616381414042190252806180545248514365004722439467853206683097388382790541960274215192800755635602643761345389862578698466202987224542116095897788188234540757980663964029950389754937355684883022776013271434281443005146222938611317750118527189122762187636046072098136065601425193501057737358562909270960272328902695691440156410780136578062412463964645162462945595310601820172654719026484381548853661231932195088714160586942578155004451469468384989852208772498315302164901514802805782790978637943619335757990658376144828692602100041233840312157124843748401962208311369511444563374807435264380021476872478755400724609688578068487982960199943445775416116290326794691399891245874754158149439727440907482530238195172154748525644679832249702810612887315787826319601114993701094752469289404987452035521592606292736290906220833607142520160072166804270110391554639646051799109400223928877394713919723695723861005827912788125826804224151112307165624084534044481407256752316102297254139957685208807855859102051387628748808243788265863023713148573004150128844505938580171024089482254442494858059132609910815564167031908663730282801851497890859617089675570526110758989068986535596651988774861895792810303248252050982763159926061802135632192083127460423407949764410116914643715638045470760504554468230665256477096177216423661867796840270689270550948702488081547245006188695409720034081341534778294868490821120081389705991683009060264782647041816707955249678023365537211711223065643423178109042787773228677968996485074435045686674873644754688703617720987837878353175901838468035730499076886103016707613798236491592743482096267762590978131192584935227039931114918118757086318185570833793465911583868778598845071386016595644895978249907945780478194741710735046825803848162151377310491547208486006008911672061824549181389386274531405291940783596330674129601544454007161793127052309871288678335230112262278291378870509275219306678735401171869055439943281314795181207169805159429488641541239621135824966003078744988643942939537153270464759036538535573813966869128641078219929215317454848299212658427773059560811127497856408945929196269996902544184674753125703892502588007602943398974567515158726715684658564580898209437527338330257492051126374488460244020874178109663517665093467650305843758137090066349921591652214525056503115675841284645089677166094993607023185162408066111957978663699074616534501800130095987656481295319128514688986580709556644525479880900720600966658676206518370430568497012509927579962512628475459826272080390524087508846887242361452978265066290414900046038312249287464367020676222742624849378677818063193241117809910332886746867866996236551255670509633355194217995245840958430826105963152061699694710662593587893657925332893633507637148405383912517600290731021074099597709607408347397681740107414522564102084067845688278761083876464769249805914599794744028711108283168709660289413114420846632649511054734772717624902528751163036661975198036297688351468950178086746281813749264345417163478773614706745976578580601978284192610111394676049863541354422821459333607103301364280476700707080211925547394847254254820675960939791103362189909300550792991452315117136136067835006389344865574438599266602013696569681394197502950659334775857386799777548952713912002296449676989642387140380382770531242776947091134412294128603809853070874290773586659017131826285379220661277118118447654459493668302822714516613479049756153498160390144695525927077376169050288265041304025708433833308448656500667479001872142410902905922875584787625130843077077389869478169676090116860003823746448755000351054645974890388745339116087566285900314842058306618431963628277540267036848654961860200093539645249339253575860636482274228230615553716707101424678541890230473108268117608663489097923090120719495985811925703263315591427165621458334007855941134290676408775752537970646856857158014408396505813352160736299379665826031486309100735701283624739998997695943117304878444405801206793677902569004713974421498450292527858538430237183922281341466857540014935316524092507760220057495986369601265000221639632226556466858687412241261683189351471814411468119906735541515615663220561306518105551669830534078038994870516549597344490029810441326844422505691415100769789771398549803845573288392488324790727044427003738670957071898426864483194008126561014294626253920525929028071940134957471672229292180971035420856306561498613325203213519172472466375866980934511652665012402626119069595205116249052709646292531435682486655910490800334547145143466797912484715724065898439813321950991867718243438327421317657473802544450186366232397227805610243419989627710178954396771553294824397646924147828577022857614503882178818408730661990964370949643270476872398243169230787181847944748731812073962076012424800996564114735582599583132013570979412437547821180931295483142686047849888734215606371170148518182766609970976360766795497851556945283855805949468151862350668834777285405790543900395491462153357608566326982576382926767327898936906113141817469994937737376453671881962841370432935177409502903255475895982748489160748910522466731288367012502002940967283440854729511900434844127123736888178602755273246893819757058344224535374768760997317683992157024756105426949233801176409740845461299831569967069291249940880720967908665881736759504395005444845599776057389256219855691020461812557260727588608216906298345968811609529172078339120657869237134962836375118012019503630227186151617841809390378692340472006140386344021130329659180001408056067695525193367384894693713184083119742667460464947917446521626480760064078594822781250277134578403331834840082573252905196057376877812459999131663571519338937954742516436389004509203180960073411454707838031853074302069653893696736923431936421473855681768407860481471002375419241185458195658979388689328482174928527851285036164666733683665176789879188973487892820803341215975942822015724154851780277472100689215828188314699502872582986193864070037818705171208586154250867514172396938231549505372208360838939479091649394446301150970038800238075745734294115483928750809091815685621206207735422041713122963834710235250321343730359369254492201610967007392556909151243933598434738550875967916864303043650501711786242106135019351318934134298875996627000784226248771552413466488741635454556789435149775670015316064698292007078988716337570149111615211544862756479752410826438069788775964090533676248547901199815199569160469900534200564963290117822795541235441941167974231606702832225699851509602630333694427388960220591563824349121038629148910556272339270003480063979928243248663235090049628479124015617044609550723486135469089667411955633372327009150905654507201318097637250229785321802006846582895117025865600529012209918414395120377479594710287054064218115471183615408447594166257109496004764683072820508830945923647640797213059003777742170746341197321932789770418686762461033609926828947042895500178349870215645479239123440095121373736232654105146935297294056278544114606548541621184775835981759911506718906999326706475888168036156197412906926955416701394506846355864487936824136412385014970518822658041751772140705756223342662150444941690180078901253145407388597130262118951821297744339030980117849109727681857827216859082727043925600037528571601387983303879459467119125915763020008966288593653505575540851359132304849273802770078843692112808375510904334790192422770385251092680836914076232252069610526905633178617587558153192603723829171171449946595747597803909680555377765232964065629596208941447606095117213916788849797528041016607240748562766290925332407032826692135758927872062780317577284389208877258115235573419680165820201484428886555359283206775715775506852870211675009912147671343466881310557676836188066754382809747892476801606190479328726710076278247122219910717055810993411896867882125745958313890981516220233614793264703046275330362471390649231040110149213221864793626705336836699744473684803833600157018623161020956539538399290239281701507389652631521092109495150452775995283809835010457031499665830511225221390266341875364854030692362246842369915751424569692867713251335858604078604140099037549587244550648526932630021636065156906349076402494597634718373035630952963354689369069628866257846048269728227832283283290205309881024143463710578164500978198304802352197970484046964641460071523536494943939602851769812739300735323658598068590865677911247652456223696283339670895583454361414867335007669392634411371961491735511574229571529158123118697716862856070284741859686272854592991954356251772794256247479759623662798599276553215672604669265443756587718804233205994919726263625349484215176677792262596737932334062399371111537163256762753962333127133761188399593025016033594856269675807507353488794610054589021800800023330271793166621511687086220992659882754195270676714871769615785413734487241523779044490373777902138996514418369206145141612927861721770681112995688106728897416376747907440274374504022032475770488206170192605551749098178058414800118704999354149379973564473569731669966965865148463485465610402024753632789441101303909679020319654272565878001993476530473179905137384761367774273267209748295665723338304512488297812979150578986588662501734816330466679699300987889625015825015328207909346603333616438121566005525369540284435660118908830776702028417630843691232807140398606532725008811936981799600742505759698859692410071645877093794123512910195580386295019007316831973766601974026776169553900082984211994376264808259836417923913897753715105977534021782629807990690587540807770662599138413498186807370463448800641347589768066272819535400767929384926677809348798410429299836020086043344676586995301756034547234490888874807493068676351899324374812064407666779652140823401102787811828115561704773996276896226068041455217626630972094880730547290902468270280291150476275333606784520584973700337542167800432216125098972439017830389780435765271064588665900049404786712313273090117755135880822021822064526673585048560071099171638916309014988834258183530049879678947757522416376021988888912816158830447843927412887435296124060292180015990222069123564825897565940218092516097687386395934280899840434176113356931525302137929574336530206914636682509030963273994485800142870615461054919450471546605296028424069955005837072335330918665434737581795673737021543868170259864906629659057606209359656387231116925145696095165242380403506359454785204578511123490175944500719601084406480430561866908612851165454888689214366974571477779885079965396621815526634617692159160112607089144880838755697425306931106999698482969204057846844725292781038768718825298407072560839341377566327003247236300320987688901650057914299913395296699300446756738178500390336390832811509694308392180033764160190345213291108085357728173022646057386608561016106298031838052441472286516450856277638038368768159132004118749719319117056518929374660372249130613136052538715514830094506205916565884089916698986275513477718055020553448741812075171535090927533851783096289871819172567411761123019477220592975710232997738333926930967770857237721115883684935703309314801751695814369355675789146521135006322701396032406300879241308309300991899336428345181850440006760677062194485220432025167291841334749677022203770236980804691750883018170115916255301299740931500935620345655831040787515617181048856912909850373995922570327452631191680073944871029898829855878504679786332340093315579809875866975251389397902308481069444182492100432990839193128882685524427713624769035851689154546906620592215944643574060347816228325024100208652613422099737247531549152812376578923080164770977962875311431370980062053147172955352496092879106885275285954761133473584165835613117319246397723491404233387797059461726507749913138707153232437715872746873099068524543434951429862400174581568609501266834847466387435791455723784245080047908453217629913484588661371228245768289274445323345014213556523416194157016275922386199233808743816345491613730762543157010375126694411325656562862716776760872940583127982593773170815834441277787779224928234798396527680941410943077478966218226590419016256692089450104923191519413136205438102312207942478850403686171983267091783774317675804332195685671229184629330838022414792694742710672313192965261823724242289163117983211091883034080366062744552236385241553990716140205437469763454306222708979595918291415941991501947389674237848382617696920264997043186672756420956617560431179338203326372209701998036230604341130704241163968402133058844444398156325094535677206396538441923685703593735484406746034080652104207592810304431843085978390582304354731686021674239118987625464725842324691533696131129537061356016700357794108788208760747415105138133605489551946746660325923702306647531243862854826919078178089985349787101954956081092968018178294749971665770806011059553783819195213763749306493254258004816926292746065260591743174342354111118004643849663167386778627421776064874910983938841757907532768616598172524585569004057227416671024321821325206686620399322425510100755857457610241650902152475488776035892630374523896892813890476962037235266923610354075683323465391285221346433330042791805544186198919244781601244368940574916703143851191230761511682215613939584457871616028019852425267042041482479780702595058686091424537036827234304074662978472447016101941378706568414531616559213285930252309743082342256161082875909878195525008001364608450837495591814379416765565324745660868289563597468272481294622725976371849551108531086626559814602937737437754827887115948555785308294618678814425017418002512721546842655784996050893555959258831879267699368713958459487410749598697419003607282096562824551956927960548231450293509977673608153787445069205638470894430505792421384828957148650388133548918738711579319171539812236807921830163628502269810380583367577263868284110484026289872674088427453597746464883074507229217303203392259210657434851975032877839800473956497624159186689652753133544825899920809307750406861824897203434075554347973236757050686215110834652633868146466510195201502745572090697872107994494289014535983339653744710777359347964933867819327874628564177774925441931956374777028397481888496400628779809965301621130869420463074316419058560382350039067997977537533118920028885422019585782510606272257550254304534230934270208217046324443909863607899972467593252939006646840702218276488578066045270812461257966644227358965970018556768277175483079290963572785782296345602303715654075764551480377696778985503393853375983987399145636844086281895644135598781606521020029695565281778712348495662368815182961105803195796106927431628285236440039252105712868567775353033671515564284425541467766790139356706106126315882499335268148192043153113686636732703080855905500360968321551567196907008799718092531845821823040972068207953251475344774921476183522965969875385625829293277082539405999055498328726921450841946876735158606422424093943670775531990401202577193441253602643525825352940881837696656656240170738813141057408208518341044339790508001530047309764744122760023825066396313287596033437125288872260545631559678341634218724594067869957576325765650914029220900792941888530195125322678909932603422161483207142106380453933546397857494386912885202188537099921955734354244589577800505312098077547105730157385457923177040973395387780763232061699391720881968718383772877795568026165910528672862012429605164110592728446108822217852215505070774870066628244862447383532618466825143536384803252829626581354033962199555834845332670830270096425742376667681700189353382886196225278062352907423835752264079441240687451764480762494424463143436737213942544311263051579910862674668011753147092155384882335342516837150008457630099607601243099873286380088400762132331424604113148008010547345181513740041885203774085549717627720337071108234223338799916989232696725872876027235401236090877948490751395605854639980664787952535858848527230272894058276058083338765630318643770015748708217043301056993606030185875178350038756924742399004182628871910601070703601910006181745187307318687542651279366387973046195987441621983253905560940978314224500615784889580486863701448316322911855562040402376382708253438725647429536497354604600605802844314960315951454327622403096965939263067285798520374970057249421705262720571379183869477684699247284002706687529384110227778976969466796726181518899166323458158856395888292728863082739450248014929154399235876425077569929538758380406617469027301191087297740680653595701902053422587236527865521351494885098655468497570975265889607062132417020935772205415135756077852679912781049459871835780139924936215172184034558873118821822240848549511026345552600881173054867871076303712551591527516362694792975634216083577560646230689434643956901845313270381823554948447478301044136375207067189572052976338164839083985659211691736789340973180196054273487671124663377786232809963622247640925259111434674215920834001257852887397830499602254497724912673454993205048802982981805912156342618161459335361746187783436222952617289098940181857510613761269552401408264876913526176279774606092682792964903741700190091431514525441310320898932361796603645020091614477015616465308157521418202559253308336916521185503322957883956054748616166078443464447644226416912144610032286420732780615764301788369642510750854731280049195501116217663823971666179600698022126612540534533481630317053670842360904577674194302095698053876471959060619417068577595310618757332759137329692742288166396143062592859607440125303357643263650836056374083494501353103858890276352410018077712547048326765050988702114376546599625983092768732884694945671359722795709446139455608137141101755838795937097358808177438953861170383953613211271027176318136395941554550213746483841463786539830634916648206900073305829548966699853491242310042413265013098147457198301675309907244132366589141020888209161283030260993545661585702253252256780621845625164006069897358989646202220819192889318188127761906653921559961764349981618153175118254098996033662516677478640004586179281259259646512891259317557745459916039679541456416548138491693992738418291379005278449121799498352461942432541031180960573017156312006177861870442277888226095242839924163167506189225869430621263047114374523591953116667111832544756657068318169163711072765911304858858475503514583196004654433112675141284543773047457279803621608844637226449363868332191043593941982183053466571097762821867820073405810677875864272356801592476509654566892638591606006354707795432569027730221996944277345711563888498658511503987171323567950564506594620844126627196597752031082257806358020113398348183295983927365639727339156984175511120015001765060597751381384215906078237887211159862364885424301899468389374078844735104074071810059216404302922797711026161845479342442579342899417862373022830992031704423313666910903253650349791892912988996042491286988981492197103329648226544036667517775382557382108017624137751336145227770860984590707151650988906249359452286097310447317240569445353096435346044603854902804224501866892823280042254685816651188659748807051326729954449148507371236816596653577712692676116397481160360753435610106609606547942909544332875961868893050915357160610687591891666641134429424048547335266443752370711031271879264043262406316490453235773869241438587581086446897983166325428512848134033511542646088077940478589133350561192051439109203305750992924630967317713203800789161167749633181301139972548171732564687536247601047279111214206142788436719548771712312474034554073708854179269213970966838781069892967183547160166131140344740579094415990409455392063481139516046684380024323674025432925139722752973678383478395763971287470460082227713518187455214128760153217073600399928823799462911990715248669396761861293263378344722015078380303056905015614994001789028844955281643888330143012107552880098916847764654943035014295872853100694626321710415279400163697985340033113964427849251456611135119438285799549207187888895553200035257612312768353025438518857344674687908277259079194691777962504943616274930542946132987099386195840690002936625844945015996225044911203015828650170491752941738364490809152003653595235025710955202490650913276372382148132662094174842452212785472936356110634005672261119222853216121212027678279191149191634634655006223984935058986711639531154193935695665539656248044782810129708268653274148404829823922600570948989141958169653262874373192920022161013181948173565062195255493623075877308155275783892309109414484740518458502013363734485797809052086941211873552728700533418988828466399486354697822679068689151415153884481211675977754195088834179154528885964568628015416517865399704165944436377312062219355187005054959144221513862108311461749307059401213632330785810603603928524021214766354383545337611192025164333521372228926619922314771216841612278406572821457185621369087456239944311354283426170863495053682091865620912683620022050813587341304545326446103503914568648708177168406311477131157269612410577028367284242287492188670132057820984139753889204916561895350992622207967313372900262393317705715142361368104894961008672099845699607859676093001546502096024252194664893465397336831331057940908451014693760538455410759997550163975727148580062120216034038817898595029125585906789265246603903722723677868561792858851266414238765754764748588883495271355368750204340322153492530359564885943329205151444653005208798283787676975404893033500712667148057192083124193280003016004819982344269367208504327506838711743330583365753094444551457728593344328658657253272191795201562699522668891643616010118534518727686361821201668118112417002799090794489832685633226139094274484906805581413731469247861552024068770081695081121677099152630691305906899022224891105504581344621019857652860636285560358643923318922065721392578604184648129054274045245851322335441351311084030838051480453350601112336501237702579999772339117595539141393354116039280431800400913630293461094467382507536116101347741923860474531787558506255751959704118252620006286564786722537717425890902629042231628250218050720200239737381719443932720586174954117070253780128205057553136368655421312364316123986889160369754540882849483878277398381074726113339232134199098775288109935698897424936189570273494842793967897444353577198787081767908305843098650612757458795186721619491867159640648943222441615254073096931091809948764239491374639368690463728032163400216045971174372902011350120755017327004678131437256927614193525227388520933756825148227719886762956183768522808465186906653155770218206439336605724939287193306966450750616611466192232690509571877258506783747977394532583395456918540252023003296124537194463467859500320046077131704107472124286946813856061954029712602736612885321331466127696484426254809079771118995339570003433446617518821490509757671008474624520316937182687699539524573322297794645432359430147878207332808419503311104204657552012370000265876780298933441973781921390567610726635354407324693520245945229500211573765968490848031477431330156683948988921382266948099771101042344924892738165696423964333580992493649947560231591487256870231359980569408220509405750485742940414938591944567938961684724290356494337563176642777883633145852931379263521585902538660439519484678330117864105374162672874589010883410663279582984653201109896618198304760110030052697575027965815749362516563309324784062824574355552816773883227595342415098235839623107355004621179422106518021096482187403026084594795901528086274937907813445094911642028808828469163957545500757965565625652993355302074425780643850492702878942604033248039507688615195910590953151511639181764884646736911274090035605778065178694756031319880846741042582317171354491283598922926028961063877202026736920994114406743835065498139422763057571163236467265208659218948187540364299009378133981707054866115245277750790426345957882434989010296471445121512296852934384022119697613340504631621284657176398861630794890299113990817891890368491172615129012412699687847728414564354382269549145893215835678942397912001912536081204806334670615456909149384879901646083286361042838022892150031238182759238842228755099803181091038217466280249298627903250309973752896381518341488523368481762905089090212671913446916591354411926745283785142902434083099431649199457433139866901703971564679763190058981368571972986400450133488641599883751041757838170292971888549802773303154373246233963264225513394443668066661949333784622358981462620738891532291191543345470468325615307523438564595387360603634770462053067945475002673123987225508631481293953990898765939193092552002137136329522392020053061083014635984644700604633309885177861527475659200986067405302887295129537960324625613363503284548643323758643809715704722171740398897980152954430690129461549864599505758672601660584141948389977921524625661450604144783438370157488636939382736669459117616966612694821863125299911220879033092390335156076160706232491191855259444680258636594497728527805846328533776768899164909972473142914086016573338293456321764046402097582905228952476866894510476941099047769686737910073425993567902450357459816161523444784354999451131242165950896453056711326285810067161029381782029530992164099403499707212480784242028878393380160358498105756267692485404652917487793997998743319557159326832484131685158517603787078942932176622011187025959560719641388597280826545364419170439625923380992410898083386661291318712466448385920514420320127807404150395825358601729114705140524145652664497049593539488906361284379899535670537283089629597600384366766127681499923588571748868998904979744807457668364987605647095096964847461434055300467153898235696562849130326450859435351846719704327759720793770219147011308214767318433138309228273847544916430088063790404099675161374712544365009951798774269729857803871683142992764437406510496603507360755627259631261832244545540968295160582216720236189762674186819692238243252416312525027344403486046554021705347967196236331182395439990054343641020754531123332790871905168838748488272495340150123920781254383558900331609642642708696322853267053319415881219004090773957718163262446206400581075344046424466529512221969323036916856075886136017731298846530226716814200094856908194629346572278906182869897399246337095442208436065171400512278957162871244244482187197983487452449984228290385993570953277857419700599673320582905010707407685968571320245793265460189126966663689984984006353196814442256559468570353243112040838629515527127941487830647849129002922105872258844103022898009045159249484996057800500868678466328775493525787167452416126942804925354475022767156584810349716152427698285859315383654138508725433975709173606018953391004901647017497278709772185216372388295336830919362377133187007315795502859521635306527648198474493381298332018985270973119560338565161821396956878648310413787522584311806738248016375512291154699694612219952269183321046540966700217863109222508763987716463330294872355719303069911562582410046642281192669472120464705671811654213080294371021624318412225112066922568534101628686289006763041857201692831131342881314165973207677290558346958929156290271145235291770673392189678960952519657476691253936466048667885678423111920914507044897729805884668184629883285687312071369231776681698528042351423465721964155510476293646567963916594510373541110921338343168957255218307396336017512373485558067476074264617424593672908736075408988377581190699943439843976433537821529814692228773343921494223482674883066055071263123483882616495311829061040718147814843571168873777142371647185195131233890077083540587068919721402965469942860285762864299808418572128456323907885993384857708709116153518725860098205882958633182211191921884749758831985778490346655177375677302865472093371646410896597325559617449401177211831799456213265647946140390481282795486905768948137013815618373119430349766817517269985188245274085190471244983427383290013637510040331184187345079572375128861815417267436945716684447640554047706698833846081616665054868548967432984962721283112592256110724147950943117813989229065579861945355780339451207991475400584513208854503870704492458123122391004904467450478165421599726464184075799770421412085875780568942637043126022912839399569392788782468263371071277811106216074058661264457921950175466202011305970037103997602924676356696165080297303894688082279271696958030817187216564485706800218854203678773292318933401848442892704316950105963107331918653213211142926639070646558544911897358873141283348760702585287179559172538822028108653937960231998518529589968139239909072536767126900952298028611462159080972765098045217432050637172748783042480000407119522905979443988718498986641976242143053181024248210171665598956186821175583108448325105577561141106773509294675611690138595590913451845319171400434344518003124183228249273912895538147152072968483941857032921537850960301473667358801097390507217034010458592871649607268852853205685183718039356381293167909095397654970661524677723971137023962048215115655734300677254038720798157258821073978089057927024263039242741995669746838327417697086112446146564277001908035720889134605580549411280442057766802714648341413879096791318474105266785884504924161109056663781109145331287282715983924265845658930800046708054394509704095101952296870799505350632270048565091875416591746419119680529765990965854038927111081270614926265816067476004794853051989391246788271889618187688566359271673820992461234621342594991280714037032095480282366620247490692231008654676324693651284969807645035231342052428621221139194633199856308792447411208198914455186972592640653519739059023752368329100958057058106308553365616814164855502530906927703242973527351859542416397022929809776785747624077942571891261492013733953649461769314416694095853026516590296913347151931028605339082919182512106826155624677573643554463609638466894439138372196028865955136166344263587504021353437142818676128519055416267897783583579144968031805093682860801351237811343624719266763530407582492190403859762572750160864070077712392679632629337494701372031621781258809215266437749343224589063288636261403443869910693640830052067251826099622757848044176798949847932019494130540193176478996003452408715785641286614855471687826161352079457015592064868370040397604987236074314974597554562388667329967209655617264584190317399870968740349103786648483784026365686091678237663880812830340697866106237833737999683395764545303692293179014871373819136711074063694190297035740977168584733375790956089977941267730428751231556369523560554561108202448447077330476362147340545792426597600656008051267358855044272188254351706870921626633242794105092406707792620225639203039076249200386441286503493567552666734987527830568643212191024790593294395390843086911849821899619958523335489595236653433800872887773682233806223418051019534216479721003642809349846542412425909916915127423569519190492871888266484789368024119566046168413136327948725691067344665609515556364497714050367588624270981269238199359933973160169888390831991867584457437893722429377361697873855747640914260503681186487145815442993383284251932176308255994252377818214696308257543307789975270376453173722970131669899025797389923444362939040840332233795799690863507700196753544934771059207143251065657527966820992803853639719369355539429193919735130674443536027695039984477630945639007476131823053243717710371633806338338626090988005165582747082674685110560639331333195570028006287317556305034301193163105631561719309233161760969027284494810643116771202551803842950386919753986801862637516592820775917646753448975625381487774386586500185712430621670616398979156528762139574329743576304235713644820620763809209608828691428878345829375105880733856932572897685345321553431279546657471338521445013900184448798988935724229611697821167215410922863469615626425697265534298912581394793086317545419746481930622625825025471695290720486453127201314722979749591745442431288553409174458916961930120092479943638297341441779710088770753428909666272240903091107907816204851035188420767669223370535910861808446820595900721214369514512563565519467770944517972511315687501138142210505589278312922855851054005030973240393657220094515434367548712523974414869283313099794088399974412218131152367910833817242407176275607752745740647611379391420727964087584295212375275232169154325170474571682772939512135002132331421129832703906071008184236450198795274780178701554335394349503833065519377450568623763528343343212632615736953288684755536154781778171311125877908687413641277705960964710236331892859537354140824994846090369655835877986544283160776549579390760366184166520723429743245544520545560801748326309880762290370018774534750341884285787359291424315473732552266047104094226474611467505924887504895600105143850334352728561299753599295378979124383398589591293889567019982570642535461131425045227983881226776389750634194951535000816161335445445392415547431461871673206703460153146993917841060772681480065199410109848171258851743388453533879242528458187007441190230388521524208376810994339856868395696952203154058385901314543335032784129793539870084645062351427724031408251112674675437672329861198926839726549418120675944500726394773759623291596341128713051927534027536000334882848766816621137246644667852943126769281750807747556346261338845626050224433899034165350354903577373355843606540399128789567919019989901898077240831078343507939394130081536864345615852795077764726844420122563950469280100237859703072872360952820498930864101614348309524663752900726829704817245510230265947829896798401235825797057951468866680660805796896968510329864996544980946641500194137406342978910051947206745525658023919400142748556995696857090652843748125425109621153994799259672268081934278832512379940735488119787284133028507109442605954299515493980804983943225205338257994073463036668161016624966800650444291282999271892855428869500494397498067161269334808250890131286087333591326285684093900436544922908137153926605635644549081615975463962106517163275592002403676939634234338967013972415948117977151845334241772501955258017036955123940751707251132205540709314487481560403041374656305647217879373718070589796002873680856796130606134016070074797701708619526451995732904258800685859256259844491728933524686657569657968347147251820779170662675492408205797732356103629323565917851312312458971253422431839918346666588376545681630041630337820355182510299712512233400220744648751362126427183606031049262226136570406028061041592211338708088966891372292342821290008473413009343186475932001459538024653957463418420284074534165309328571122329775692501114939009552656257713937935703478388815696966726184114194058448477916240883286522644658350205615237277321753685978505156173532773122663674948608474340284453474519765969295251499695234607830460721519769767923899265301928350367625849303459028874314309199270132734689207821719194324535029091312492710380937663653099077042316198442471422134634516890419078594553796515295076756371708241237556610027221139567949342335365576241022714454155242466213609303288411483565321680415468319227308994402785950776260959849390571868644926650180963954790016249193128491895980807402029441330595568551926686983444176523894625792456393266952702903346029887682970514763964578751606647727875069390867988416299848041552676680105364041004322004064447076357834979153167074603049257341764531838629062850803339029157292021018800061534368401196869461472511539024082400666692898309686544892260897882680025596673429007823898318067510882741109107575558541814020169500147045634656277398888293727405087319155816820364879841343074670559863295863059903237023549258763177062603457775127304458768301366562270655644004053377424703356850967580505209679976822672184655974839384632856158392592741748142583978956537945265256732051066280799689717057977188407364223595346456146679350336767256271159772129358151282572490100926113999927117418444044150325566638739558575326477697448292007658304134728328933198093766019564721769521357371338904853847574569849229700944700702080261202734893547799883622455823813693676188089503515367054308792668658295549074269452865477380854645916398379341248677675383736038795288467375441958669127182497063813334829832095113781724655965416172964755440883918892828512443840669796888226691750096235674619602445249302806172910366044503896435457032583925546329310805953160165424944101951403372293236806933425472299825570864775489451099774070106884170324142725635858899492821410638955588574849746577343194573833422418717911906493310188569216535557720565809595046433347018988264743553584869209008030930630285294243215586666885043443036081791775510520542494086037124347141217192871730948248269991251640017539332411674002889506077601987940517335576018282294218602242077077280616325245653690444545145704310244521046544448733591085911300961851210639305218502525232998189625621052639567426019604062436370378998994125681739238155178272054412943397504131137029507145450347335039336296456603980873637723679554680425053786594377620426928268256360374829940401253220696010008999612883542445379835316271453064006316292455732580068966818931720869868346509761885023645156587135437021073392301134299153739016529268636572718163297250388829446565911246334199232917415006569957483728293250227599347164661393875952527810556874623450314621952523924796149123195267129166194795927318983314312618290718341737435400628794061427245886006039928214296987946110647283255782200268313439328177963155655991215832570016553788680050763511431577512541391177362016661181007740372165499001653006217169596790094935359760574154998040134031085518744270539161872419132458738013226307925720199723547931220297235681949019670790882741363917882853376928373479321044749038182481172735303870955143571329346890895640749535765220821494891063958821216208606087614926373282750938810622776432314376318758374348563406146869477363621796482092790468199605296662277178819303895577659857048038976950595163181258302721701558336443362804264987389044087222173109247055697788255638914049580574820379469336861260690045466083358019623334363167951901483928181722911871106035930951432937240551602571845488750255533790162259653760672576096304553125688101299372670496441477052915034983901073315150358202778055017808332942768546814037067383292863641953129184478089577286576279786950760442186765246420341835327497072567645905253365047037436628757068092495363705558352479826437919441332353476543750378503231649988989261453179473635461304541076218433748831384132089354050917032742888611681289586564076686065635305410883634143838404442470536562281641457339642067034155593193548075614040383616224942418633748603298804885092177465594423976218637410091562132977588587062128323948485006494533600731551409439384438037484801479709209215642203003848593970636310057221821684167580852021952880202941320397120022819309973313421964012708707691423851396588177880824995479269644521264341593461045657107065557877300955018619789710554353812758478528694033828360424236407072882697488339623824710980839643593323207359054582821462621205511708230663727743462707165220547369591089364370288188781895432131335568639946743196461322718270573589711929440708048173009234219304735412583733644921630318493492117162877694540313439359779830969887030181055591203780621439441197264458862593621914744996105077051560361978008160780731722988592366596224255819139558144640341184628040360492031971415210472126795061171013139129968234507523524974244148811749425859343180810315607395923112564896522529153328950691216887983749783951162593871235618697748631386644551802701129355192664570844765699116646004039588609470472070903988196966033297631644335095120416864349137078331764224021224301092351763419644825627851878734696724887864577719380290739943809475655273888997962377261405344448043220412828264465438095928845327142813313315347095480905348602533075114318836520742924801931945492662815677456972473326693240974455675106321175491554834588545919921664137555496760279520324039542259067977182794528575747208497623789557652228363054991352572692795981409625499150851281887067557221153795799214337988826037964263331615550929203208038541280940852342277495556961155437921547323684983710895653104618963349011112855004655533066267327538141672602244149692899254570524308758629233596784786903085635717177463319699390319125215873857583956479467597398848561480594862975635554810917174132860780933922768141385734356937944997385706075818994823754938071687806543776002983245041006035608332027040696563825690666079838124639460068046331155342813949813149137957864784581950974963859921194299014361939435028768313493350908559718154783373262914394649313920054704186712220956149363035102821531804414198324956077817120429517484954935237591273146461899360442912395600904432014194905787967882287812288786838129657923975694707365727839799349560730539696176788213095805652995934874956777929441999068117184097937605403075068049188652363562715810359320640485248422779037728967952522604105159758940669534556656691694519520745383425223690338959383983970210495638649177809375705964575185918693260955581745980331932691226306402704880432895136598965238568764443949057309228073066078623381932814067349910154928327712422144895028780343397477707097647303084353388978785474619203338499650199582182570621236322762795246957285358175726048509338184575416465590660444976079298741548890124446538174292678070086576402204511383929177395582521322468935878531614366331948810676443162457569859816100094827676042699069469331439529968234965234830319380384474680405031096993839206015904009230023459948586459528640507007816493950986707667282741594021853172655619611589328240410818529081978168660424188591254098252622035107791890626365540024135654758704536750551356112713199879037794078603513119414673833949102412491709807566625837134162795350040653847576909167256381710855960718927841451466275578476295996650201314090838241835863268921151852989072323261969323142805718700709529339243778017718808053890372177109695368451543840817591481445266057139012596285385744910702502178389605056745402526787335323557636039008936215612542616746062361424696743725966487469286992935617970494602697314737094661242345313353172492392792830351490242975628119923206747900948177667956899303565632814606300767927699006612072838447351565076766581401202543969887876000947545895032461359154903823861543302810283155263667138541801663210260266902322595858496098045868084080769361778779948988885386247855732414438205107519974780900988606071481989564192285557688090545656775502555881451304690880889914601020992923427159795216526098599011421612179033457636528906107812169940685869677246879274799322440400579125297400333275758189128961967804331001339173235910350569800019389702959209603676985497763627581741076885148400350875792036922208312897943614176579985245556833597975665250307556983953625002148665665378015044426452230387601486306953369860955502449401419211704295493624199853742266506032998129573381151168618901378968359598769070844568401420679362570450296224584883148141539777950326341723023764808015501953066405854740162688103223490135836234862596332679159709160065605369094913487924595528028327635603364602598541027182698806875189764079177543323735712301881431342106041848931246083256870525179090186594031299300682279037910744851263575291478707411933472116285022319487672257761642177098560515051835606684550606672703955993689708125993862154501741925106692797632324911679993692504936775698676993578591608615581177486987540338166775091513559203179960121370791086389896476069932917140432079084783161102681652390664102349545548170459426320725991584374676629811382855980320348656314436103216145901548053991481982740557206739991269989195124888708580636242937135695524610492558954411243021585382499123922381997635651895809760970176828918520390023522383083251818988205266128475443827198904909075066795811935752982182332736376961365143546432673796984245800045112475784915421576880900295497020369131454385633651166739768167826693513204137853217079980000465957681286129941452409590134804058916233560969116241057551798217029434628151300619200523423143275572004265621766077904057669527262723520371323596254632088217244004301475608190874515160910282393961282660466120850967657144823599083972537575337173154894097559310664326101233235242224105323264280366884877186387013967408821720422679383828806376666895341433502634814963156733194312198507224905837827309475222143385976986693369774461681933926223792314799201975768039320336843620629981514507050328760934975180955282487628962124874031337432915420152025519292599448047921709289637319334651674378683894755149655429993616057099741210590054893942431932413884633819904151078309822481307584466892237963954038691170098100563227200421935041147758197321448971309566836123621677051863048548707747568099481428811753116460474549769080700255144940519418416245466176463974158115171892001757418849928404707082233951208572447296294912513892927263833164127818618212615573086609866490273849668738538763004584515930995700788476000651830180933180158566042718169119284634003069176266974347824210586532768493266855183075003781940273811069175091067348935790337243604778320074468606840062653067838807299203357704836927475609230317967659277062067686804174194820620633099036164505397311064417570676558719469100963810916793339774933464944351476874501036390161149067007885819380474818318488273316559658687329907469607364381527283500926913076109265955223273264240426001265239718983614974807289749782867779582526180331993987879724826694405716433522645567106322731762939795597336146878715527083481247125518223746953372269805838562434107279352600848537192367150991234381628938667652882462279348316355438019446103825453965730514867261788933058315501298799268545377813069996326100809225332899252917293255409483379304106189998784462314232004628547298007092608780201385013994327671215432429866200678877401403791595093929906988999342381714008987027648639552017221754012707008134232300060071403981422712223292966871162621445757506613880893643576530457901972524103501822003097047095277864246033271913434594647866868790853286016915064266427318924131398590074416333177373619951245773926405303464119344919382874619357346726474637905862138721756533214048590861231309568467620498911043606786753453366998944009763346492967153156796626750231257784817270678524367771398379123908102615204158862348027127412241549987024332006326028462197675929262364148508847133844985998941797300385887491069500484273049209845026538556759807105217528073243380375535135524772002956352493372863252759091686091643155480377120246558824069503409960654031511685591015743101210285673490016019976888148304029882394021812980544842996752024645501753182368397500784603770566142518457619439300420321377481664763566953304783087318212707971903487609020528850564289271091485536788846141820192292448674636793960239981820378708470495335578183912709098480361262826018463785652744696387548496077789053155072818936135272140941713225909084799521771645126181900609977583187904859179326089891540540153550436956267187407830683270075324509872450390123448434120433694496464181161853156671156254061300141480256315508278053070304525086384798602332760011269811404988467356386530249843815798975439315858392891747193252795822054089032557751378223611020236523291025745415257667075297120853520410029696327847503512755104174104778974506777743077181239467609435771438254901793460790611097710187961144745059020535387504646635663936142040708064756266125296454426765311312480810860360708051537926795740558103446337323104003414722136294436844168534960371203992003630852678540756389522780522291262919382518400803865757743544194853394861424466854993917654856510081072100573216854034494504650891448459288805350196967545298050403046435142855936179579758617891289206016994802139585615317795007938053699544142323396207325448498395502752888110087361360099184845461748009329550938763391239154439646130709902770251884861764124951549673861939504648157577344964673232591318415026947428113117458145762671741013152971737658882873282626772544811056025774452580494362188105275266687835360146514406075654682308920675077630652457620032399080858583193475856888590520650633616767150488329675110415800235424632313170453521467199854711093329318139092600169712443721599909922354155414347812737419177947344244950214372351091919441852320172727606119641472770004646872020019608147095851438231574892013844856905679144787485738914619173642807345386517480281291724144284673104426877082870684289035362651283359556637149917569620999822771150843803338451636958491001570342643685188595411598425641347802095340475161494935644140471394139492530448408204969039772520201980512441368670240236135512668996580822085823820213964817734195901809848854515527837143895902668435675637171671397921998806703252146914302236959790594092958650741368412910481164292954455228985858618564336253360656424591993611431019284874098658503234056153633774666049063090103112309311185809286710882727922157402663140664511606545444734551230578414633236516825806065516681743655178349671933642357501993868225363767270213535392465661416250696677862307158873667949359957718482488420247018956626105828682102964313939638964003971459613960651549434906590834046662956429536959410717409393581668869119272423753167676944306650729545263506612173386396027559686784288078817226587354419234419275147394823455319063350190782313459335792370575673579785835510013869477782572461525763282500720464280590974498526514301988430697302852282175810762133184102470314102632613244855467138611571740199507104968874877241442932016094725335738046297949506354238261395122568846271740392123976008322633259688574099804059460479900920996779449444685969829920886291799414163045066891077217846024050064816968964269423028858313828846425229113503456608730657244260780700686946296639881358903766503058860233484267599406082058114324460603373320123155382086285740876700228207164599111074316942734929149294252524850977253412000968173176853688702874369099751261834182367505858032769329902803941354076412769728443339477595790693789107928385340396923856420029611102552193162163473760154186911894201261426523187063225293832568286820849413403743973934141578814998428628575066922105334582634636483914309553837942095736987926590605861608933562753512479201228212291140954461399569085212220334731155374704515333848506594538385469285335083696033434592075887303776776894597695752319011430362633374926305844207527357505011871210037173109911876641302973897387862553712252285455057749255529905767231703717036435733996348912207459016495852778266128314644759750963646067010420592212110495431320578806623706956975862850665415779886668456171978751605758133885860763061919949617983622265948052166444905614048918632171182918541098674715851706696902685228981213933920672838324491542061407596700927079722693961499570226161378167409590560809269148725814342184523277351724551724227531976968456596391289673999957473028289621488869669234549731596444879392596970013290787164981940288818249679032039319020123929970995173707137273889703052104778962081403572704580091829035147572500928045574573120529245529018152689213395377772455697675125175187982521527755708832768726602788548235649023062951856213269672100322003328778686486834427225141481241124012813054036096062251626116398090738766593152319033758621758885555592168874017182349455536878679946841375181851725402272546090633085102093567603548070126016467525568777250806497256708844940670612366067129692618217575731939105511477007183856315300467822982907089295387650731145482523112637045638946670615385631501297176984994862466977445866533020251982990084766603899988660438445656238695448891365572600881680671810139217530069402923173384222957934898609470820251138293679093903093953989472221957505427644767955686368542836157548362226123825076342270515569870327233796744753140658180664727790678567778863165908520049121388284696987353644668367761148211995502902866645996779443313909995488005849732682159280677011277608421560922315104356519070918129404359910967133564052230102430892253805263447778880478638318633669451571545994235135911305491421318202401268634800001920997585949798632701307285853298318914523453713813048732593763363871312934927700110722334052722933467655277279765759270727202419986110872846851104308869898968540959362903937562393155323811732222952062066415702970694609293757364174028255610348697831996767582964391815125288226589632672320518205282923018093420593727649191556536859463745066315661025962457199821399693101214527100541347524341450100447714697896240143211639590346967859498147607923578639596411646113790302761186242797710176550925942739602579809807189052839365727026310572808145647752026025919647637475425310647487072225427806557695873422175058552568891553946434260537797484466154448061025360506583348939867412140246058166441844951371775461605420093246742507007838718072366431236598034416500912667756025313195219687481655792663555627267199881025230519899868429287673297609591487617636227932423573266696013499538875534500455313522804827124288063370277040626617044476723884055482555465671966939219331115943136527800545554175030957980748645460493640213444450804905180491546652193816316119279969401623551516960473888255585361154416216389469100727208227708445165347272025015817778217020387831667798111029146908067000072332693959263873116796427672235159286965406535435029575271405917389465560156947820860172588062986422423785829829298642557277154645159199562978705898836172196582583863367325291401775830403375944746000077977956087034043233195313252449296171294769328362710472021400747619148245004546932431711532901550734301046022580369508594613185601526843782481417027016939380041468895327861955069430611011744019902400094999476414341473786264767421277763121737229657388323106458084411920106321072394664662502326296100989925384733695333086567099175961031856632179509116413500002310337544562311304703718181983923533676001735079623622307951289840037977814848806587043965214355913159154759503277953931578720360696396714749225423425864845275597297502454546481352066230635295577207001854347853292966512530675087072237863005210636715335506914191595621916244124921814020868639552759384075049368868572161080552101088983645466138637775806204437701346255054646024610595119730934075169983744520259994066374002167187553854755464958460829628492854563050257423841480775234669869312735561598870881543264474710945426128775457115823768629213127395786495811506036598004310177731291077061195684835088820315661873322485865251735399874851368056950011922147793033558073043933439133905874920492279010602360091115709096785422879110897245602106157111990590248786675551549513706638633754966123699167808655637681450683143888267952373828091958302975110762575587765150332895734681555648202146994182035294081199730565417838532238309044185143292165011953055248043220705639945408042685715322629137307688191402418482427588196541672161812555017157336172990021833371415344955696886174643450384171807653393562481031302542182195867856226935512916425900147218623372796288683404978966198360169879568820171289303881061316670674672004308542624403124924435470218408931570472802640497448536419859031950049772653236202859856036224988301420028726507636411054773188877097256802273339231961609489356219008634136299175729141082050632794795319400741314982693301021695859878041233165882288323094365425928326630204677146809623764506252725656861114406694099308649062707374367203803877785628836896704685559494110329410729493793461739172383527384357374651912852448167159413194238505065417493171726109394078446314077304574960959979453360938126425221255652401372583604478599010264804135225725638143574263721309588687842080025428653871058899775238048769818058333078403556798189995544282811849659218359548324573139961946147110434747095754401714709522969058867846879324561283785757935952345204328804117737870325105761306166770875278690920698079967636831172991790960072239136927796084209703539054079388001872448103898632023190019823381649625179440238135856049241797303851077331356632828321385962651414639194303291930618905578471498035518639959340167944136567649297756790472933976187131962179819660005782045585528658301165488542292133936551235668089544342601642822505840331191810616042904379922220448434958504894540912252083091705142886615973169650503872050101772806012535462538421392884417560176739373922464471233633676045403365911754736190872843356181499150405709346600113357019825847512253256266228497707071243330227102339631441480404597578919880068243978292556437687960491868734019939495978891743729671312050657199893269999016638906153057618137616541999474612880346536983280580666019795926369318422712516845299681879410639281842082560306808637917418304974434894070156902383874656456342594078172292104557431151814172432081142077337915294358136254981762637559918597527041454960104567186362785883540516989508599572194956864308701339959547302322454052881468208497309621977113755457201659058978949997889951528749223788245477738614697828310377839810098823800402364765380881558949192660075223951187795148254753084370446570529302738380826593263952128751066472346597526663589356683829101465846409787660511122824164114037010935030629997369291536349706593000564580885203989691943686453017397348957372474905866491115204742291497622451791167493478702382411338162144643537676115183757556805285755969935485751952843298565997893317395819168718092281423258464704527451517562710129928586272560748730773090986422329512827175854414183895447454932430553061294709506691274797678985959318592841577875783718975503166606320794634665707557128226786750604964994053510565754478595400224619056780569616954806405315559187043706945113039999794238281887845663597170113998174955585731264541252030268423631414340899323215432398582926813292774858988030398376719474360391077515637356910817859453454716947737357010197226737748376374664746762654292511332600790379614026515968016984429654151467363566609037463663905776996580180871900576213364209114976681917870014082795693187834218666873562192561844745327786245008255974255507096264631279535572476011144845503420762959858983054079102999935455866609828355055474467709962439002706192122138994899419251231821549560588323001858063606157547306318185699215868591043185857131796873957466381242668895971873333795696944703165735834203857109570433841614701194361404638956617811166266971108819044485277817793940720228421608520775475518203669615290644690795300610843218859016888741072242841524041269306760803342069822445635936815285376269740242750126326722121062720457795013726341050608412538318267618767552506528179797290161752854140042362983570793545880460421718827014235806413663209016687846977241161361236235742542701499591765267531883346679559519276703465570872308488818891044994383793039381673675371821614378581679832647175924550548998245434723916705582352912208842755038010449584282844619869802410779454854266194647119518278358475891604544700995685947885659406409762901911587888729117909644005716301145895192278032950293632617601431429622882681067974678183317563910894241678274379092031699936379032919293922940906884710557843170348667887259245074695956679547778130434391049368540813599424311420661618092627658530074660692831690700757933433153922404066167408247747113388989814132909017044876530933653942924112234068588120317045194393484281481459523147237295591339967060496442616648480717953245451812988915958225696408388584943057111615593152489323390393450361959662287110550675952363780639159172506632117803732770838885186028937227174024053188105042331472308779774011525718850307138265459680319245201327502753447231175575921195201495791725974366521321452193004038464400299312663625485285165124460758887559341488317147373967733918172057686494007427948101729728576691121439485568287868863087080564489441135061408265056726250931786057797016931303797113746877974721857182620077560245592559862343684025639131747329090868069005515812934841259369344774213186834703790780999337556767129280497243302982400953388890552670138988025010415670245433118279392578216295942294938259858576214386103333826402318819133376493166391564348296703150327793630940589260404799607406429017330410403409632283291830913222320669508100506389694568736166459372345620150633375311177958699663828237532555521565644302056790807555018817942460768307347399731502542381472087597625356272475827513563235315384875563704025518512700349561668859336963104196351952898449224038282855219816978817488308573491716962427815326594484800411219739775289222692196984445365547001236466964023662353772482708419117753000424544897807880204186068901310289756318059681299282363675998437753295297518613148933143199207525012050031769902374014887684996975307064791517107542391739718490032114412181114145736706335166736703379094860575638404649599105201193506548859833017202993404947523714146042905025047194511671444840563511233201948937852972911083560999899294483011554658559596189361269456898732068257393802003362630516737915517845003166886089512545426396501586841130194131391269313711186216166299058294575305600891613833095147265704164636080960999590617862510789174073172096257963965011386334865528236514199740871144234119889935430962419245159213592696199288118321133606321082848348207562991308017839602626239125927378918018049182614464896910681409044466480464235241209861076269431065607819739942489711887042157967995411816169418817483794302630798258289837244316610132366686084159410139767011847553339997021553997321454061121924712756670950009896304823961687992629991834698980114316349387986841816809044418427468568092952585555409697907905521379947691648070385164835591424429733273521927997001450454538676193573497161164069687334922265776531722804137352996968464398296308807302707832444586782313762183084743027155119001125172536591299244251429319926112331730812347014450733900727585948454296338244897790339212020467094663328341596442414454024569341080852897131900347434933970104005188910409211616842654216649265688121982684287657961943949080868061492740693913666632566298125777873036436852810116497917838271529188361262240025426781335571588679823227292948184106703452921649844855534428507989011884747590337731198731133123582167163519939606465349796145549011405977362288669734861389446055661945324249320389968773284634349316058457662988484217051741322729282497764512814387493163847715383579679203701030550424130818748863550579609766884055466215776665638872920194477093761330525089031484006782615316695939970856981827618494618798895928694461485465443735094568488631351868039609637988609686484453281433865970063037478201501475543842613026190500569002086143919941317152835568661155456703121044513558470222745055748380539691800590372332608885529518113427415463760405569809607228099897700251721226249751924513449945189998880274870571371978147746875607040912473766312621694523087964219514804047717457501293248239625943617236138595299577754380268810877232322143100625388361597768807938721672348840969693636826813223057540868068933494064930478422276266151680934005877644349516011180684714293215058096295261032204983481261043291968303584576984753296041300152263344572811498684926248816636698806452823092726748344406845592225620005003843186492104128615361326396879395921050330990591028266160777883242099470677838264086945921196528356930445159090359538191513210240197084393880988699399264796806431906078391692625685619593436906395130363535799322543374726953119902808424668723989641762986848467450251498078665684173559676446149265334665078210714038077844551356937555782745253208985754503596611148171376904189637045632278279886946460507329287999822834834063927107453635104661376096215405654615249070684277609047453251554104629734642967927938107428331462615536126713649344926565162043147460990948933915491717952795414192628478885973458585335925282659546622864923030672286616391608769161374850460232316557079724755215806415148641515348110159193832876240809467374351325090245631370764576261861067656658935520493129464552987982395333777703651977633651016594832124744626238701929187916634065134829833570017801965165725367051945672421865526513528731952464604823285703617615043097828423425315405645176785928974274447713374300981032559649029676630255546479433630407407502202644143737646419998121171497594372099009951194654800151832305415083920843962344499186346533113006571482360547627592712334519737629900424046636489523855602908564098297985269623735934859619774402282953094272977277082961314971146190441401746619098954521633841690113249556584317687428276125957166885191253379095876045303200504452505155370107405594980773507541761596050992527135632685015110278436979460522519954484436956496383756312970799179482067844843200888986155620708856011724650284749713377221225819412973010356694041081240532734068346360884193044877325195397127931316192904376378018362872687849904864099025605714238479331403825620627680124491500614310061746331498135645441076438561628160176291319252529205841409309138691011567591711777053520451208254555099675424688141138919095928428419985769281123380700389574973016325858868636092501283809173218430151392080810124532186907426631753993897544745396915205086291814927213988560091182985474980697375188985987639590636513397029371776577711624306596011194285765102860633623656298068344441396812109931227211990315750514449583482290034541432601027575108920521779094293077873684129284803274188399693471416811049651618695305964924645592615778676880974017772930818953880628082760176708229918954770960836013639477517918519573430546521925663260916495998358898168462848055004311649896774847131846468575710931641132662344912567215029234360736672963322223121725120911340939204949596856312144954858831719411569502797085255157475347928905040237992802402681346174107063724503800771229731421900705734647459631491372745692988938778968141962244447668581674008645573991675942979268991706306491906220692737327370977114612556413622875457393217836638942563529791167574815173138259234280790245479995563939224922051236451098409086794952992568081013351938492500464296767219531814481369802582664335686501906540521513767145476642330871011765218615315260234023158198113995958953316035823708306970002456399192212153921757176899369424287172420795712320113343515275324208551477282349756289079991723568698896266433599545733193869840013329409934063993688583344849864803089728647066737299749904388050959938551468507229681551185316556123411651842074776776615930477274444340052220983855892133165814369319851471668775670295923986386904414938200580518884146321695426891172169990562225989402921936841941839333422641024532385133512078698457086219791325160817275595435267472599359683181177056788348972133292571762689477208974824858054998714060318475013482291407481117010121675460941114207850579384319320240481815099827345248816640165304905606137753528357606928923578792430391242618734592594583385919373346152493963190867090624673534036139507718344128646886260767801132600964389192517825343352595489383709723992021569706218460346324004575715682897377075231692135943352483478238943276399451478785519108866565678672169351456872578516674886723753417591907999479188921719621752727496986197080326419320648489442313952850586239640435392583355597991810469951854395618634663195807642926918088697475598622406920595600696673621347974845003080505876015410167829599906857447877565955903776994274489467928180093938728454994584386221550762041763200907024426766466495119330646591593082228494358746686335554391688098220963800385211512858378274734377814291262030597395338167022412307574130470836221388278224189662218675955458646893350026527366124770310869224616440706868984067817780841658544746541125608530371526293196805127653863562895470559751944753710044165978553718966765951483664122158546713243635279877868445973185291813001312072550069190089423939954171434773655540634655808233906692358771380051585231891695801652751737126854355905798999748102055857892588793581800439202316737854608706895624602353443403697574539039147501626346129650417826763216912368080931871392845215964914616672018932860125827719762968241317667415621162212588644239364083272472505234426773324054167929989499529059035515908698921239244538477326080028135174623000805118108217431850184604316837614883537322646615489735782263423490875718185369361363854270057449306610413492346054399119569628850444842804068120522076212125157546239715657509235142966482898747916689579729757059681675893273957783023546955193762812758604876601102061090869653995239655046479953990120783807907467245552168076987965855936015274403518106838959532193831446286695099012324803034974323568195652268387483086062736259835679948883951126209800674924866120228207423609850278594477299496126585973774945494667578677667657088900538220709881744767590432633645005100492807795810374084324910409932663112998711011650037411917353978824002132733093282710272590340278973688549498985761325499912478227970257409461653494910546576187556138942294328631313484951164448724595967181954680485198606388493631311459724625835129216110554518937440036902943986899919946535981441957015876311953291266310515057281841269920628075955650164702335178919850144474816926010314847516680869803544098033565367931256751772262500480408660203277853500099685603339542042951489220632861131632796236371082686260291076006042156427803303310039123201061248428656918733573310719969447678942636804190456564305590603857769598901804346113382490752368228430812547282114774809922785107705662937231554232470562389897846022724953385459060309080344738496403709892974572419885517855751596769465919936108211393113480369479924294301938113917940978418240699749932695279286982061711997482396383617267307288839123125195110021859176961171024865206711180613865345749340484786615664168504326705337790192568948173662230368650701269411027132410964328692490942874402783309534061025484398840757058270667383829846000847734918139419431563772790125096751141670591808244582563951578037958560315156233634231451364500661466423671595934158928206228680489602487373217641131924876824246638779042278209856565500502738257632115360134382031824729684787178802517537956078979900718172433672258235099292264914585188709510954662334856373168350332395630243404419487782274460289418632432819568645814725025114059258634596686867828895207334506152262237071951528262671472433037708575580909924118163276902485450189669843416895202528401754075870471284274101720566359779926192228768649954650889597007704428531943485216393751717101880134625744778767785641436518198114528298708053572134381663223488947509790438400623647740053716146534540866941411966506318668067161676489229883116797921280398625234480553510661872648550190703539358811374973425876982440178582087903246062806049722838985984903364385251444169906450349179551129631611866295004751920236647019068510168563147042194707896353738794161205876231755658218033274167424936957724400720836550347465471376723125632078681872341322142574046903072093033924804999509348281710409180089250269186726894194217453182350403252598011483857170274877687387520632632977902325047698348245109665807245456364386319701921680641640238398099342329126475441325177199446553973563038366066191656230371634300216480377528025765282397451652666793580779852337058419402789330175928966661288764172420804670340912235389699436613684203831075729038386639476713331948368997511373647132528904984236382297095944870790294252310715627701483198107100645770179316091739945849551134800208925827502718617483046902542224427552013884728564344851405788643367350570177028884993048368847604888856849733824434107156667102588651860297359614483141943459455842955232932839435807401372328522369483085625283240529113041959992156234775217842837351353855499547915713114910135579331379656680897532093827178984569351208247138440526917980115280262473324225240712911024274558962632803095504358263473580745048401549898139238166603505214271110918537283042291941677121510538869872481642830677039657977018339907196040720141870254852470272096968987897376777339054704694930802304550253116765712176419440238074153791366182465587988599114408886032642978845136243374180872676537391993159871729039131611480138189816439148216708525034682023696023578644159613196151101388519226383036576380898910410033389433772324301300873396520399732776450720556388741596939545492851929196900917694626442897616584445910939982129466667607596022385703770111703550808441696737365777210285149205712701659510460046516136592674857909139616053919678092722731199652926973343762169100526450408537190756133627450415584817134679115935814025052103570138519968337893974641352626258195511509317147249798643987421969516527904462294930124119403405458637059958597054904079044008522151875816172810568912643957779475847495006171338991508101260594218743445811068649687572224904379373167523434784034150720511776728663434882555125518016762233170442627054370046884486778047191362079059218704975319236909183987021507696886343294551377917042464999887850351552570987270010012384920492542333507906312792308320469151322826119234168158641795449787842014080668248977842864381113563473352277107872088522152663332817899819284457628615178946633353903763272115918432877906398081076946177365649715984403966109083946498688983337995417807869421112674003005009358891835304712517769258932662446158701232518463018099432109389541446983189210014035529137799258957030047431092761927534385485580028429275911819131867094079088080356283368972150354690073261249819112431187064309846061130419470360360851561928432191009800009969700996811482749644726625091103220211341363451500566539789448986378031796299137992157422369576948810520155909543025697797159653427686971104619417591821657212361554792533357058418742909523670799554247540679668329491931070302904799587699848678907735058459969681340643113180348872877646344389150469558251644507801527262165824880784513838412461511155354368741158421439561793310213953860905126619392111467685163931085958044689002950027053964771392313141455481115558611527387361627858255602210797101486755836644608491750863980403853958604113942081635811649657005874449928843626707054800463982951635046610109419659719270668288318541694003441293741384773918581699097845980628765400325773442059761276341686666973163078822407729446440645809532748018360718613366648064802373860096457290434967604258853721950880347583097425679468977565314572976735427511660814596389808191610682820555075479670049543521690927408430632901180501490259239245665986290023461161814043935238583973801176307167899177371801631137092521696561803257552942577119900421427243284133321449850100961256280903516573131962797890957643733970498772864257137660657236237081034329238079323654571802052985982636522532044507402791717564630322318196495605113856185713494005185899544821082395754253168397985414323379803864093980475679391992897497010692295177772781116076854223753184411759569473069878646386009877976415766952237922619020784516391264828426615460782048543365369456609815615171431949061934006277383117774975103254322131302757467090214178790775705853443111994329264071639466676865862729453024002343519856332722208361226695516111604067288969016860635396452750984862030977581873576326613943305320394899641114188882448892572212973215741090809234569297373524988720988205070966946237736385228081023495529814640949936043518386347871782471304721182571950436033876580867399635047926069156623597466351379391011984948292939075879359663279344484424577994210233132697127454076007929919983431757943736426896350975769224798066388648771781924607161876513516185893735070385857149587123453234912942576718633423050442233444674111613590865825046449043396482717030116185156398383694542793078272239090528110467132330669175860772282929852977157092017709117852110650207017979773810342953349590418764109839823050734669048492323896227983895521536022038167373458411740469996680270538264796573239464531010151201168541141585774055682321542567727697527407529734083808046072694467871605852137265727126710050598356914803080991063542482912939248378979994221324140105333856499595149440168225518308317858696556338514914936016208932581496554503463113696455119755070293233952557722357424623758693990673994626083019007898479696978020939548920238081892844436416592818751054166068493740152087852614023272836224282469546737188676264824703797768737392570403783659704078410151538696125065524883584494951358129068945815831279706075276470755904273764469082898299633273306590170756322027687388695822371119657859421003206110980884115267778137388147522014662601643819615114542683930769085644388776374105899984756206752208132201289647772348698933524976679236447872060291184290195484897968556517228689178384665729055902808412145181818016043799635696917488113064100979444814997408766609936945533239144871455326180526390845751304685012681011786466870294262855615070082118137345571836920004676933233595675455270752746828948354380712121125767497147139062020755072228008226757168758052688560608204319347011630870892150639935672878384916939692444307419877111829457214819379078553050365981689107760552195920212352416229190693959457230549112945159709665676470052070561155406679240469291049737912897238724890066749617875824611952904283030844635051337392030449090986381447372854053081938638836750538469889019744360613511119752785122809899712261602021339314566376215803833464963368026305537121954487474674776459715422348156895554937292294108313987484764363045639254976208008804681539238199779945487421201701703472030260890211250211721147462444634874795099650465050711090913009426075699813618924922159053169015231228415139914399104871590308972348766137108055994495376129239118634447423209615463371664020656746145926224110183887532801282091099606771332232318817004061094851396803756351544435675117842510905691558042550987859015527024803217102229415268113961022115811418984206949177480318533735920462771469489355112126094670244327724787551090064200080295787326903364385029154801371621921730043560293167824848135343070879167225661961542831101873335896174417765402100473036616078638022070412591697785196168470632398409859564305865066001183000252789157635114827238787457178563389278252587809045575573821270865677645697747261882793197722133337875367223009038712361976020357392652425737559017598218830955578794522661328983684644780638229930097532757451668218411541169450002908537934681595282199505195352484168255611557590613523693866293105096437279034658727942409362232666416752483321393217812776655406164908977117035745332170864676436809013444058226981938988896637449907980961488012398282197464015278506511066160400751522707764080028268852572823314637366649959111452053917960868383428915819262626346726486050156227262986431370964617061195267241326595654922550131062595616233275937355594078117293828190043259860261494250642775885613419827136650958983501243498219831341021356376487276364474751779539217782702830347245049721989966245364283256682456175139918507049329044259335820143891275885867257248090738777914556315606833099229680338950142956598299647485747037128169475402066587083798399677627142192473862398160969328160496594902250946275049628567577336818277697549913473192189831534404798325433926442150667185882965487904345552195637958153406175419986337053948041918514472791785718786267157444943573433895939934203532922348855531460884932586824828866866773081613857706822562726622316479177421094886778030994351862203123193864546994510045357011378075613741779037401179198605753846030434801269433724171764049441186396255567289308648434967844618747783465507889731349044048720837664702012966796136899486112118764879851915404702014108145537542850510230720821918061210548983509812045184678031566095749825258581648327083533289364588998718563844816779986432371835877072214481133694249077165721099691598184223003179858080553905440677377191172724835632255813828503079933778838578813054466758205199601872267881520573095708018021505488881424469829091577292511756587469647960212975206133760202053233444264230070723629262828963015516135108798013583463216756364817688176457620282512114614823185293233871392021595363228319411762312023810387739933140002162527029576656282894756061841021282276672553899987811503282638376820316142852379792062076564923295970461616070209839323256770571118160161587735809170374860106323701671195979522484004042229448518436591505524750684865272459320948174824926789745477733079706208748883287959794535760691579979927612738463765232668817480098546842576758936256722642115465561811149041341966853143867305789632222152422229393039660598137532344812696518050267410007704947259793047093920834396895108636126834565892034616675576931725999332305615889540356073012980473742299729359244992385616281904541021039798398900009563327426875049909148741576910834810556196689236273509960324500858000115148821642030701780922270037766583145563306027468799477403063044312323732284992061374075551955410657145407374431049736801850546120747917761090879700255924558918659653468886504977414968215388351874434672619962260815621728439266839426053108627988695124081985404738629720341660101257957319656550467688941825802389504673073592371513028750832243149904130092217511895357787320050917674700011706065379118924130029421252419308176919807525419867831854682007462950557873817892342960779370975238022562512629289285740061338581091459546637784559385439942491301910724099198605476496212818274300023126137821575556895491854583143524592614568340499924486577398493996246520216428793711297397500211001509456282589465368940118613699786938924461627640307859497538594058869862153214844166396016785904687482298627037935037043407836384941258737940882054944738960409164422234531621091006410020313837591450862680393124260011580083585378514321351217036634449481473171228368515390934224947679149359175780222935292358775406671099462666710367984511557342625883121183692509783568764845174865713515371652274176509971365149057869470084351545369916388166880413455873711051495704027478366039419293335101536642063735121684466065121938035939162399949870310325296888103844978241659081813176653425529938265329850004086836372281551507556350620193184943768985553434782407046204633468788474950535715219441858365150972843975479496028660376345026860356630287488675066857654235093591131438745156337636092691159162332407704850554206173812731459947652664522035873063770494137474900847882244192729621630314845650837510239452092283610862310104596425782556976690315735446938240346200887703764666189083480638803385424049100876066748380578419211354431353283564577487258300428959445710505291430444869095585622957793911736898692424399324948038145231599648699080457756306969328313574662645220911213912014723366327873250712618084698636659881011809054095877699877419002699295322222808013283326634694616912491850168702552798525813072699420379090705227822685114261862742492264906691768019373290285430029593379301825834076460086895793251545488297419280637754639018571952239070532079834873787053993658826353823102319763490054594903105521904268205982825833983859345574846077789093577245414961237275309810673079926735680202560201634391295034605153827532295718611465234292664665347814439758888805743605869890585187267048479935179853035541357745814327354635834248314615277284556645677246160414911724480573832167551548667555105888882350447026333681747371882512189427172636399080581933452055658311312630287821016260195142794704373414769978905447594213878558513032937576889934960610558755535716305584314567533319921272612728063725798015230057744891702350764059336367655447630413025741279164330894883648894396541603330767536190083975989356007347548744939712693529099502527294928591999532447345810290700672139987763883816306600442183374489656398961017878394760822295967060650143044081895962065351076274066985589084567180918677460072219621258838542522739199531501194196628357997245344323951160860722275334635434845285200190565062412594205981166562004343649337156963775191115659662741187004750311174722075385742975971043551545965797196065439750043459589788177820687553411315812917702707537483221404852869845674471079660711718271263858459102610865021400287936675247541035786093002471327957035414584592836965811255894390216563674601633256559791571092744191847807395160499710654262857918605926948009507826538594318777389337220629715690139741494169017833220451256964837538293179731374583014491849121782569851173366229886258037598271241015448370192821603085501829321070155745016209128356258909778494477829383644258083700882818261293852392462746780666932431566928622821094118872921251408961737380531906943054135916808614448628742135919202165112186478712029300978855832861715830760333472799881009514229575334670973855148322319581414470906800179726818036525920710275603224531782750909206414460268391811215046061991374121941240460701624770106684877921197947831467396459710491840064489185438016369544060776035625671203628984606994416245179253594232995848462587371985855627764239768356673641240514966364920407861736593778524323479141239359935619295966080243391224868695979274909695184598742677408292782862942118068892795804238797324499402000542479549752684530442313604320215669446722439506683435157952633432659714122402086126878596429920353668445283637327093787268528705209410578401139584592363332203360458345347279830120142177181947175546639755993259502324329248366666622448129872024089711620532735790412889217659904413482319018569391099124067561992161570294197281860741017112637087523315560931054492101585895615587643187072445221779033346910995763831512965149029686803401166353109844014568563495519989198868770557156293773309444302059501446805711481414961388993036518093478321681413881033700181651208018284380776926421830302781121131656749144259325732129178681890954596230679395332974778016544783234261701969230824488222175997046761398682136083470084983321082454246575061469812120531396917227416685024062749787287677729242007940928030656166985412541534334746337199047027923390890931079468189141124771100672086280132046457094142069994507989942664466746461835424208919451674961965004340348843354840693513546451914149342875234120809922186065497520624049730614553371440824198831441984952979730644199164429909259868720962042564775938651804444549877583650741356407814679113257082812264392876076554042695543672202167068953186401779242104091413527852753990835403614334342886423675997705475439093303106492296007474809362881791980249922537057890759757354865063332875010618357431896556544803646364338932357926099207932515057106048142973796781458780332293088912493940354322437623328805368804053290290385690384662280670696897524728236522129964868586300307557593198341194274268855008486519595440879875463654624291061463591519230038523211796926058774362157184665807000717747334678949165665614052083785164492259572842624524249517875914162548877256309662390883912540747258060337718984130666651961630824210974316301912479115143913111144276941104192627547628580322990480847062972912571992634788869993229311894713610080088557813577724988891606165666119982424019564550672220586465607842639541226355891248384390022585551442428249926621823358343123694842730268433235724603079248130243711323091190424549723242400315956134879697713725796703343825692817496542516042434968277025304576658455420674029089045571931950641439642404339477291313915618851048064868676699466858610742040895521654534993930165642691735076331991594291910257355886278318825971501541110745017433961536805786533736033068357038095163279419344239304336760900852886119567188479644309736360643414668396363768899023287274047810800139702139043659634255400853434981960153138229952011339570647456377461156853878626311314930075017880679331486258657842979680996163924279318034140552743530168431370178893112138239875606352245907248960320771194032291817338215094479054733436301634213203324882115965820229210881689358287875031192659382840241260521791493938706917555315436843174821665483819443679691508355762805347791283165587177596734845494898902761888886765893284811335239999079686783205702449561250587300703503231392827851717254344526096315729475770952515616117896927087582757165507758472722699141958160115210521423343920763905982867183852747617738070167262211862158082058849673703358813716852942997109504835485179955368849760409066031141615269014943496797865392442760630507604002284383414340045281946180686158275856309197126205855955965852480736568678406750195526640841726058493606067879932130334257705987987706060628997186099052162136493139318285969057798269979438884020020996951235144014655990694139130727583905377488609643213789822126690904841316193235775548444568139226432553149123077264794661152099089727539573279965916091427509150336446397396469205335206105576351968018155910928519893876905799720015619029444532994028172730784070863137343098162938028276473313248395860092444496862142498784012926746418993800164375678364840153859384572061827666092230019148914249556240384379776234627816686433162787395374214090265704326638464105369764867491444998033156889120516783646561517167145366806235076328304381939640069496108750258866213632269850932372815061507562616983323512634046092012015598534701596385760841290434881588337088335779408336030537503935195039724478615915724912449130102073641990881118379195514724083167160644424634181769304514975521671742104667116503573185474061928401510705639590629625825054224104435638869795343218466018297910243539672216234633784429622191440106907377445629874750351922260455827154285895419403418550796384073004664423318861019506778468905942443945341982484405175819505035337839827886660044627795200859292986098228856085454851771845729064491627713044352555324954953283191083579088813378311798486748824012180196219896250811411151154292872727738615786708502853056775640302538324045944071857802198415348642767280822780673345254244930233537641339105330123805604440692022873708788269690055842372308883064777657843348271285854450031732858893933157073358241428408277681619221047697444709987925778283756956143550944848427533019725551775897905048899228059267087071314428513318689710206814530994914115436369083300452195493018217290549565085766135211131393720208117990033968035939964112708610780775182848663607090076002641486224350334680808276388305506719059027694376775552715947689978133269346404746340187125811535113586477937194884939019177255679403898794157789816821203755208895543969516183118857933384346619146297117032193483731068134291298946254680312518360869131450895154786422650819639801015124419714551068912215066053118331962941396447180815104442359884374747244128881863372581683002912759218955611123798710421885517944990350211356679461354794452351924193706309546139730016341745810101239235406299307688622978314788137248895755718798851416912433141282967974100516335584898166944774317539123514642792572422729334229540419311713380737464211620301029337636748478852403756340993354659413579294031382122167910487864888757174804884026061392259987494409383623230862248653404885637973952339461393611929440941943847133998579396396080901049554023742276293388708212223052333637375785932264306279295588273981881091026172240960730781779973444247272270188109640958971766605344945068092903877607160740103616408841101982709696079908612438074742047763687580697276078049050889706596266085135766254512328609649545149703064990041426301873611837017378059442781777549129330612030951879670177686612568965763120717796278168042118534366807445419964307675336652675419059170272382949912290340785594638076237417206873264105788670217436639313218931004082584270820891709948446678888810090798447615581504324533789227006484206743412315246626850842658700251155604711353915443423989807793224781643715963606971612310243462640155572459577085436365989517225611554884866758078490106599616825609322498655997632958558726072980926758869899744769150560942885702567463248003154013068460819269217815612279143689512452148367477828686629689708357485570012695986243240506627184651292612468893380552426359962968008121124835099671686911256182244278963974723915289761100063360146683595891967301555353613856877523908921022430270430930648688840882671064658243699371257047630257966389529762531191678375292707072328020054545953024075151707499586846602402476740094321833699482480600096941935940728988340759157361608783006944713061404727129906954635293969346317837781092456651036583075721006259918511911980374421807015871696387927969257159118118556431199294427356116473982792724254319033391556013763648962488144878105255104705872051521808922889618271756188920812056932545857338332999862860814104553668864628843775402777409211335802864770970069037820269329789994537681928993071324832806942612101012895399139578422446815751525638999832927241992006096701568358425540973196838239819113909498787597426257188560233438159789493646069361194770725636711742022709389296477792055249911784142820521399533951968967603722318786749396472469543800928619758864264539864954245216884064011476522217325853135872334852930151272304944714227455648975610929818425681915369807596527605391183340560918680183471343115102760454043475309505941179686582590725285092304426963880129421808268316221355641952355390483549027939047816971792710854536233804271080344531615567532222860541846704955674155011996854067627101992360803030229773186616210886016262678244561864562148656745503552172150249029055034654585785918390930343501718684576234630036776367910099084003392680238065023401184520142946892500665248631027410767654016300060650076810106161851667972547357515014959560733302246976370280809263959923607188861340643821142867832877013397480602728633167466393490061671030045561435410580309856267982922891590337335072267900161243046519323954847395941715970992968896361043759907343097990475071225175542287894525258475883458443361770956185425981299543286024789556933986409777342796987547472731018886725651943440622917481894856945086460557441880354528220826818023540643180643006804469664500362433328566992726302665574371148314895984226221059543248620757811078818338064651338515230161540609109989827425396294237908134504419446641079674936496491503865528719710277950900606267684121783788497779000310963658369697199692815543924024023394670932837402399474442312549430899677486987385236687728654598570300401387219717942848703249517310253729201883661209493908336179683083254727511728808378523362299312729207556800970344986660332900149683600183317882286562130640246968428272799842406934736871123745098155308167520721096870015563365371782826537625561328404732333585684505874946934875392932667465292350158933960196618523913545375227409865557192380181777625815106509698150106654734575601866277425841625124960538435103162346055506285555471454083822067073968944652006448166650985007842985593379154897213851006735361713919278642116844178952635659646839643473511424009695760262107605036007003907320642385137673937809034973967292458749542951290131629622756400408270162610493795004190609517227105544722979270972560242244680351116171016452758445167386209721378081196243673066142553325571004490526282956737820351509935183362609625826330822144241231707152577203500887695367565499882742174499662535923922917025690364864323055374866291701855865330622655144828169784462317148723598340180636007646608512279625895376429839646841675919566621756489238917183480298518439650763173470645457888209123232080940629898730113256090147559577509652202605516567816025868187754995783683085494346711466451632218536885824102638429971911927160625572251721204391477590240967017231105017151254652978031603557107324371310153541157648250963793978236671904791214414646542101233367614846432240614713972907379162096603401898568713051937766160731481316332218186998259844925645543777881793942263840760584847224551676896483291273617369868204605456672681435171481747630554838594192758421244389552880285142101317771161986938894094563233605538191229600241078236581269917690900760484605613448309432163339235034448011433319541381628937551335290306910898380347468604407784900058592418230786622081238664598118377731845934639893302896172522855425549805550770359257007970780389673680917315856178681478664526034602092168621630556346863792301097436509288034262851607762483646811601606095616363067624612773758015624319041789432499065792214950232534738724402332482319860317201397120664103345112698824330985673719182272787766164666974024653909873215136830651064193037123772135764260932731319833230100891604948730643389769093479041043109616017791756804109467910711290383943596220847386856374984612331545144049685381468117458687268833736146381227875719278062441804990006650211627394371065497629891368214617517030656605786142338712466587109321783827530644556216196609330462506872264539800012308868324131269507353192579059535114247286839070435078518168936495072486588030995567263181389552911550387747773705095363760688544122792963224036912093028765144105761226251813053877177843707681390031835534759314949506468747155671044027942425010861933419161796046134418475977687071058735151265096212359425658617549790220671743695527308580802858084264219355826739160453141575348344673524376011944962656228875771224384115299002443950707108567102536820305183570885071043855515579476800314327310523537128708918946492727040743526133056092336773226325811794588038448383583056317643419245465452734285449239057923893943614035825997685052469770148278954446527587016939552511772910142249123854346591869799678377491458709309173555244661018853078796788560089624510458168632694445807050542111926780084090629242114785555378083263513710168623865142387216169064103831164033448169243209633842476514425077121509645707181666576056134723352309527585528873453972396354466548298371969415024132070076787923527411059296010435794605606648241871989200805453385239881570353728092055476786330846526526199621396787939578620886442293257574353975805498814986840218543498002571022364733673867463161042022313971810829159935802686347345154425408446631022756690824182979433837276928645120325527165519453261854230187800554832845025683960549710147499286547823701685223977274962942270164011843612478309079272417446299882169203321935724990707237601107881969112554851997137518085269499988508842378571050976231870787142691525835725945491312210273529251893632862732996647939158824867461615138600726771487399890393222742355767161949725000341997031182441770223823504611047268002869476707163030630720353866603852933097452630948588362351823683398592263795502421718833357454233688261728964203604527340119563888947968723352591486002321744389332785945159407007281960680847403482535125014069681056752036740177325220015361630867233795545839672546631565903454598336145461260445590820196718990863226236124766078745797879823922457474367734898633158612540190298574378337350391503727127983626245469961243996855239307289244410074571743182844794618684823787899050537927717569934436123033131368212913377752697169358741260014616430383973188125061902507446892711027809367214645885821238170390894687179579270676677786047638432779611987141510793354216709840541329492302299240820714471670280772323039565767312044598844704137187432058261370504354910366167487688875699133389915449340627120195550183472499676611655230232866380740524663442131239336722131957020206220337295285418533298465412065233395580163658458886435997419283976660279894883239819237491314893813306044224316399211184082173728996056770857697497026551976502201340903586264054908227359280537565312453227424355417196825762801325077979604612214491799263002708906847209143535519373839412902519568926800429873093286872253891557306803487760815568719684168393888712895317295663447376061332551956566172822076043215554808401249183813381231124760903994882135842512528284948516589918471681157133581583286372120851000222400370617078909853025226867728107031619763369669508188431574986855289619454964818013197101463498084339432461744356892992984679694988660373180013334096674251614726721783307247203001688389277144782875908372288857695831095900215630025449011271731825755428752965662780180216497915922985989426548148719637409733373401539094759102679267752890559274352818950335657139795343146391787733795046287103531045002142816534055943643049637294746020946790466861890844022288115644014666475023723875806273797872243963403938084302609656570144952403376076074921880353645515639002371514800644391042840846760628088093816273380514230606308974364790263532729970340586532275071336851750199105507819558680576839036737796085222882290844265278805060819193927666269304688859029311044075562685334017034337771423829994749070452582609083184045804273324638421170362816740778078671164300665206878833907088304584017951586067433071293986117078000591950113235390213728493483200061773401673504597670503022407372102375104332902211926485818212654704508137026526561058341985955445146232240296214011308323683086490604722689145363685174024664238109629496728144648245002790055396265063733062111617055390053504956990050102583955897207163798080488813243938908365994888671017368156728980848137275449059943294428720954889114184842025427233522475169697131061160439089023305598155582447592434091082525432652270636544940008855727250994978917303369011857370622022964632513766598757056097156115283417597346700592666199028807621640026633030727431517737882037471141265954241839915880096702244465143798939174244617477055081648616455997865246109513594867220726088352123707821463155876938103867560725253530911325142106903304170274607364200274392225591745981609121246037835181153880987970450825872097524775838463062247530067333355557410914176646053333413178251343489715121239740104121832633883219836685163868370218345838532855256221984386560716423371341830062895548412562671039461734259208530337660714314382283185127214125781842219533521417589452589136299029947134617004241871272267443101738661635124655163307635440336354969121321972861032036554868970252603051062360924478316230411017547667129922579344026181177516660842379520379575723245105221216431738347307409624820523752297987143153685900111606939945907051907624679526453241996337657675189837043376884807779043822011656968243701723388788755958579467765121395324669533886821998604149698188196435997882228938848108655656876857182034887937605770254721969400682570915591797840588814803217723378733159223004531083244183250173973760055897181731819266406247096000159705836045597611651161492307540408746772645316444981068242409489424059330187031865042911266372080303433073134966235166566227550435218159414555970443371380526465631838840938475649059186665193265135854197826668749819764023048232164886530095576298776548080851375200081295010606983030391343587354435736907600590525122053398028158597555562835638458214616794839662859190076454375115139106178322796118201424051508328388222250266361996760685215033368201738276945939125071768571623361344551845824024482206830703702833894506117976629004211168190181585942994994310853106931466249467248885803700833370316946123219183507495584383884704591046946509356087291782202557040952557192477612913841882155374319160032322762273769723200334454294044776613367393185752081597604686732223448883060796502039340262836415919886030570140806091258571839227012982717477096276435162455243727232832314523997965524477569850481468173652423494748114915002013518771096406200754522791375485187106203823622438976459768199822391909387347974932318179457639835523003348052999265099901161593210044662420606470551303873019468366951817894967670231058149987444809702275482336171448869765722561770642895837698050512933416839603620984347702035866272462065002377868190524299105667093005419516238888052039802522980616450515930727925358989584843299249818919829667566740651363028480249057344567381714736423484490156365268782904288787917025506857720099078448883360684287660269976951793824195281671008981384751493605661018083958418134823138338887978395369497157822232252521873073521708405987773705820746465064948475858700438003811070809451335493126621994647100319653564788018585382211995715645115206147620954192707371218466803872546238395042714551254071758290276968361513651910675386168884261574976389049982260141549287311929729196470408504867021457536125577980683011919527422162616606966685374305706955733502082973161177764496670786791601605641389893202935833257829620969623107063822562346076114065948940175669909602522901156345252558538109407467279306276567306009505067550649406798492068297006868643497175735160453060721995977053792889930028758948527887695000550193295044562840761294807638276660051319315224115278243829973216557681497101581272679478743751876133823608280919067296019346274545220871399704290688161408210930815464925896649137172782562956055659798333495436383732664336495763305047564468406392405751416332474510327083520538994935337929376822172478042670816573285760285699032215529539999792868059312147786924395652966484421350278860123587492775788925856494705245063541366378981549256192272702510817644605566155702347778083545231301162082819322907078076442767169633735462990953347699254641678573946856531523763415625973786172420808871157623089922948704518660214116231090186720345333178450360880729819973034880622315370261665778380571008246144838452993198414291947916125021043245640839616806795603733202245162693751658562026228708921101946417831131242736210185587954337416845278190648853924098032066131281272806638987850774874431795355755227547700383933139162907657876347326061823465023986665617115219755255519859740332218246918320783124385032340473371323885478887775900205332300923698772768252897591790760286894604466372540850506124240471513346750271763330650845256995146517165182786718428870328705080057448749468356590723451217282476350737167307827685859861787742496777398233833941913861400683308941606806173386530787873199503842225191988956343940640990972469103726664463484692743324341401868310562871792196475910638983118606792403307222870439933393139528697320107261835146137430801256333342409277065016567674336994247717290889712079833179719469608608242919685338710515012722977686272878946525129211098251857640957432827511869312513187982150776174963571497971762698692842988994538302972658232001383393501883034974199916335146161086280252663785221361981062131777993082168604347784553155355467942448909621926942174453183870464290482000669172019684617793570618262903249845140937060488883007114082977533478890943244142576792158360993936159155075209252236760466533486658576016187303139951135714608429702701930820775839672289712350900175423841272663322205600741817878493432018859554100368057844693277917174751017128311720419554984526800878855892442807239553499644349608968496386929752517633163172927223013345704931901538106603828987931848060240049698343245834344143260424283436436625448455133948708033270422980687189392821219319540226959537327296193473006444145399002501974293751548609897168886378709824532075022120181672458663785491040622624118634767765907364875557922919625907766433537159668718066323939794553011630358931922976568420175259664893555079326266421035184295864142543221482299139012156765565386700935245967529328290931048046146453742747644282404024261087683001507903276603167899544973314465930150418971815253973612441909727025724837212473918171652508138345196652747160616752539987533075504051681799820386170451961428964757053241778294997415416102989014655818914240029823725350475252123520004528645185116331067192215902655871551389968515822628277468227355562705871271576602578304977836940695638067691974387115368898013486589030926368667558050151277689926001283353897538100449794489091219207785064761908988850631166636503020798954845834658421907739599029593604969055433276968062204772518249101098804396973048983845291193738804940480617497003108341884294003980432036544568664045200038376127286009171720025996106718447594507859726985022171697160705979739401689620539468482883440841058336761116568699340046059043044869138728521679912699905892292050395172577132625056212525136000795530292828312636452235906697093454112400062676534418711217349243088235308520055097083944696256510032632423489498938084403318487643475079766340207501488134371323712485063662277487132961226838899464263494594566638832210730310338704151510948237121703585699546840293494973902029975489041365730128601722686995559815165876249155243016463138170840247563853904722964534325595894020635356186640191185152403419816984519763416025303299782026358900825092415225680759656999531131917465310463814361749640646445848226441162920715348055010651249754730703527881827593399252366938868354096427032293928352234624854333801897670830608713560358664097345791577211121024776675661313327307480280129603366577598812560189721874347167996011497967478521334708023880278052114730552518890817862214367438114928673091302567526186976239589730961679265358459896368660553781302962228949254668634927128744774141145733971987757604728288609121849264805115196358046876283416304183649436605554096868133379640587427434193378698541565877341991116833755873102911318422453976077941003956647095709185854364466183433833338171350791406700965099961951657780650420407100104095243452532906255368624272068956947168620973961626167457485514095873903165330151370987220784114600768630733464846862720086407791563695963144175449177310130514133525241723707215284737898820244848348047299054830008883769208517688702417896666863362591063728147217294990005563557871400532967443604680545212683621902941322875701631322380479003522234697539612232070589472351433208338016075471565447667861936914233612883658593996932851025453991811031444431192955405840785127832866214662769688674469574349240980113456757695152571131206704064451468519655619859781341224013502300219197110131544664534745765713682620839946117300180062463619420464237976599693889527916680163728197755276160757282460349086947087792646769407475066252191229753694073966303898796878084097618577284509157545395871756118628350896718778625151527688486170466945141890309805117054464397350206644146608714789752939481007378846493641954671108780773340089383196717209983850004476774049544815550232369731132041306963082961889098408289608053424688986635074100023021163659560490356504701097603715710555375830995472159949453892857603402378628502984202985592420180267834111740565463725578230093214873893365003533800116919081538760396634832207314980098476757754501266763183869172052363988900265018582892103664975806833746975397908981604719723241411036704118967504100477045896408659669701824897162062999870928998921044317322891803810846685506822561232153006416665577755599348957638929727793677251583952306830679142301611078791743472685930735748513493154026354686594323546124470411228870039491502047166032793313981388175564126610781351346824476238451493460127232197510916657605541522246517695518562704570749133792853796954519905175167244207234368709498550123643144026195941612596943534630104944341116847817458409817718749361688866930440189413038996029472430599222307076813153192786984733251477362822571425218593478977123313821299239120752493644718993544697898291821797512390287774102068947834702108622755858773699271728171295034799717257818158883057090792932183916014365258902748107758655966107299500903661047972769127784298395962979811496117703610403310526130900612445196714679471339837724363342858942747319829297454563790884564184946053210649692220121891111318817208866507401309522623480940963559121289733328345587806288112560642676615369991955688102090524353001870101859065429606086505093692401677319109977493777065466208359876970802575674998737151644209438118393624360097943376459492944817255081697220572429088588188113424343616433691973941336029742450447361495499304675919075268011340713193995812660285705413664177946982680773927813410856495239580410398731256906166341070558302097287830518619053140652970678712860618306553855404917257980380562426984112111150433762685737612505678571704055026069553342765832631884542603339509218772527160037015040129525280230496699823644848692405439012820417319312597200519773947656996302532115718097982629139825733086550934501750573217801722168056479670007182731606326432672056359475006797211008954381457170598977532680697025974331751827781865293175602342917643471310436959780195529800923278053329734805239221853083042826384508780337347219593755586759343242907147443677524559647551485881207020888015004074710324761446398806936249778771512130804319443350508244712304362627070895958957831039253668659423952432626178947781369404147714035591627611550336786412838275403550470688968306322979976672080649458705848935532701161820910615428507836800655172829998638290145010640520456382663852971166490434516180389118784720217475919022589509912729098986482353343128400266550032517901085796023431146877766574564594682957181440788645980751349599228506326340191571938728139535986829558815420938035753607229501822666350739614569725838784771723246686533941721571618617717310335263212481020528325886795875235679138162894135369532851233894432889403039361086238296750098194925142567472199199587372337180968396938054367141337815720996124810135018773626425814671989715732425010809379962189017233325225508943691200955347619343090405993118626601038447261114298530521703745349384596260662105409687363440435388650096585710546058944892296129556225859372554127949262898604068151973134839816831474312986695409276122091647756189324034372013295734639758835728430468495726237386544154940299501222531591897669267198444775046592694458517467246354843681955941007137357250430398827849638389681982630413864989486464536921410302428335241341956273389700033412147319539159700315278965144314922852646437167588087465608710715799189161501773447509135948549223730462545518587603414988443194334925570324788815540440360478905952199845977285199302267970760562066969427386301063915759156557254060695352131167622491852935024003084813016983369118669617074431136843588731399330718095378817158086795038176703146432525999796733144302567526343978574646414232957605391985665207403623800825285334956052707913225920640083806529544520503724589050070415637091426669522450054563902569332249956834296664058721267180416467332974113897007628430956837945520031605710008775331421759741054052450970436818134888816732557344031846312285056964027504566436667004577672647055541153691823654494475922071756990377174882750909822234234186302174489166022186880508530838695655639792440531272290849132992272377043067769614051579980600933634533683379816280473625686434718930710047895366278693837514525891909010430268834578467641189022404715323960670474984239574157379064169170979955144807790536527377755796566849610562828301948561832164864209763874643555345024416289155737729666995901221514651286450728624688237564274510123406989121925465018217981144578299583020359825446000943406712366183757994123084734123335934011247841422171278366062733307156629795992276242734406626235171833613068486803468627706224349873628135452339009453320162443379915601137787129410133540532235770150727712036775587351697704051619336440655222372767307561996191920103825846283258635984350511965028242417332675141801311156028964886017045420465535842557125832403585804702412471316387164158643717302712665937016008472012266668238714407638680108507688935140946505257614212415919993287726081269973732559784567082497828190112703051299541629958578569673865754864104037399402018754419650831989300604782810557924383836408622295344337048988643055226982834884394100674666963646526992114520286115608548836446090839242107407222420077705946766201855379858690676662710499607025638710192760358455877045533988899059339146852568797890045005328329660215831233769513425965630415840933171019840408864373034107450902170394031231757167723084339069698863138644478532569581826309342414832994080285545325251686131286632152366604017839159247190798890645038499802333657317273930816538396914633921970923398176119621309442350908666065229209303405534457614584011804254848784092852661231883307005990038145578122873981569735920837308146505451718896423436713071973381697718196535348320593928899369638513240563277986548673538783048949015981287833751684273885609694160439834487696815486401920843833531406506585061070964318188369448271775709812520820732773967610733728342720907297981733801896675907527555602836161062120019504952647063282501954575991203998254229889234500243645680887079009898927816832483321341115843459949215347692407713546841122273256595638703385646419452555881666441320185433357046965870107401774767077996925800731105981109523685226266911147605374180279665213717155017850468240557212388664303627325666598423282179244550763503372286373495796512124525347811635141199696769969197413588006819931589094213765811480112828410934516955129604516742658154957908821222681943804060847834610207289367094188787594715495130431409187432345749454660058710143476487590181261857694903964813313731378829799578953244966725021061315720440998787156682794749190672737291520838524466148487964638803882043057774515358621970495783296233396598379800243090148316365760775083255508215067290383832573903843025396008273644318839199884315595774043093247552966849622347529265053058503991857251101829737732463750001056664549754076786775061588072601315860373016028605529918253917304458439390345451457771488802373902160518723224740983352226013510131287908674487613254770627200855751256208866212526414629699870102696972376662526356536030545038533267343100064301287619413132844445016899398629548400409047007049344617443592685545417102502909682768921585479278690811195174422196553137832398188104535327512180615787562306534944328510539511644734953780700395333798563302664351255921936829804260203845321350875513402488659073457331906014763429039816592504415346886831074274474824209778922267682731185700858648105930563716682223668920711534341419600984475312625772604437663972426354312413948851893747317430334697034963520047544660615746181004676768984985907800193744573199599582358449940066234392273309097804351618346699653307146306343510528964120470095016945120805918615658559879506634595470232200210118562631652604336074272303591129169645692432569167599546881506608821854072767167430721672151577835286660487552541137291000537986864388720478477509195963250599985546086892907052455631390037774342363827625287702165790489378344520140409852231138340966741343186406901362125110294415412124380071407542204376998856895011826219730450795058105259115137663882349939736222044512841627465245486632165786716958518324437361702365263426355724165415714642349168413057907027646596752193244919201808090505986126486625938842340132715700133534899149948564812318533468005218311542054671990943219044226183110677321423174991783604230787360330844598640909034373885673428550050185345847235761715258174576494600800856308677691417108329604288092335661433238665950936240627248003612175991827481850198150309885304481325465538854264091101987473364114793692410422625516144897438982941424658175428811277506597274194561799610020576680251384770023855705453157965494693608092183829652506875174036987280782316999862038359845084218878245220615459838049726255351896832107015706378828235901489215801160381285897047472312499916427164388178028384412252458834032905684472995795971125103118260733526516889129295004970278952522078137545447673511672456670575111842049789406011446999114173694714816502709614137761575909523395348199123199302316705079879902161423730054735244766702870707512361503246120869200631020688267155071087380437433471704737934609413918462769484283180470503493297297823811733294051632470608871928735136772055115772106602716457933834884100790126320584800195712360232536865729852962962777847629161089939852663333684945896245090054673460814247551219372526258443521296230634534970319872073307274846308364601638086976763071560175700888883030701401293860326423739586788918623313398119060271775647682056736754289451819634509056148444699368468568117683297748713584682472880033585851125602848254611861614854363554820277793408183458088237798024214710167001980062984567474655206373746723678559683970070434804763736495943255903307093182096331326782257406734619451328622340641489315810094238458135984533310314763660199884539034575181799089460725740070169568821204804275236296055223906154085397789462867983461172617178545442795687718067983348498570781080861344594684743704430945699739542738530821983004325291079782137137338556919243500572348288235117108879361047824173662642759804755000709452141934627930256236109623887380574898530644352236323253265062969891838496390411925181300818048377374104619981202614671947964685873796182243357254419411532419158338233650222428224887021616228565161754988179423298073676352626684108792293539349670545311588648224973111183346134425524361006416195463710579545866046119341069569741752954771247005048855151266405420240526419027442956190513437175698021741961212319787532589248155864804152745458811519649778449904502124434193135489311705896732815463419938185354605802485891626528792962734445046487035002162996528986492507045699405583571309604617717071798656650368948885723025302625256569765843804787861125570610281591397820299663227235386885837183595602094885483342989895577100581429663212901270268877545377774529599638520023560870094528323469499828923733032383574615794491815749061127656154477602647114008142935783389860413307531623063378157417411639956532274343758317464793960625420850160113392909286101475662879920841204389860121081121706353367709701302610669933850836006839516358048338261984925327358643381386631456378887335332461793129198823307944087993944110560367148225408474988510640574870256345598834924541939717663067860003623132008852974040531194667108001186101636339507932926496935643910247276877370146207324134359896767383397965695323577487351552720400064110665462092836216724170572727900449770636742757708109677542985809426656028013694756568355868669766958034982794319676863414959981789918462998657134522177315828432876590017714002947945632854768695795648843372015349560674079909078026331941043669136961848987493424309495357352083813927401086636496987563868493941105210073337042817508083281398809394928326262916451455917142713108988546403261192793057172186796900387827393722712483637612863045839933076778051476350176268707077421945293895782252508187674601345081235170342198010031980225550771631767436120823168119953621218644497466728094389892090875973534856951325321967938727806110411579103076908808337027564985791615053321306679528838380527657495848029188561946386207696999892927969144896262595396550982665479606331540184041052348512461879850642376568297642059594265123356854754862816191619466627247739094336748135347678435007524120234017323313654009003246489618076551721123234210652160707659242681080613851711627644062591011706541849191598134944528450896859892806699113028845910118224702223090185208238175426135166425790070181519394337913100511300747864464081850068011346488399708842204484944859532861974990724689618098019956804336448096771792227703251008525634375044498899113951388735728775412555117684548298596924655486079105852101562757690536663181975260977162956226844379400857357822279023509096638118596347455908475142722479451643953262581368809533739942545675454584085589759851920119037092497811114783438018846276611695343686907658043840234251779461621001627832898722256603950752659831176867246714086299892429318984960966877261914135423417732249354242048622633939587551019328399924402823256867579823208718308655752251970664578687557321489898680996972453187088439885346364678930853067789665369702846451700441562462309302826162226915148241513227280783175209546264189437728634604849583689346203853787081839849581274692642018529945871726335539465343588156256153029209920218330499808102404501942775967153039951657083152633715012966246203743324091083508414341820209417597877636875140044304828104061516221273141672276971361169027019617112519454846385728417547636111668807060665408471687306099444518536585902156485212861614271508384375192148510538240040984387507971266157056407523189859746196222647140248067450562092865061359342653502237002672626418832019843296256153282956724016384443177999165200816302928394023703566377328248761557264735446112677832347741330101807441703963751574858746809942798157929580556591391752204332891145521131630405826052796434083324011131406057404083428962094093786162068525544878328718296361137080845858975298926246640288128874050435809984026613555398957674863457970933747187403066209062690081590960816706449219590828419643279197120144338527143241466399481187425242150951540053195034588837590594750808934418450417089114121508081874416433983975211266577671764862751115454454567220657213356909949110092235489211139815300188412740851225731016193274611307316127827287720055618133917226404201269919902229975044482618614513922708229146534856462586632332882937423051203972112856657436138965631500732534625642181418283550928752349032231474576800721571025790658785110329311312936297113718590573302067010806963091018077675090328684431466707712019848953414248697881970453981431669099114885753000667944739855871289149615927745896726889762490431033273587065538703949917108916861824193795509750356539877139690661507348796802930844630255968104554516430198463864162236062068955756925572618616469803230666349215585775644723784067905405432789175981202625622077000398735513518320646144077376511543154664842986618156067898984659675906749296278994698696440867976876087721024856361188803607070087180895760675924781064340425341408331197610901549029896092258229952623866320733862170808748052460100733355529090856117985683844758267410949228894760540703638937461442397929757734776893116597016016249115109831591369818473955011411491104912647141161548181021711041722434376407398678520937602596126078456810550402867898573718368809006199443167755376358932310652712528593871123115862782899994674900268183175831944263210398841696025278371190725232057392952147723886649152408130430437070218158756237574967957441772569343746000490802343934894302756355476701483812927458905977531311748954268450592674293171908075777971295854215388416636793651146218098885409785335475829201500150591034129366346697391195008656311860459293777439558059484995000917168094366104001410832458496784055696945100893005412414251496834556822001112923385929222545070610066170545334141224184976935486349008087086164895571409852380129746816936954404614170988005809456407047006206080506610881693677183894766497939479751184332158197368076023159144923321413823529296368425412658110739189200551642890990493151142449732586787652955009400540027637384340228622396094187162706941476523989807652036808381300012600219895036226088583046302339575341113684979079498675387893788675697066367392740930945668717634618097793078831195084761663642053976199070906056134251607152747275739288817456543284070498494685639380911732720911799949767743021876043192768433534873154276414838414367862957482990847340093146138198135927200002059783733917028404464840730524973407261306106217281225355761761442741557916450682005745697026835634737231450867584723258035527361764519657521454755918155354313244841279864530002725854094029460913779428632525994521107246704329588373197787182460539027346391827246653123187153738771634659487537165412738170537964202237989755937607268960173841911506045224568519755167176751388887391819445696531675901829938674159006908223641554857283011317976368502855644408408241887709924760131457666030180172762332798523579817965847274393141836217108713481392575939886564427251222032243096333555616185827973551783768566201085479663565258968250227391359256622689906694619349997462970659465161573831989354702212036585411821232996966394081803146335653922821008074497370144170070129770010788256186083659962937127108589531783853067771780801558085045026760357666265999465046768275160288155471421578483300968173904871907134460680592130173363989068887529638556416690600082877382856006380489297707293828268506034018362138575325518273499306008500297543606101461527011017903244013695035988253847958848875351218674379383740399875424854794271571178025947095293380646398446908266011309406363131385007157821693572543598486714217549860691600872313529885463979283835355422612996270550351083434965154816190556197857906354674113742977972306968525966490241081709522755589902949279186776742404041801339791904665691752964364781484679936231086894123912682988619812944256781119412787725808896079514987669408925538671028240122892812525562698523856796022440875759414980169275050569737122803658105826710967993656559978644906834198287101044830319272503990886093164465087756200338981763465360929348819333746191075313499486313712118307873318620316024707134319677904245427978410622083287816418049421652321523515445108629941463101457351348101556848748492241521736123211770634713018777000044017690069995437872189340992234379439251768910281663438605238572940994048112181513308482613450613450224958418477338416884303973205146321326188716603953849238501732528722520521675552643795877823731909570622326875687072503843599875894486293193151642390975763036308568053577948020369610235921906166729762597998123713133627859615746698594848938749089450061692755833026381291020364795867195977103035490164408801399642506534480052543041389621030214924893370474910276776092710530524687393596065285504049862537746269495628393814783820253019171325417883947485507149525823479568082199915689669163923373732802938389689754877418323105207814332156499701360133779957953020642615179637432097907245174134352488341193037461187926726881288790346631544212198410216814749169316253599130817870266200533941569338634790433449272575701429500906787216031376111200217521795457298434011404554192715588644505118146460823068135456765954572516682182334962148328858972814803290405943405967837733942461990827398262304674500968369274966484104650293988448904020449790730166081446964687395692022340331653481892667152217243329128734869134417578879524573231813182337599682761346968390761328923117279767685168858962387149243292367415185726196091824984719593314909187315952868549235018644306993281840401824882516774394821163610196557992731897581351950399162919727754474174495926244364059203067914826473539251640168411171745710805337729633622674880272462837805549911421220718697448943382454103471030332136070704243975943932609341027027101044083488714740263207010454555791070466344742796239304551756871252833981283853534057725269687873861149915237254977994281237625819926195519194819504162160583654811012357800447147252008480596891911307831477298546229251716149701285730828396213911087353469759979256715323289813628980518867114938685406290871454986701768511185512348447031987365577786844421504521900458592645740147526487636984847180440619900256325165073678583594984315920856507037526262124778220679907848066994543876826631619880869195427105333018178452933019046979283902624667631481598515676109342278935803859184285979729609754934266644466334836276226023846255336678864977440396348226951983661886477209517300965116391348708423247576904960792791693897099126642778064975198843028641778435530219352664829304563889492764829284400879297312045744315930832817529472920073825344864562752598381795721170936680880661958353415710582852745311473031621005016468546331993310185715666115209023532202194289989603950852419915984359214605564086608985260893431452926067793585694397873321139275321451549548007901400087731173271210949049119576155547874996844244187565992134216442421782179046390708089028926458109276090347805269113343564747383505658468620182095065413596319842254489092900041442533970270768296391363789230213800942718071833933828681490924462652184279742852406812597902706450185291319610931909183548494485706070053081383784477104819616672106719818339981116639267179206933666287021360479887113068321050502906365806054102170226747512456343791121097935826631054123690302778220406505750056399998082687506129314154496230452830255785873762492598543290390795143830383471077361650619407685542661433145995555230622046285629473570606222506464426049268774566630569945095475284245704592328122955375711200918831510411362864758202441192862393887691344562033431332496485277766899298162648624264958785096008459957436818230668214012109382235806514997096013418178666976222130645143940550807148516986879433349461726141092558627635018054525013370190748489419004443127883481117914217591588763184167823532233779553488284836163369628666829563294376692677143543331001681594447354209460407782901920741191167729616445989275227052200503581815673119146431198244474556192381322802748978445198899663112304719638532498795992147799142897395314542817166262173023876615161055062088172881286680787888001371800863399869311695054314832574675487467711564227674476381461796178489362057486196318994560049271657474749787017343852612176863151153226501970009202798936125897426536084058496127520059810963338905222084942178143479721070086071145435749480419222952776967693585258957331148231379235447631110197944412511365883092816447707968865755015291840887206510653827618576213614584526533483545858344074733919637858472673428711916300458554262170814586674073751392113215220808255757009608632559013053261416068442374862485865829261150230292370270598661793203475609463332230928384036529623957820012259731892027693187129554138093044009948426188719446517875313339102678258996462704673426652664982562766752419741391317302275234661935373410067028147172508749389792557835410377005208192197938095179938524135350572931976004589816221470885561203992555918541540303739254731369703598245217251516261916478736094365638614066948831925428672668150084274462259503278076233882217004211973494038981753622589170951377011058280101587784781336551055371743722701621704893974359108157219549073613038844772924991834249946275815853333207277663718648152436639700699762037203364092058617747327365723484533935813275242135467961580577692008943513105319741714778439699868536867946276254353287054896375719316483079248443076870414894234303593956550618495993212477612294487836623232214071988354372937716003650441716249094613543735860119835827125914300718946831022087225458715988680342692689257465362803443268353012810662235758295287239423891093958019953585026547791684220466244612650571747879870404014140983875297117585182217664649176292856033484096217446681903518560923014270121017479037212466064627687155391285421174484350358306257036312598747353407696236114348354406482478094881165113174079519711038105099875960440063043244839095573690534312171968626959365084549537993088364319383456476423250184743928388439800164377100208870083819825170271242749787938325018763439049638964080131571555865378802657769358121877025144892768459139484897319916803918236817186037035527353296753434124445488325392069672590826220546345085474561017953785507365417267554277349924471956310494302741855291279002891849305266025638593178838625102422876165133538610394353438486541620442245866587146998778911012975203473367264281165984812589451206991277415868359315873010323152269237399223288429716918845944159403857755502048229218589214800462360244863976491476632217675937667096914958984435214562602672409810348968651756301309141458524522694280616324121365640301597791792002521533001329562014433767158344023221088295016508048317004947051032858595595794601710421008755839122448763872952484614970199054193371336081772989210547092749519001485244224130591565381541801378705399647653834993129851561301337751971838527512109779577202496565891447736019109792100078494126597390035482189898940421712451452224826482479232885200656238954671207056497921335638529949745284955425239384357319876736091325315117934194906552067360572403135204881265599531573687689175058346352906727508478635149694517167928324720498632267763054917401491714856787089629569493043133772044060135969943713139174104081605576149467617203103132268389816077787610737703225040344953971034056933234317604927043115557214842825963280359078465376733461465693072473572458162845725980400588425651196050974852204115145342392185839853155398549446957576657658095364471201687163757522239891827906582085993978916233048833707141219733628148113768732339473981674879858944381047221515723571935779392557682036762635581480855169853655819530961022577412171886737295938293000060102053458282933807231989044655182868701852273683567887246882846011746529945341997623440330076192008320379853759467188163008415721404705437470241587501904750898384405859752235310276611681840413256907383745332542544969252145080926436938751852609423360704558014157064995196038157459505252976446687833470839006151866532319123937159463238946224577994671636139241960095592196526106568166900943088900818582259901266942561601848875836079465218147021221354744383288767413448740697363566468676458595382823928162603286473913162136043811484517819121416034094759459846891244495683026150993199866489318356586155953990985342314154866630258256743611189583477341216148932230245466498601388744179355814038127234782040317895394053880930304119719136819866260779617569242018313155966280047364962324219913623431775124533780711465668592042537798717255713506428232370747483280780577406010373522393589345588851025383906737188752385946435108878001710560269214120083695971456067882809932306316901023808026707388662889320786914138004984506618785942288263957711749200262838020855981620549184589796558959638466725572493111758576042155916377124810418772815542480030925983046423734399149956157623217280661562568055876687823312876355955736104786155270658434504432906094077174671300473399606250608088564220617811560843230824270222553616951134777747040762177014592611356415726437284333409517207914248847449718965643073189785803832586315336250991526295685699668926823042349894513948041094566439550786246347977831272039587469672443350442922289846353579407536197858560608124771485032479233708577146118835065655984646039087113915978236505447308916693853112357485741404607093421780130417410996348400110562196516308770564672999031772657575973863441821822796545659698204687763297988114968855009693066007918935911137428151823917087999265988099259513212532270120788550837602740139058917699695241567714275263571701202046842655946611074284383246838815315810781685784110423833832145237666114489570001636106918906438720355637362312228122587872465549992616166695501681123847898325021947680510857401606719269730011063741074671141424599361287414918499251664147419888304210016440278144108622331541525117457505195792806979150511126961523538657445788889858346237382557008900847133176705354247424554632012451021748673599791504211582462289243442622017981606255914079674086136680436308442064812573265915329585431384708076848993655273575057404938598650216240001532327863882598994618684875393899406420729949585662892638245130067542660960380917351186863589166263693017372044113437666272223103455578997340902532332589672876902005562226566183192243916623513084080400605131961379072408887889060762867417136048599538133068828500760079476654173991398272247823989887450440958507995776564958158241976140913841793858720247215854893082370531621239712096856851987801512453167751825183405399667605642393651960320459535569285670068057928117113528056535632418315484520336919494405973917669402592885180848075603675678840839484413351969285564181549612224845989261645769045117757883379284472407308597732383260918570722290376693393884270566589587784830401172991992936225978746572168940088300552993940027749599653604421477231539333464711483545273698108776062909540160730614183148942234646108522369730889321424221404618903403564462974296454232615516292935963974922335556656580637372161941704154723961908847830121575136564464060164803628250348218856426545912020728044196936297705468707695521099754112991447625322365884480114860692902844808838246827137181168867282388624944949080909077568408208159071658232446412927916772383003056395603246502554651408807494596578028128816698617453456741383215567799607998781751648552262751261139772570657153904056674519297139146752