40571615442594765705842794436341716314917197587533849018342840735485223228289862590733811248434357877166489824726229033698933462003147306955719461885844044600620660477510798174398927171353524434785588294971912699593127379131955588530188759922564433168127489746943276473472543495342459171859362821388227623583392222016385032471219468398987329777598114243697118046073215084752844698518329145387099443626394999923723806858814403427544037859240811824208118252679190521392869187475243820818716527615563987390737139978305990334466274745172816319952723118034963986951055156911746248102623077807167744900576562449114499810028007132024852851122380647558088639838687350291828795468505871945732319384365621284227545015338241874037594314296875331017675939649935045729421534979820892021314207800272949389583659448378113363646172357769865424982251136576195418738832489377844154674573273896552787534790928956028424818427344856409450583702168661092882851192975340193791290342414390448350137321444401482653578533468850054942233428370760283422278374543452479591313425563389085014078475541385410540444577742281082115644216921623089861717636748557995965228548261030983826625265861759718463849846351043658669536619394505821583993063825933943417963375366939095234762254998219955443125845796784778836513786382320185675899538331959374653333386091405626141323154834398918616066481265498837245789596021186502684963430686665098171992466808159371600140464160266054744617722487765291258922724288444357207554842478511310964057110067745629328958975304127432615237186613577765729835757046097131389906449219183604728463789213481897894423369280680715125800763713289408942493258654449133095235419497515426730783649992535467120309001633429282726926869844199793980385331405698142429850819178702968465065341763817725083556262406486191583359589681901618703161277585062869141669238999682513185066685318337681621938731891954925926528954799557446005553033339432462377172617301540253609813729390979089456238946671230237299730318437711191407850778460642224601066480315881146635598262268420238313260247505449172959439132925075286685476761849300385909201984668777698554121645624234023513366451329226381159128994557814291362492871261688599343709440835806469767857678896322484423651760429299965872441232298311411896258169853181284756714277596091563987720768267209928316043508143034613887392615824360993599370786230691623460935077777313889389753573635808370565969568266404068366922309511181715560054683931397912922721610339918816556102403043929548393243399376788037983362862040036886809673911532372054069391983116179750228601701499504007174685737895828849088020211218428440584976338096309881101218134653637062589746334436495232315435149879693649712170856495739744814187145154684996872202072270535308854496343949430409172600121735315786882644622204530971889974586424627926971619915842444177719966792832089826742598186043160995018094888056417761251717136958481327157341602425990437631922163491939320722085844931270499541465331340474201403825258136563384089290860353065372108362284813639362794827004064838026361607147498743239908313237212880282636182557456203586577981695201513183504972509327535251612488246967451274163218935650552207632327555247110276834676218685828237350453711706464057864106411817203146313549078835468269842228745417611599435670231121232142576845471792807120424136037797144599033431163013431019632177062367274088639046628202140399153718152543956049916019346225633129332628632886769859125279244509720247323501252114033655223716282711491943955441992266936237436583195475805448669779971252503580209129805804632999697173276456891295940977309288306672516424428594613234838192882699978894979855190460137793622225421569388437249886321188410152540221905256730194256542483456043303364117778702788434152572921577743744621657997041885278792064591028937119985130064875638571875676959615334112483767797245366211210975831233581484121684111634552372511888141517199351449158920556421675069990389836573654255418457119671474732612387695598489971846518879061609732224831741780836223601414839536698489236506728816295846783635776093691475353404090492785958698430979242325170329770166823932349918845497579630140792982858201999439455743719423112074516531692666945698262152800688207961496761214627573879953139778295240374632876404409161233588990984878982803808921391380583828429263999236929709739365043916872030771771715765513643579799114017853153385898990130145505175860922664299717460276582605076927937252764906916869244234785369422224765080690361207121927768728357799196632064497195329050749023054141139631891663226974435258014784815674151848681237821704386486184437556159051394797828260373938724293624389487374682877792938181970870763378821421423432742116716177868840100041609522568501862667304854630879143562423579885160964274874026285293561603148765788588737025566138818578596544720185805095548998398092360434095832754621220375142940384320159291156167838650458613864434158221444878408976635285675398594402502907095083595478771607405766864461829506691139957555553059459361393885696759944858133035552018834081764410133361429151588574915758237765560833155062596581869819189247846824080755145233393136816612946071787030542273860423716806424197442004979957187928928796353726523960965345676691181250348547177763553968917221170702100480114777172673525643815303966601780385385621190973897973113545437522092045742621448476838677902400274139538056434857769634389958332980473283512622543638935630459306864343902676221535296558939321194748196659015212577377559349431107699890579489366197737968310917673823833104891482964771173493981740676557278638982476154406398196247739322343222918561772461921555635831362365156639074288864142020541034473299848575539991991373444972654416070051019504816768306378419750513921387994143156261684152468783521016264902871598364647448711035737093