51
26
38
32
35
33
20498998778637153914853223803518994751792791872865828587413195896816338671352556118528639162212842387478965614686187295303234165852546721534436062828871579565416699895973265376746426911475822858331998346772212587736575957635818321394479728784828707747681173789651818111006456354968123041359841189136581375268845384188235665332498721061691113903367138622284241453336660848185109449615954375189458626778787801366715742828740873714795726971470572685857971167332687514213620791524628437211832531047469389923468817248480747746293933616258170464677486581569958451376261114722246721366049791083719911653574956313217433813769152142126410231008412494517776712975216543984397586745583837794718289455504984172287246759368117765555395742042432674755874524728980264012803868061785437268298319963297100868381568230188457868642472525976498088397622608655825037949639028482361514672264352128768395983911957971538509779868171260288361473519398048376833545869051827150518135218194602933195168211810691590513769405617191004139785414307780352614155456646393487176619795196535896954881595060978423296876791843145639312062423822427253281331466295788754212445527228422794116117914338771781471351671915441202367859764444346017631361322264659942704861219414297743136066783755626949755779479297434301912737738182413463678363594673527685805361539421133380327694952553763348919265711565109938102016162626165520143512595273434622949845588862257895333986797443596543990211935135216622635588343236248420780364065864069961009936243117761997793075049382249885113570355636565681225576173251647752423710595033441398348482285163731423128011938065249113359589308455453179149944128875879235753977716452558992716157159298379514923978961125418246463981181714645315504126917891498384169691105587323874535678167938746473637688245649677197283799912799892795957290149956658639697987841218878797627424361523236010874116116462379862185985390631749688235959438916715924934570143799427349512951871860711629634638271612574686844577602760543189427823159391398154748328942804194471671988201448613713319513686764371949278099910151108864435878957838649922473775893248941004561004793049248868243646565344441744988172883322477010139422881987877784851817517473912147436410892518999151659455157534281906557431354870959425681122333028518898734919174869569721410043215743893713261007340174479962365018725408743501318879743078556991691512296592178799966018134270105112315246986932395392804625471153325788484894764719468882566827987324713812554194141949255573947429738352590214103223724073194935333339966054859774387857541230503466616210856986335994688183549257822757470737551617397674393724322480628329417734844332154264919553299414178136249625339540406687533052431666214650545035841840946122571191319941465915607423344174882529696755792186723125932637928541726546346092877112712393966294197398216286373479413686314425028679810965643612968749557763745744679209154501278272207976725798262441424617598455787525889951001684452198979113797597131915513646407547225062322364842343197766774994244181649133100817863764186267127473873991567025793265476160196725786718880768889343930905016412020151675441988217285179034393082838544170784124476882676896865554718920864066748921301550491299272821532889332624641233065821083791003613793676522428947641310076394676635419197358443942474561979241147353427322310083155031153124052619399944302574107698931995195554412843244991948063849874381959927838738270639310724128103078907660663751963359022518454364454693822993210063511004698656114873280568027825723875337658976943157968654526177691778845242817288276813375528167010886750853210063658843336516523737673377774951380408954641934697436799281643860477490763965276679879850319819689414299197873534733392966889359098189896671132049267775296534104082718552493135932867131937445039982319894126633694148532681860596795885283567348631718288693181147426214630481208979508248673131354665856797892240218593164611542623579682241217221790888654665910651380906451067289943272359169136869685491555393848958762208965424420973751593571637315572967239484720557823846431517605033582384195743534692209569989489238806996731566368807226932194456287256496544827926584898257488178488846933523954457658839421175540909537308292501929886158678771289516191178888533959854545098015446955899247446072512079847816623872710020773011401664055222967476824933226876018667211796624238401442934696257937293184336371005665197757626549895144884613186473679277731320236388946759686019561039381445243937091148556906294231792133318555564132387293497226283974717698054286437695845521110123469474545754515278887573257738559181695255940295741591434816438366860998283157489849944425114243363787218661818100512568297794616287319188675132868149378631786164726597767861445150935387982729294525441173154178913549044542655330326638785283732145657912647660947361897617655823996896586414592897404560712329192586719582245616533964124763012337532471538292158123483556908317538234068682474968122414169187785808086828346991897492806339481492939061381477293532263436783832654303326454480288017631710773042791087325783010061654767624338381762561678765791308654276942204256199284754231715269206324216937487874879566691359957973741560544249193194695797562281319132956632242447328173232413123828747534813319853527752212212742569859679225567730141515782413961865195931159987837566759294612999779757533782906479704560741481852720587469495162668091814084901734621654719160792965864349182780608831843675329643844158278695285416710963078100502883178770423546156575733776640939395644747467482544563601646982434753102379100424442074781941576129486852444898288647983443225413159501003369042657934176261635256238269949963115378188129904764794810449148755376100615443337590479871659827179811622831959588016186819568244273882565833573159491552285729378042616386617323076100551981418517498588622420941533193628988593745930308737771276117979984710055645633908273226872227894626860364375479858333747448183596673038367481508265203710084587797921016993761323029566782221583188824906220202917518833787610627470422180234673716776455842224922195048255167466742794100999441258433334293438718538967509211825351480567970714558379150668625281951676542195571813916123960818783955668268284613989281975566558483373777577172366418525477163668138795226216848701792323464496354413959943630931511285164417187513377178757287989187368828118629782415302937662959851689799811915639956181443258136627174794757310071713473218633885629818269257309949243952124267059655135714305140786767328977745261349973908223816712864753876938223208262358974494829468537865833509632929818574428100897276728798921858088386249671267653566395027331364649339444036744436544448354559731302657807321752961232535383415547787458147846276431055100924138845032607240169215044859098359464944868660453268966054911891114899672521753735881520602067663251175349294341561100272856425584224030833258663451866743843914944019212318857762755847480769973236879128732331232637716811410578527741991485295449766282493293086100351451651259283363994404579215088729369621276432834312723315886415282322593447340397699787738451567748458956426716754595598262512956197498544021152737906037139151882582837057703948709668534510102776211691328380412068434056579589851548722341779236453692245441742483257195728694327783757824422618990816917503647796927532830141001306223047383686026459044767604934847393571778344741661851355282498668169293414174359737781901589454452877634612019454968319942283680664031758668556652127977196946443838859725588825482116193518939748837295974873868591772810078767017460459475147286451004033836961266154775249036935341258519487721553226855219790127545237556879733182194779854388249731546805138693894089382346796423898657977020152934468810100468177666170396622854916748630251794122552119734866191275498391141977245664585856863733286689467926861188202346461129913983331917262246286423919163398983422558863509429447768227504567392655236424767367021782671468399835037178138555793728921917630648220269129126379106713647929254585391331953254838762282157801580583446725378899948611328519706827708545104547621124390981113725269873542671393541785061753148826586715358817764221129660978703839583157996054268141129822497553362483222265786873241465489344516774881355320317995818879327887973376382125734793586865299326659609411589640172797937098317991493901579321893919694846621619385372179622780279362937023430229674934127888261515070747140927011241443082100514993806183205764383284833919791949236767877945561966801491309098540661153502717755066774292765130868574832221169168529949453711437996410139570311918921378022985331405332929739732788881434249859685822687348010681071176325637335828898274349316656429122393108762690199798196797391619409496144833954833549779141368047346578926100264958709282814882643752495752515490814412579746777059852975574238964477016383576151498824559147143236854757459630187448129964811003995231886398975813950509124245819146292136168823313859174691597061171712360101336741395287065981004372953120738010047248969731649538877233206514907859594737619804644168864194268813231444498891922738941137756035279422634686357072274169727940193916693862309265934514437073973829361858832157552345452747110142346842433241357260301986415912675618100635049795653402298253784670751868784881359875755302883516699464129493742182074174946697035875666318975123212681214458622743873808471545652100132776249737556364811660397070173839540403779296183544727636372685882284878323961884635132573120923262992796755545812156265414510518671969777647710072639777354775178331897322638166711871457209945939288935959816922813660351893851772581839923142596944398857794872915110055123895550159141691294975041918480206279876797177324922212755745029117534141829166999831391722665673478931516745776624889699674456217482714270311811374135100728413829321860228545276116738277398444908426427038562033224025482455201008831154664462655124635827974872433596346527936259980641389261542935736934890775850454060816634437100216160699633586133635443854274448789848198462393949254717863721754816197562128547569083484682378253150898255430613434983593255331977468249895976808844923841863793502335871366561462319066996856522367912939767233125035555833121293426056655192375276521511388248517353633672971114114986905082181144598171353636464517379594727549592209097831769879419579924358212182934176328047547246987579782456623966345603381929644207399959127100733050851753984678979295282558503251673967782899122884435913693514786529683505887366340819471248431034682368735040716988224387492283629393277733996628355882586283325455718682403742323053573351836393377233368155936951888639753227235881640904968555554407191598736865847141929789332285227663606859148782477974359756397566653117345541437610012574157813561263604127926691718918832411264293496815421996971548769259448963641181969202047216308090301371802597396973872463496376217483575742113948163805217153632878854491881211591866167845175952210741186121291885982781515828411649172978672678421472268178313955547208717842215285548896723796785227248976699363830631564169490311326244251473934309946510012845210060849530810040538561952100689287720653114998763299256916828752934839739347170693564124195633528208184516021751688708712814100181256131136645595992485873153303378114724783753585969849423042593873817461179676441314992311177256111057821230364975132429610060218868262361148261799724817425383574124176519229056526939360973193152540163141691689729428689310732945406365741485627948536932262950409026903037154114517286885456503875386545767682223565563076545757184761258782212739753346287462353495313816384831176239257597361746801225365127034565816337915997201399449015276811728356056987212359562403248976365294089348070555253431477713729997633517937645874261732955585026575823287968464219765195916025223075385880227413564766311720552647279704883693937261412889721474051892775364768948261100635210080139992456011983059603931128884931746353605419629577539436909027595252514985908089597398424444256740581873695585375231264191003771997997938903140784319781823801678623206267595584579179803254945793282720578713624028857186743771106954352604749975724334275105396961361715337925529849255566109017716220677199706538587215920615329747229706080197476181487408868745575602436534292938282816384363822613712130817728879810578629208088661118714894243443850180804915142302055419728813777736215129234272956427523217276254232402691593432183553897361418896113210535480766643733635532683823555664449356664153591899988207324169768055577445739455386112548238564696929465269821943486985443909163689525172698118785057399812544851027506120462362288634346757406752883612428466532235178795244232412944238231443331715518816212423725114151627512385794809824866599306122113434429678383880732681385424965063152757155125513647271617347865102820349770416497533457470128319241174203216122610871140676024132465582754196739412131510915910394647538522548577391767886582549163272986229783476388877271096243149749371711199570523674679469899296939058611279616165814229566405071535723111487172952818324763517269534232255765540492971371746924353866138463050739751573951790221752851756776189201548661854226682173468780164234904058451419995694598179264258775725738250683435106563728136777519578365736942638510100856910055491131777786181901123203854427378691597576573504342740481917952548030779167737273154881856247803060610245219113445761405514278402628425373272881588123197231100114465980293050135484526963080896012924593279215261042841001287694712264548523707696178444798193351965478092988109986164449815111476561976923229771677902474425498325519475817571963578016622699429769418722142627565346256273142326902494312375067263219696897327278063420891363589050805815338217837941185776293686353161472632474499423485718174992865939629916320869942759168675686847110094134447556335073183659558722874459755936648710886967175396953848435192524874959504122737734033248439991258475949911953260362171187637865799378176719694423996118308116599419582481132971436982895962166930207668890994112781874801223564898350565312185536621654191811285313386015385184652327849982757466696761002445169585742267362416561838452739921324892053265245384918835514116373668904744274374778972994196238532289079736543361450264444325934917786638070307106593278321658028889675786895849466741510077381332100912791785973606619271891547878999729101561222774283363165144229234566388412657475745167947304494777367356810742561056952491488689406437110513164510253440207131348725451018875643472795196259534493998068562778733789382307628689236783477667910378813559494762244511347926195264166896559825115526188968644781404919883497085123434153066999215246368341619664624348126719434483266448269045955894897251047541737828941503111938574838468025429898988870912226214672172637143930308291189444803569638392778966397828604966819216733697146811639436926279797693649437223215641532671992807752513899775781967583265413487236387034992464354825212685599466033339595145854136552319011455161493989650679488671237384994796933567129819688330331459820579564846452356086276369783151238323752635964759551539653945469517473537493673396869629718580752320739214804220466877214530856552768033158856040153667237620767157909718647625417268914876940524193961073721278184348627452957435889994723352773686292366956643125478699409351100698023268939986281159747269683151930482026946128249576827245862597482893361219741076932771722745935723164173723183799666324054207110403386526695843282321958538825397559964303172469592810570508459227977463655650183815363893184448913892575888293931471488647759056144722266594288562551909536873616114156121297410659877188257968386715692292491323876651592224827378659265754968877959982392897917340169576516185686925722715727594910894656326852766051314636978573437428736868569378852610053861745446644341224544132758944334124828017175315265986473335373239423765943373918781914697145479364398896111005876782224561198793417924386990309389565298936178541995689633955187293840109573131378219165247886151390373610087284049326332161831432395117799535182676927544366339729494143254137182382165619971018279294336814586231215120327699942841579756673443887818236076183692857883299325061909383975243717981635445078876341765732406253412757869490541474386482519523647563116274824868455141182801470493364610106482093996863790378354414356478376973328350268361658963059527781218105064693363249957741348978887580737932781433933523719763927580427549211831429545151199364493537642113416432936516374596434859782358683128932704670776179524853643286568198197439365352101450466375186339991944372666499388405895439264713135414045534510362758417339588131864393183625987518433981306744757129656980606888265641591718810811332474082238363230977648193914454173998448386196367184640894548752726572661340464781801488373647853399636496376761871166127904713774983225764593547625588479865097495944534614355425889324247586149191537407788901691299724956831239596959716269571155428172687991454152439863958682754482451267244594422207271373860684926830567150676724220228914349351644279979777369916457892743077602642533689202759335179664989101001921316999212241992562315854366868674066671225847045155011765337858827930273722932140851022543594447484148314322959424752178869768737034575469388141373257044335525454935851494874758733227690228030903215674057422218355149354436621371024529445733369592097100694664227842821069531186191668579143552949689513995759437746625577792193822144216219539767922258116455612731552796935233144111271320531007636466546874671299892521110461225247727664855552566634883391451004483748803488686394366759927706491686455348266070856184337363412939898415921843443333762817373563370717492982303311283256862597985855974795199075191870570873761825893997441252116784219840999046595264412935315838771420645698109271635587682831285224741176483828656756648973736167457503445935245393470311880665385341709165848303766311894435478177322689123841436484364572190161766576136481006058963989634046469516403138093432378025144132918493833162129601022910047971614429894908164511134584874856239973096592992024309230369561150455331781041713120182971692927474324965293172775224118511624182745742659778914511733429680556369317882065833795139094292876653812171036626589369908294100334687318038346692210155669959363628856152381125814505385896811677754582210752638775561096956031397764960807680579253242234873313339620227027482783315667757378765515615024185021627608991339754204168427982944910599518771589971651134846977118205890662998545737453656358991344828233918821620475724121514897171511337933198559535814350532914860793825807023825978436508675301873243790702016381674306981769182564734655396309861713675306244687281802226645988609195102131281056983894409620308779557231596999696613730896215365570644195466760595518334565398646291835100961414479833577318486546991623451227368018198052666399417909448886713429241282562579933918417626354806688222879786093371018579633295041131139915068862927631305819716677100572717027947897993825457475396062824426551397133664837313815877263923773245464492492457574684914033101848913771009542624191258772174575735152238317141247227536575495346210263478469713335840161987664367962414595275570983671401009089798759949373100155524616749126984879666954723212327645325811571734446739763835192910776558273464783642331003311053384143906854889150465650251195038754369559558316710051455041341496963089638098816651778138776757584918362521656056483695351296531199736556937182578911773190398816885324351141775791548549678719407263542626415319471008740995413257519046651657693698969480455072888943458167231789868051768456796664688228417862874577339884410525656621923245497256397522458905883242184599871614423268329441413354941991816867159768461732678099937473379837789360942619573931155074252672292982585057686573906523501737105215752415554429744571348976381535037474774253298360437417241056773081572674505673629197265916286179255693132674717313049805882804371502626379873441611656554039622061234923890316576757546845118588119463375375449661527537411282475771839452557197557296234580902688985118891123359541358590989097672578576410279768479749310073983182904787652612409027962567017784856817283670251533829293549328018308478505287413242197117127842834628532309517536561288314928210721120615221194151215077523156974798443612956553274398596894345253296439528418038639335271658413211143122554741010673791909533909426919814975252129755504437382404164206120431187607953616110017541339642777442248740972395782691803272181895546568108147957850633985134449576137635242784395202969533186706938332876690945947216218261175449407824614549215261246431743166361152084323412239674965463812656228792012317845282496229836527622727575949287684132410025666813061531698941833596426987161236989563916364160392123867715937719748566579738147887082835678841112729784756426764923268198397743299947458287147193359109558461104218332777125884616884509246924994876181233483854702980891485836301654599788812781511727354731291147090759996949536886292973071736483647812547664559010173180494657508247409711733748754117727566860302538831727736116717946549127372326515125725841487768771659205821207459778668853627657976903796236453649828465242559162155351093744581674396242036504110080694701963601527302911814280136628875072304862734133982711999527247593171100796816342012021255412487387488941185265660356738642048192730815111836601544403184153481394260763161470887633106147973162528434596177489558697346766222272487516344614219554755494828365063473298418227553394919486911717254066873155696944862465465663634269231779481685793038980985337198283253481932422340704295429877973025537262769664638814376982873599058749495853319798644567468426624955683160289263818235922130938652374572452609067261774506033808847278565217481951025611212363461158114883851246624857186912736288908897563394252685187669759564019664545885472100609394835619426431743463914112677372814489524836770606481441192546153323182811238297499229879430746822969088908661989521555623775534043573179929176244773452698615477073432392876338332246576145148572342223866898113177493532677946431403652686191471564661759981413635410229197925061908681383981311941229385647820433111516259151795158762931394325207298875263559448932721966614333722929117989841651004443792459661080219412666498412835875624553100298063729414771781209423554166561166815225765358269171877614050313668566458412812414096625837429675578066537422748167764434294224913866469964989515167020296181722844891778668621138656213435351904046676364061721677968670142432015931778313525033553187591997114855932270905358187155411626662619264810281361914675877276956499454176329432042163818836644559397094889810927681591005773458152653983361097297769514264929355468127156676889311373434349410086618594044118855485383671865191561466893741403831557068375537767484691388685765148699824116404545256277689047419583203133276225417894564404460174122182545478458531970613348962747597617115784135562266842367996948164853538467595758579879100572327732471516786402399739231661966166338313924552480907859859100896852319893918434724886041366725651347436036249926842355051328492785165915111731757717801236617759727097662974974575382967535326831492689786739814641103877664934447953653446488539766591694741369820848643259964454275761534643247508510733319534626902840903777371172711644368831317448209612219181644736378905756847366905932448133617149306162743962988113845686377225514521679672210019117250197611722312637683739544952227793687619878494455986469048830809422103542971233737196478837811980798599559120439238370342136157272435388937073329747799881562346116674601865429380557533262754736307382616097333526359833054498497367898755125613049921449489917226718240724296457383644967528124324169461365751008995601535418138384278111213192368203712232605015492228653392241929491492895657980997935385996856156524519217374087953094198533419683631668426475228466795726442545293178648394144343779936226621474654460138179293242648690444020987391945661878542738565067624084531106326783511515972287118221901775657244363610654310057655418694396584127642372679164615497149143324443175618846878136292638101823248642363459519751932510020758283137342989959541096242136363528578108582545202258864676855853391786669424100326390373252425291058614391745380133532734398799622349916983954524637246476098858757776196124759746897433659285236412899777364663885445025424124624629155447964708312581255199332625896768467172764485808470543040777341557210067124695319534962321326435892390313449992545628067409877892764014896156881728319848722451861396100229139191165164285778956822564757034376332765967371353618414120762520983626344596634055476591824183575088838483382104551448245422294531294424626246871878994632344757521647412132264115663114581982549534178081623318290197220158755769696492232587689125775824652080708195405513662687237556595781739362282378462862690813569886414839537866848755988745121624346773712716989174441625447794762761559222697143468172394876621901780316092921044626849667040963825644011355249350376954209697425023262966948576307735823087021146070597757658778123307389993569888856159952998539817338014199786121558268167135987866917645936660634671789383820575347865846321566991007339813031756134787948322669469984504333131797401174685790667156336724127281703891313213612991658499163114522478456187675856350968545275841599283622340231522948567776511827648278493876751100781756712389802213100152958203014232575886765285246627136993884490819385489132137277579764931235257391908890251993688476507272281005017510051964966493675592488793428566235738685840126525087661155704029181187332568687497782262262749783849744710042636971837385145656934134287577666904922548864765333979128827249968974883166142563557104765662861027484772680839981909393848026763034908141656508520191140100698169616994475291032594451645617185271583596297684541416833488657995373865652322346951795803895632959823477038677284966676895834913375481478799931519308978920335481575992213289617683182216678126555384932243298043553951212117531081339259107334392161929811386510723412743124165970725457957621118152931682202237383447377516364647824805413184465777842697582684930544884377811802262634649972943944838718953387629610084817856472786466237876869829474231218235757175639870152845718256179610513433234476423384420618910824540855986628762713968453277288964298644664973052885714748251681227718747953481132561762599777876068945351212177403384731338988551266906242580104246875391947738928846045963674618458912488652426794342564092912715983428165657516818284315493887830245288824305629298135776288235748928439825982749727155827199915792974949686383560172742156182055413149634795249071584741218851194184633282456672832685845369575386492177959906052615781386952361710271586630285892524580403212387777874822054543441079436365927738689923518384849720462418371140942168543797724272727243100354797399251391541118382203881377417279892353843177332191147784683843155417452820207224174416124445309193865359096671098641544568970521149554956472456660459184426585749251191154077277965808719181975192963750792508555345784996357539560428737573917139583898100105359019896940562702895359632502392691116920603136544843417883417828571854729762619674743711514980129889165944796070608567113190839971232127496224629865599449291287100331042391975238784244198151699854426861671130926214892515629471154348368568344636193100405951933676671699133726230467788448979557849402440156996728938162895829323897468154604268933114971008041975810476961953082144857739534832429432763188617915775961913372819543292755589219998489151493126847054271069869185292640827154830389328078472374838449702158996143750466934279085182930968719784044795098175378100185551743433905441753846100514141185270525373658811167653366586307444014398479636856100922919855265860295665949995661291433227396734152650373629100876465405867992447272974878656968624267064177823424995134305663616881377785071265324431614917472917619197127813296877188577316476485049803765345913543435149152602608786568288078778073934683452132614159544033644496763839225439726737893374442721004236806768301964246466894186145323263478262168169467877375325273195291977995256888504935292966886234883825517539069336664729814754198982843847166329829893579266702056255071691855965791006089669886681009112969497186435493720773185865100492551862888969100844593086113910043986331213855721317799859221868760444625556138629027222153203349767657431681168461055565444992642626362632197258975682221640588718966398435956888174854124339658165910075525747474898288143932582164147183885732397332264867616439685297988351889974847752342868042385866559669179237125178030467811243864866114293763930559463959344544363639886100670759726967171387323694991403067416289684146101329943238385921252434389382182819763737297832648425414164557337996794527245756989818721470351313975342553211786615543785122223579889233828251410852238631777249055459265721782518718571267799234082215451766481005115969686310091679942715518157524863918964218382979617431684649666645992485337410788988964088343841673751277947097797183653157841067182648998889418459136319164629686075889818299177257183211658653345016823764121886608798444277941316777810062124299219598842791185015489621734197627138685392448899259199274765917494315808110153617265785118490551924453759759664961761218155677134283714437993873303086398383172993764533833589380172930777388183513142994284846646233181531757772100902690727476571248783219545414446162802163613941001320451290508641562519209181942628577496324214394116331763613356036947146332161741547238957572772156519474615573236350387990601645353992179364459944100285326044420796345326160744210100503987452433229233376870891238737792612745774984218227253319334525426245895475161914168285353269872751813276290943814295364532321714144363444907851343382075328835963726958158921007163168562813567832551050375044774864398559326918137203641412387623318772583131313121938603051978771931861833539741761922660173611913357561016584885095964923553324338718581945783977133140804136384551144901578615914726238992786182207550155971855888939709320181783632327312511376942919724954842257237939095347781768388147547792710462335821541508775134681258239896451994140576153923713614418640153768868796423068197394921361174193711776777862747112682714726518726553565691103130467192396106780341737955560821092798538244312473632686684114486964156782732921127913171642322015981637331428984593644053431676503385106416229025621781404691578884630928210078593945586433551850614491644841187328617525775998278762423873194386520100184262958958902643447939342687546930813246599839726211454653141286780282121547817623255395057127659159967879058518035955334609470431668998041842992479514252644371915633171805519417710021428080796445354039688731973619572183165712825499041732484378252203689971892813482674661677750134245499355626612644988531345554936696948614758589262968241852666295013133159537479943728149886851837108376151567609485115174365387911010466944242689094551687395581793843932598192592016835612786234623954773289281504331364310429567316575684891546694210026697563216199124228141528312664917373857384981005135156316583955231826259929126634743734979983692226081523894049117369883130519751979792103996678277528982593447709642781183272925766339551056457253951795746840363367775882434581534826315547429566909159935552762892594096168416388138405033845898436632863100614506260675419575023647144488769728435756463519134641539172997179615198664930859383159911644123852446731005237717538841982936409417908928277299643137261388786645223480854723769669129196582789718491298186366703475524981248134734348809444157016793439889552843789731287757816588701298933274462534656225937821248392442224264421992346140338795817847454819687727836122775817721914257113031503299062466247100184535454333651527260409614852276309931201211379417107948223676482810081532596558654421613448471049457381333362966374487556992838939927980656779852865629918361212979572165843185862417931568485402966332330265775265756821769631922513878880742597077100824348598480648252419572273891951653864841952092233410064302417992441352720895029379935309295952641982888470935926571682133940661893258983759661212135863875645405159790117956326492638313967283833259852789677190806532993160478892305751844838034646812627724734158462221532567552458855737277371721719719480905785325149686664368215950478412162457432743509262351025217263366270535577551031916585942306534906534596996706118136272705393100917319443483288771179723056114535639844535348158374802099776784343295679523559719304652407456927873881204275312864495775100278120100841347295991962583461541742274149137526378953372027265376182912225063418198815676854302967451722387525769778017353382404666376119203898218161647458465280534010068309264526364969943308574339133895143860100489589535678887896974104027814553541377535125565139543659695515868564515234745713758321281782942473257739555154784443973982393255415645677393277169073961282428364809799692690958430753110052982175341094693346279550863938981998371038647298468120876699531351762654423281086207739974499639940103231876540881233512670619694100307198145443537015429849100587240912662841969277233296362847553218266617564161623234298886880612323416667358529452776821141662448725225199149826784654322051464795929088552947817168150745711119932437475776488138789295546515374255676332816154080447668815155042245878129981515668720818360388634998496127067606346037542669734351504349853949910089186621333794662683754688546623842567257515054583074408143541217196884582981422136242964719311768100391619766275998679741787217427259283183208327271857095713418950547055392240258536247217838225496684144995615271207966941990476293419891884031136952308940805211224924679188371225494996284930467456100789733751149453889545878667950199190516075421007091329796973388734299805099698656725147473978898655122414808921245978212498205637495923259923197744136983031170264817535955397431865951779148209210084386914734805375984679496150597143592236991288023163399100142486734479920262193714111752963272335486950544497291081967016881461534897541614502061948052586164371940826455100587279247529541888071942656263739266940362071331532478083151372501337192454616423566621850343412581777510734790163946975135708012977569396459155748634943171554547852025377807348912251465757901271899577493481211944795743886508888730333910017951118542796523987847967471448549386282952276744431103882767657271417528531263729211037722427513336315446452489981488575989295239489964991047831660959219254897329986268137448467295247549777828655271138331419687735750761986551166218513194225624134315569619512932387047878680366857467408722422883890811442408762196010035994817423943666345723762421398851571004797767737588384100391454439085862515588148499635845594514151325442668260861533917985681988883680331713197948208165421824145364644589071314622326741821365771677983437657993562707191755116141006350926826961468298414539482189596834929467531842470643919531945719954679084975810773846275455717166427824218164321273824912349562032437689498121319535163723296175468265659141367210026437973697088322683372930378286710868171033715079231840359175952473348547539243795028569784378793378766771989329872847413357388248850352994554569227946141489728187590585581510099401576741592845681101631914119100924759739896644826693869702446208156945396730989997963999583612819164870174881341002096163328572222795447652540197037481424257839156017353153825247392559509884435980719193348436660424855564467569376441556636181254410561002354401777959346569143548914971678324321361540429214283524314106269271358082625075781027177557733624263221183388540772380556626161250731005737951731414566113575056246445221374856764943204210060368997922723924199316483718197377595218491145812408833113387134196647624939089901137792074109247791414765779958406228574855895684020856929917185723130727514724255576068167626473535662677088421844958119238482326310017592804412623482226266316852475697957260949910243768984879884775776675130668774612060686652965934602916869577343025958433295839626256662227598999689851362827436938714106112199757868126243664146288118662668285975723228876595898267992476422376327942772578772526638011977113718548729265856465338435838334970878864828151081637824367024183253488867156356984757227202146384346348429715823060818081787529322153584141858497458019608433656294176571319266449795575789146151121972277751324252916336498661697188718456184252453284501943141953601886815790669257837607177631145116288775341558092749161483924445925140923012223279728920269866312357194966661332962547924848725862076614688954571219246459893424913462148299330712398148106740158788858105465867723197676992026611108127869783398175218595584981643902543246524920219875062242568336816023393167328489469153832160516624385630437254867070322063576049434763383183289810090961286243518391021647035688945819594896234869691639447157210080614382634218494139544817424630737141581774941528100648806374538801623963886439687455189152252685946895428711225171399916384761912480181774492206121365486487572099316666784698311458454644582637435216842537872753830277635424164690377804272669821414040563705056355626985633264797055926974132868254042734623141210213061301682285679875680832040178734995659363622083568248369432829298326738499906235773587459394726478709354983274336662449537819578461627461996225546488696657436734313091637565697425695725481142868086466879883425148399891923718333253576458822352226558898684884387628327010096162727514276887113445298527185568126798769644325772663210026937246138282679876855204786355883717873185459427956284107591329920527899917261704801025391881184956423717033783710421971554921781935332964599527066417919181711101223935339646735778344813623688787638616112442611989235782255217546676374994369934751585512363761240346653786521734574895423152658356431831878231527606830403327721002495162067224211737567965899963817549821768426134806441628724491928829827933674804567433226874558274371793454763233776178882789522575526717118142216552649593705890981936680422987731445597382137174827142878772923515766394100922460822429715308988345260246663373945266158119349745406133156301910606418871669328071955248842962988756376818329731440142895981549635964235740557714434714729649858693499258575116302972477690786416191943995829374155296675782432343798461867543514602691754753697663537910081658134651933416519413692970738665957101003494775319484166227526949503283529350858199812459587298321562287815369205535653729128629569849183835618986063622563269014128641364596392907668642561632375936981919243373552079159543037601006459763356752473431906563549320436024464865389544717888789037187150712749173482738953299792536629478036555715673929978983212932891727366316362098361469758674926944941933264915825769516852747368918128536183651235759583627155262664203599131491414995392381993647599651315039813989289893801795465682138972717138745526742629938036911829644784983982868480849521755721951913855531418783995826771443319251395666411573489777932266957356397554468242332123152679541953291234919874172177763525170475669415216132865175646482758667280154838229677382455418263285535792731755148942532825283585622896902915828274508280984130664439021631153627295281764966186515784115223061794685430639345646249792931555523646765263114258473945576781699231034523584680631329465626294228939852865651751036394732912893454290986575672537507667226826104028466461764163948375497428475191332337427534127417844844249492633915893519154906871073899135485594179996064383302659792855363896223121305626651095304957175157157347111117573872285664507159069265057785177121345618801489041415726997211416699791814665687697938512326390381883825279558184736179331931667816514766822119193412759567240752146221979922129171736520622090194081554791643021611822317815126504935258248810095478645707071137121319238503569535411337236834834984318992839959145363632626090633583191367566653598331738185992902418301074869318961774339320771076343857721612972742699282712898258352651473065307447841827528186283678031757781225123374210042100463632396269827040676018196894139177033926289769687917189211360173622303258113959217789988142368860917166406133832891581413937609039306697261820615779695999208658255660579523757794411378708088245643367612241282079542890757244535426853205419677895110061545084710122185291147213526365679706879743703213535330183684987629761002046149136233684269479985731669937334812445405327185844898383816988393348830862997925999534030226817197788193167599275123812029424319643747567249404785778877681584775527884234979843634215238434407780307511433677576258625094998877933174311422157439642134741641748729786459026638863234294632293013122132625961442434462533675752861696388666403341793747147236111189661562915643159333101271237244780411378882156284936458907237279775744537573743977757024152330178577543862315475922172823626845659897158085999181319411843502512486013804746428711673897785610083498782127197879442146247814012511020609337243779212295669255962772990693167218073727687810087595219642929514210504295687220751992117613253126448831768083225734315912961121546468261282647818219280271256799307569166825636629911927456129675850282792243812865508540518031937037965030862640988614859100235359164375019783045508281462643456873161545523675625828941006653422321785147649244492237478961282247241415813413722413880187172582687222519507476264515565862591452312750623656238281847990786660908832198853709521397546658489650204258574137159771005159161598560788124177084194325448155182032571666419020580968525362222795751706872549087333319394253470211818591591152685513710443385646116566625475464232328746795522496102116809278671122744963594234452135949051576935525132378763245223826151329482389693997498421715124726598110063838364919676213068265223856356305493896966061502963397955913100584957774559566578546395689545625445804016113927732313727184206720776472622619798954494040545017664067919246386309798611521999675614176435256947255811060615017486436527286123598868931653811014892687891974180442334536681476493596929501913715927581476736369959411389795282223567145418952058405117751841831497373996145912132633296336114515673486980585119369647167564191113879724028881833488772964228735292655496909850171009795172683531868559286719695343279442533924965728982726929971387419424017311821197357683621517217234254299752663875878381029906678452549635193842382475686226144940236859862143397633703732726658436966321268673610457233583496462693989219860153522211838567326664587453121644548512431714871959948366426335492902329711952372976376444693750831413994632395035426936573090100273043496449618550962798687218227172565972477912168962986336060761872434167568100727280577212429977397047744276931223657058647473887169534121927323318185100126022592187610402563937268612953948056395726147408047634046334747398342378244224179545511891834422622718875527996379146317362326214126048357994210424175791647570512183953522100542652778198644430207164447516479161275231275872116579293983470175117316288112720788633599862202256455531202803933169679029648207424401615345579814438911264517840774922658467387764208958949227854373960593016367481516958690799619898962496914614543576494676074825783925595457564874653094263749815766818255538889283632843735914061109741453729382927238114637676621210059534162436873704911449146675392063296128950129369122808966963281544661921930673483854492795047894055285284260865920658828738449417154496540447862575010080126373899735758812891451874741956624327025797325366171553934714295542278578841145622420762826862989785960100189010048585617558526304681596359431007859941236621617898337523374552405193942927228726143896100100157816100736646359536646576639152975991055382632942919534249522821888191414312931100718970842471002059904181926288641217731081793851734533975875973866589997100254575359912055243345215470109951345954726298436957536198387969982549345024665961289169891340446327894084448748636951915913247353796636277517422526305233563191983984474112859553415955885893358124501226449746322223513729139276905492695791494796621917813834784536419243244441483705398606272288688664892874974161003737298781522167707651436137887128681053934923378287829475493665623110033537583889240841259551127321960761264584621757475197122657295382835631038738945185896981731879342573745063607122755754397216659105970982995249065319288548912355264981618849139925654644586491197461740592969645724864367919455082769912991677810025769125583382116738465840664539386868123862367255636840516858626430824149850115839754297842639275470718948261462819310896434227429269607684117463625622551259736837953396476655922524388179174269602220853368336419157246658533516563583892712325418734345382961622249240132141106741385562168427737163218917022686475575225837492647815148368644739697684138165224862532259905468279099836672786523571134841532228461975987687832029138971073146071324629902389443139816831745334422522524251408722100181950821482272474933783337935419547659772759215711244346315753164283312984446653163997715764731006361501239767424694383949678118795559663349286158957126449485176882345395176733189145928624255289275017239777520416594462368221005287862359784117368137125459172125375089441629721238278532878483417578860641106945523346661136584706039923826548625369895268388566918656426442964738884948067969897622199294283963657081635463332616695897506352662678367275564648399598725811998378762104648696983242474199949220307547737479354229768979696679921863026268649108817648385532288983338126474590402732100533817632119149571759361233155232325322866855079154684261520417288931032934717658645321281443298940737032522733599566727089913650912244893893193045778718643849823934403743102513524386959493254346834628282216971598938277762236851104350525352100718161189910067287165815085824891296737960694596213918063720144315844587197262726949051847924991484824361765149939513733918429461899842908238251714048741687355818296164774788475465269686966865010689913327632892314489037127078608745719280862513537552912722647814126539152741316274433555910027364192362032304322145599245078781511851262788746436286427787415210063751982379276765975575545652653676788707373284660729132099175155517210784795593670793251773524621469627928916238178449234871128652060459469823633146439954237279882586397891720595252769622796899431852238154329146801652967814877767848622152688486892695930559422353996594510604789767571054382946832899011488516410046773370708564498654611491296199610423373835385036195837792413569866193264724361066406989424846531493904749996734265535298495321946737061695951273492634268695484445310025403361646883314127121556877874070638378524579236193651128349951431147892357668256892650346199446724910072691812198783256555182598622753643323294011182810050879673372947891546381523159576276161318667852847656030132137543878549943699102475564586320615961006170555708463214029724324752972103486275653273265597893848023478060435964321429148453522292538606663952514523186185788648712331793466483795417171571662034222402534446453441888179567142134753851469491100721445263521671966374295674184736420563036187888245951271003928753846465312372733257108596704450346498510072323607813361492728144336598537982067416786752620354574747551212859070161001198496175138748166782685222299021397631764148798042570664752755888313727863592815776667969435731917562727208560253689421695553151239653785390335840545122734351595424373385474438301222462190394240354859579991926951706554618664837691189803264175568849682734113412123735910051398118977710086953082921552243890938943182587889857474884551396979584976913023165799153889445595076557312718731120411278392874867158223445955993439554832711695826989572100435867691012233702047221563100169498158559785896477854950621934607592757037486161780784023717394291810343149953058122571969645462945139342979660857336930415421783650946310089667179696265141052727117957442852695409212455731288314665910058845897577429789798386314773380257653784618621616374207698328925868362798255754094415283431007433449386265879392273179459631187199584177037761266480135556533593322866761416710078451768151100462390512911316720142878234518333102435440197396100587954388345867763534316145628538667796169407599218961685616545188782622285247201470913346230535133837830663975417921515553852987344497404049171229445841998179493255484960609881453573831945910010584829229244690111278899636422522703965123057914284473599601159415079378115168909695143167955668948264550911224155779632557116481418551967754409610444160663787516771658954301142193784195371712783918686209945117815615846226114629325249619475466485585697660191760148872472410087819966313617672213458991643693024201320724291329893393587254120602086548744864519672706433394743718324549574541070552454333473525147388285629630532238276805010803145921949316564425567456878265141182532756232906282598121196329317433238943566554037244299629049532088398579721537904064388033100877670577122587316666587203750181749454925492514766802120818539654627703974795662461426634063956609380128274689143757557685214163636851233912355450567482627527438184517869742474816431879728190892232825229226442826495146488569918665939963205042842587134923386074274897214491237947323596493838556177271278985703399387946309411215911286901247211155130985796167626524122220241008152218436364684231089127864798512711836592361745653952877421465539818710012794035265622818541616736491017315531341476047605769363273471481023598915561945916571852187241143510446679203854791006561491789943168536547987133541744286413792433979534043607316703035010048763436202413393080561028376999466456636100572987172877131461517456223546745866331401026189467295779901647481777481573549140755395865195224748534594676756100857277827110024194627291699636677149536666546343924144417139810429865771276124854766435723259274720216590846825428160774859793883136034196549758817152144465886629592318340609577617942449165123021100516591602440156292596441818188860739132103247775765484149235374214656452046765725911131684074867932761547554070406570872625722077591426512665831241832460676096854318294219998098121333897093363719526309888287393342472165424725368755797320804649698499891002379785117651634456187592919965286356775945214421175979295905056971855638320995859576439323224489465583158044505279713290819532519762181008866762238516965851726611336290148039715342100221140538982672675817774986358427819737341053458951853584963169196480216682133113719428501617415268452286771256935279851349914724844144028575612655657764081196278043499468213027684561123518515478584869338518682578717996066237935583720853588405437795989470358481664845142381448154846341314181907151342520637777906978398263883935887547642757135174712762341611654911522716158934365525548699275733856381861551328618165720545916922692339336421724975646312727234100382333918814575275695151568349750455577344870585017135767773141331006125342271224752505254672431437398713124297413519198326673748262312286458865134038939190295718651856825765319897978219668975241007598585964040858611841641570673968554042384970921149838345777182587772121090411267478922198544685499631002865394054859828818678372282799408919551319772711152687237601676903856871077572314613186185406821344117705560698359641961744632021711527344386634501654482683469034876698521458436557437158843935483294846068094688331619931168230776868808293816066121138119795727311750231138635386503428484168571466185891207755455449225670398119672024455279778369264441996797936817398185450834067466590339164451884828528214264670834236415655655966753155592132478507371231312062318116197497218589015284188647331957978297731416196767623236894139791813337982818469778371773844961131511740888683036221449305327499585965443427752472067235430842023756972627353329438601981401954242838998383272688100111844475549047117486667212669722972089802362749489531122519122935337325665333962275524371338448640896143154506110665865807298275806334683263280662099390363788172791410202660372287572840754628343614616497408279063151008039582327417732403081274959216896195790393253382117263919241710095362015955950597724117410862478986379983352336676951355687671464854758091451685474943451801633954491813988568723381002052633756417836295876015263742619823873874622562337442410084259382583148925095473213679981791185863532744154148301911601822812677599056833962471824743784196564835256373373189594758619315361481668382867481541653509522145981797675213237130577686916217674099438533853588355737743233614814138859812155377526194389511299697891669478866751335254993459889984272412593183642625093724240237853650639521191006288954841070321366873066503671794577686521944733879531689669922538571526279573468258952227931296015294830332563613567924762793433808115596478498739714564604362516964332100771493141871948716156640258667718397837705592339848685336418674664791494077838432261572615802930533874227287881469262475804345986191866538154879996459155968871618947586327441006823694833674663571033631458847221161939508877546130568299739896878147317283947265522286421005911161807313536765100122872029379010568287721356934588943775242613584278062532071989819578868626414347286279114545934602521386422197242491548415846439799204720127819836132263072314699991987635478179636143675870635864616533210036871080644310085734551260198463307015891082830393625782893695284376937064870335858662441658684184752314535706535962439726555773658632752788290557137218443286341812249467835621697451592965440100794383582654322572112885976258202092275629775893559430633361527297479112898646233341595815491115903660323411611376704516445314860809849015757454113283894142058815922989591969687618574290963368942429535725295348653224666537704986134195116610092299711338939662453188641141127927665234368145560178717342911744861816938837342515170814582844966825107394100984735963787814355100866755562445915999941205548891350595117271553593928525816588152928291377447677626419077796540347610046783363840873774854157691425382637765387572685086937671304296878491995628751381864765554060998856469468167289484943289413234567461863797838426425398790291972615155565779138916353299202587055661488542363647611829880815727100699928440509886696866710916672241944181357765193263579173819148818748726473850278808419233048322513221966825554484627076153368337816691375413977388724598904447428468298558398312361970315543554272365268444050548636383158556804786997648568388749770427179609536585677638342234510033717672470424716736445731527840346917616647352462463583194921378154753989861865519284643931105367875247974723641406274137129454341404372372510393672293236025994026781230527689961020348629917783491635743140145481396969256835918815064193760576640162075555417477022962736626027699643335597333292131522896476591381804484429555766129235604891397275733534961798158143552280426368235029346726702547405062579026591086704337936271585050235821009222862646369041010118111524579264195809346397793836177663645441717460547310068334460952100338293423318931865742678923582331408746543387257310562738681078394914283058595792563751611686566958742048406249388494451085836587107921714339378928707482458196496247637107536945841326765786953939174422234024734563541889234355498528446186238688215211236562321999076433026912418741233100676897274477615068329526903566683775564020152264536302978939088222825913248796986685051090932536414286151965904467861272594755165636163331742826937100255764458741685196779582111639198193614554546596331554590161525349567579135394783079437067674167609036234543618378369950921397637141765766125995915818131357330163134296982867010041418081518333604356782402167865191031798044421337100689895505227939414172822945648670323282197183140733351985815881923217695678100659478697035233841461863621155164193989595322172356422281759805215152994953045418114972768748731917485770715195559321720931572660268539232596243799217846590468314607780434497549181252714743213187844987283100987942595222422131414575239582462309375423452743329301928624067891819169835961409334312619333493108012159767615064861005643322377735154488776596107054535410916294520212976559652973033966667211516410092152688143427309566204494559097807555245347267526069494581372835505817893091578261623616513356130322314062102821324495943674782411953310444087184865844773503723614597443093305343969523196730601618498567287825211916565325410092176282614926858254852875691314697703112441646306287274067939285914365627922355186354935714653535523113075781381596517868398054804095755729211864069689756185566412716378658613735145796989930703866275220501914552488739132456561619484090289937857881724993688576746828664161521598776953872988437699168385643881377531726283651588100817859972964523853860601347227421975620149437172756905149244259777310024871948341153135797231274271758664337438577618100766124531529909569246497738154776344969637355918528148771617668536868908453592654292789555782921193990934924993570339696421591135394418237668495146891114973316223210054326973181524328416158958218278335722827913369910796034791484421396793025317841663763334710070977463694907380672481746809961926731405809099553245532844144382597014867242165425175555896549259129368774376480399097350358020429619951039888594141806670218171271892886950587417223636687016966783819438263165983774106417149636610975550371006413689553868931145647625411564799118761377135103911529066315049639853814596241863526414632035857419241368203048513833931578159885731487396229473116126409837722381607698829877185118323115316019861286717858791537695357728223126335196826365336824301261517616518696999917311020598845485426281386224854373831814603215838238845383991159908767808934946088844510064284154574468698217456483506048524891898739956276317219626141333968513624331522195658148068812931874511944165152295905066617047100593419359190456684994357924113565342558246247671568399040298091361236170687211218293255727398844785284196855321842293548492351545228481789891919735968815235742284154142727562319980156235724662541008043882043551871412191009416649233269577911195442662968661001852786854291371546795921918276051265282795349139410294770918621484313667179515831439461223357677431110404067866924331261267437042057813251437021645635040777721835069950347283348880812938975385506619810081332535581228818613922963846976115881487687475364672323196506622873446676645539124852931535967100616745992069576651775028381921403510026769116682161587787581766457952895160423148966194217637932728617416335569237989077281717524486972720911222629892191198494365435345146876604586470192823347623844255342986568515544159927127247879983711387631541563994814991286816654522255329777552701689955790369577612423152654187145336258462182338947569767481345874157241547537199824996982099817828555527365574251010075549215361172105544228129398423499444968374060133176502081436387457138597111556184426073142635464410020699928593738478794172046822963225575155424321341467093127542846444697351242530922270745071983074939322793103236476470437334838693686357497825974253989993981828557868652581843100966968896632586697649178819524238833643839173962294181623347285481184928553268114140686448823537464924381629255868334145915851031651691563391667174666359813346195626476655341577536335103469889310061467365516762863736379739797785908171534999127334289676471258644784971299625986046878647397524823875225184636660189575576739349491666679431511942184687383702742382134720666233928873317398899717586387125953329468147431469680102896999165705813451854863992130812561429147657871007266486217641292761868194543645201923268499656999096862597563344718740117451999815347334921658466983474348391993768257508438650418677975046896898358423366956908617547742889922778192262272322761836338858576437499897492234697083424670388716872596503437116526485961896877750961957785647629187514765217611557824253840314521954664833832607384553272984483846719011156174797561544788856426122695222197247144814442269403194895492742708442783191854365637129191401569332393344449783798619942895655332118011576488335586439787956727392617719571591009516633610192089128697668195752598759942588316172920995828285166961630253088788761622225814621577962160901429836166576064849982838154337625341714357736133370958416728078617324277191282458295650491443579938699664695718010064658147388525767436683592264070152048783866523751763875524076315812378176723533337267868922504929232696778587781579471767445302847295593205744608918899686552877692223226869013365892571349762823788162359623555241002242422585826488207315585177352151164291910046099631851006341654364557673299795647268977563848785772921699215492811320970267518281257916382516472717058749784142228536488992771361502165899100434373935765339975957618041576953588332397520842757692943342939691161439451666234299010034501006217112965838228514809015171902111144994237960762036489263898099952581577076126156077176110044606547845159228889785060132977143954787820479616138098855891744428315258105937255677807245382266427538149735840969063558989194364357761526895136207828274162819164281858133100182763627659671650212318119672557317285332293277254024967769941411758481932674342630143041129127996937728155678687567591814912103370137871132937116097202120729058528770677735682545756564547466319595321002826354984113850352285954070824194385082344412341272993165119684638735364196844508921857994575681651100191328636758939725296399553923632671592964077973598859859973218532876485551188708554654953611133451438011235153393898898348896484196333670187157406594384851839149545253711906358587746563498850554561726521689979326995670168478412640429994194772249631008097564131919929286485459990118924923401784272759238168825487607271845615511259711973156320954215996037618664712626894844357215849253851563510175312724922783772420516372228775223010069458510383779996945682610064545690558065177811389673731262171198546812335744053815774504959576437866585537949936918772785519664685584923344635685758939489029657646765795775931794462329825497672755304048879508736275391375765174485019343242285364258932349322135763907854331041367346471006180585559549151671737108796274202989565723809222648166219177708032703577085385393999169512754640465471644922898745724743675522581837231321361190157340372750781087896829668867889974972162692722395537826527025805852743789197994023702436573680445272258631991969412831278166189791562460505044577349388148569865872558574431344576987644622397585485947913698824524135914608473720173696121162149649910036253640154993496282459152024591483173651218494795452388746754954902941638052691669828240511628538851866628939433114487432031735844154572215405157467669336392014969291405629055264596308282545976424502537335119636739197788342932124410057238978653477343651688916394686865047450249223781567261671795804329698751215497443627935829407934254654347360223433171182458343241656205182907273283940982765938261053509224857226398416441184187377975596681519455192889751266236317939578253011906580122944187664433858888334190457316948619843821667957874341602169811215232721338659516827790807292599158664335953375687798257060578888366255913685883609665514193976321201659112228305579982961876690376616849092972235724471729177743520805710096337565547295833550100484618156432119576162770585151271643877515309150549618829090775887843984713387578018911328685462814153505116908476795754065662945714233975910491792446270364821304293576339259536812796686212491948947183423469250903634572260254936308679984698213274524556947159128746255962180189447828828215814193649512162964476654242015236430205128295693667249209180238185645102652344720373677974790903821175296969750756217975175199661324992930349614641279377384978431956359445487842317472457770585854602784104760554839375527426126354417967662185676487071658055755637487514154991643931091739850506195385613604272524816488263894790915442981417146758685123657269221788100697091202435161718834823108290539323494496387179610826863821401009256824497457692179761718746829181041716603564860925992254119470944076744267941740794726153256821116932276403544533467129532368878436122925288318100421612221224501998148649397946772548528786100891911966118453569298407549487732668676624375437857584444029183315309850607724463071901545265968387472546647805757444832249927335757643858893762364090129237179662493474165534724337733356965378469183411469737030756801121531005456963497516673344731530416967833946937892032165953522547789265222822312678525412607875447819592984368813759898898877353754795151498156944716659832341520319032152752820494846253091236525966915648379559809737213141811845958267035402283511112888578230294071265364967534667565792212212345237455823375162163763383358733964199617605727533567889935742706952385554467497096979652897761315658435810027222308545259570857247123470593091984512293296542765714746749810068556947545479035335479799514894184918186282798286998984633134995944121003169391917835938253298678149639163892888869091657540644250458622352165733728093377626153764695922767247313372266625871777388473121515631574257942141919145952128292340364820564889867564554104795346945947264952191913686121468358662285988095255788667946138298442267845594939219051761218189124771572480706696271601274857760299667650659089348371008155684298539291659628682341326341044672563141935127539513102351563584448245607448605163596413644665665697239581431511428042341743541879756392512681541475975375669738253457253656206289684224541482261007329919446135857774564192476958224701510035243077945340955347752689649926579198429507296984989993273814499385876777845272262836259897042076787976868374992109047531556961448150483818266430372363861872658682715478747622183161557269566620404323283436796339948044631674776022367660734975418565373237395635084203997561430219756119126565297490998159872652137928995828453443549387968751161008343124551235248941746195689222314498782826287826250231214549863951138653248255246731141051601153678338647292516963711295934975118405903413338495498557635685512188215371974889929523777048342861573127909849527921543268918868765988414543235717786447112154100768839611271341139031538327818885669273964539207366673511769634305156087757808216432936747096379768449050941545274663537536953202189525378103120664092373395494776441629199461298512967691007459727046876810085764864483740265429119503758252858911519442369395469115776827388923932836338288681485534385107191009348815016933919172792404628819984379435839635349368783728357492881699830932052111719994746959527123726950317783369821599993613982206911924396302967733691793752364172969331967927545583281585488937988784869843603344901332328376652878574165477752229992191092737065443143677478484754846777975753212946530235352534075073679127651966771136789437997981003215412150589314646506299268120799352368374492424516254793741709740691285998597188774831634891746483695085715552432338587405455875348622325560635385494769113825598123143371124167394711583542395147558572163818572743683101392648120391841798991722061100609855203257474777945742282989273428597610074555914735153343544455856189651532241922609346779146792505660779822866837141008249467167396995783367369530194510088428417996389717358921618275889658954183770727143676527422119323122313331793427493141797675278168754501682318956631118431358572665291312323045209655149598528793568677111110060957597558697572799474763915641139746172754127446694125676774158308995706538705510030544470459886812325264466319533143670152232252177249489278759245659182945164175614032849945345602311682633848817987125305541278464846118076825634604613117312603128759291666888089809956216184445834197396185143159579983937988322015564931518510389185494372519592550222792731012389287770740697025903476124023169528342179199182613609258906938100718884256651857124715724618569246863961962495561464497591024345131566328566024611341916245198736193936060944287289141001686168219306516718466112378961274227325893833339782778852192414254188958739111639620442158100813416899167834569687159459866152736624959810099875241546111145313238088864810561295608368286036831343249114373978881289575946615163081953534983318104989311006748277172794676091323326767288527879626709180621476524410297483248530431879552444188753874914276021140662349758967945499713218139482196217100135139669602030518512268755938492437347573268905457797782415977147630723996302122772942048699838541836961598563198157214256824588341544334046979157383666983522476524484686711471811629122765495645668701828406095489022832413220515057312658807428576788701221391054392163216186329933375659645165755110944458876165128242184099182922258162139125184389216121140229663735524928649272456140944480625744602342749509822875467123944723957236055237123866665604064821581971141953211815100806427144218115584372367172727551125349202357656969117742281657147277131881399947043131230941069225013128669836328756474887567438663231167626537877425466133831563110047357184699399299482409603487562241964058262034551582459866713948298949243379447743677789666421608408998764789695687581561347486696471810375691171390746028294821675765622952243618129163257635493922869975152732080771897510056848485738183313132693919678281872655074927992636379827263212849846719308375873564805542772040671322921279933954297557582827765238511002837837137529816789893131866567114122288188179156155491100303679193095282312089780782316230468785396086208473573850985187818222954073669711254085778231534051366111202648100949126439895961945265107310603341224744714907028339424749136395759234174481459750492694989123489211760869213983735193833229280852100722470294387951456752879889991944572528558815242316999372330781574977131836719810261092477558367938822912748073746654332726214664248664407750593332899575144891826015875555932131263375503711292952381329583671975584023938522229568248817111379311664270100619266921321128727847076769547989841335829915820803806039506338985699654953557435864038131008773206341461881870689168235359923292124498634826676492978175956332744037121372591841420327331348325449463531051687359447644974605871273727249635151003397846199240886625588769449100794174776788659624528997984765249376887958956961741001009393119955313176834281623927507024332259581505712727546772499743522154686342396139310097747343321351100884653377968959736791242089985906475833763972501589369236984278054865823517973533155497353175706527695016391171377117984802557917228042773221556394871122434875963355171125543383559391489811193620146095124596344303730834381133123282564735378461003820449734577528706924877791856096717566523232118717122318391002427545731473807487685630548499348132772353858406656294782473969497565427976816262382868935367730898186952173334549424345973718281874656371362059184410501547518139231550664576539478659402140952137236394747596633324608676736751633754563989298963312522261851523688345053998241556596145359731253238395109048855368463327232545519937725441717597492983035164182906411550433619543161222932177771393955326984655842118338862624358327865266477667885901561109345329592908175952374562433987707992697066598976851009810634933376454586421473731133722683100895987909287481318745741339732047889492724090274652155632296320709791927689671005664635844693044561656605626463711403296515043177119841598547473084398267316479615681747863865267074331890894214421164897852373856538935576278049077599543767919938935891833427704934107095642520849314941147917271358745441369612569021107380577618810427619479163297468111115149346536264401253891796432343818678917063385817703946936764316431281265544936031704162308894011624166682534185254772054892828323994474177154623478236342185372405303448315532147556405736976866668473471164510397554118668768458134485504898481002452479092805384743331195530952972689171729385862210115678990603266903736224750746233273171713116355612449355733329268808119346052965691851706324251002438293236476035347118569191227958653956789678938954483546478774927320291124961855453927537117440307742245089954566838434304332965111408589630825185552143959635293702811711990612891886728329793538766356277734696434389795228726140795608565757596468345325176823767040915368852326186537905822218466131009812498563951151286439687586564156776315313698448859781796890819955605143658942154113425310435515910056953020453059604375816081939578918120927304815563237273682625472238639091135633507559941970326227335616750762383914464188116471634414947493356958284845298645196295729122908534326225397547464485398038936021575152816419685964877470976428228606951273814279264439313158991388978877547894108245731409325995113544977656248253305952577542791791970654255422210076802625241182887151419419274626207896573446952893678119188618560472623343993686246512048577838387166637217568221324353525081651676887334556087143069383831395149765383990756767775941486574374724995532935504316207159179852782796326125556693553583836596832234664265236485627678051961737268423532173548589048727939925576227152323373192010014774355991498999624653668071862906935766088718410766319173240971937704695138894108813571921292882279317489868630932611707431235985712708325845896674224905560543301178351186112213313880189116597149486091457258547218981838329733827823045884747121681888337879344194243486685158204822352762808441020102062148322754149523426159744253383121746369737951304367904052466426747314879034291812741444188850116423403356162222607650789346201009731206245658871577148927414673205136391534395525601452521971152655950861425907822523569524652714239371211730691235778034115885810047585146245211348464525217394251167718639164321555196459732847514418191006632297733757887127720471007887637539107683508573886963961812942621801885931048971662811459311005337834370717767147760399102519462523535874904984824294068924135559545691314212536636312615409427222480995988028347352516910638494776152326514275230216018244155649261967289502808839335018455862312808460998197101267195778993968281193715678394756277415167438261489650684576784752510501101681729950636179465314854912153696478461232983901041100847580769875275307677114960354960608115854066765931897618969837051256332489493526925161294685963312426737054194535689469100392339249233773153591299814180694395731198191137828296222694301912994243601271578781815294488804559409810498349152295546852678481508412431480854384322416385768865086713332715402364293454767290623440883946518153276448627473174588249595947965329533676695497457180772887452746928179762175724528977631288191469146542370965743249268591036331129464849749853926710419642964528176159623771735546547298310054047713265626857504940931976678162703875228613241897696570182486537466836936805114157617463268975661691329944890836243426351931009587748717852243935268566399987277382712455448212995413932901830416251923285323677957594667187865829796806852123149559481683528267029798578847533193952741027731928816593973223496367337677439702527212542891687246794739042968242623550858499322820774149587825944646961564374023466587912695925322026851623988999179955484310856182632928726504890969028451562721758943522318578367898830989697106912495197111913474413272975920279193620804843485982769664878340581898735427665485995893030827231577740646777091881189264650384774148581583355872945408543196942734161009410612315184045581709442372150456567626566328836655568985643730491199762483243519812331034127421741580165431152192148194913135425783496181230756418136479808623619352807040729963379083607494503059579860417592785663109538835675667016883271963626635482530357175351425329328982410198659461916313097371958268981882961279754198207181751049649784351268625526626925066982890828696327805928469074975964564210092463150291458476422572565217273455956898369662782610030329426643592919434073659555227452427216436494153417010847977715256100482258639193176214353235077727025345724126312426948133922888836281823917195525387882898162683666159324429588351501847172633438159779473427439553169516393994327398158526678819924386981965125319353553772317398356743179258329753470233816384562324650379313212100585038319556259549484954018563774978366858774446283112384346